1 package test.mock.util;
3 import java.math.BigInteger;
4 import java.util.ArrayList;
6 import java.util.concurrent.Future;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsUpdateBuilder;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.FlowsStatisticsUpdateBuilder;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutput;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutputBuilder;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForGivenMatchInput;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutput;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutputBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowStatisticsFromFlowTableInput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowStatisticsFromFlowTableOutput;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowStatisticsFromFlowTableOutputBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowsStatisticsFromAllFlowTablesInput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowsStatisticsFromAllFlowTablesOutput;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowsStatisticsFromAllFlowTablesOutputBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableInput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableOutput;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableOutputBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.flow.and.statistics.map.list.FlowAndStatisticsMapList;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.flow.and.statistics.map.list.FlowAndStatisticsMapListBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
31 import org.opendaylight.yangtools.yang.common.RpcResult;
32 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
34 import com.google.common.util.concurrent.Futures;
36 public class OpendaylightFlowStatisticsServiceMock implements OpendaylightFlowStatisticsService {
37 NotificationProviderServiceHelper notifService;
39 public OpendaylightFlowStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
40 this.notifService = notifService;
44 public Future<RpcResult<GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutput>> getAggregateFlowStatisticsFromFlowTableForAllFlows(GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput input) {
45 GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutputBuilder builder = new GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutputBuilder();
46 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
47 builder.setTransactionId(transId);
48 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
52 public Future<RpcResult<GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutput>> getAggregateFlowStatisticsFromFlowTableForGivenMatch(GetAggregateFlowStatisticsFromFlowTableForGivenMatchInput input) {
53 GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutputBuilder builder = new GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutputBuilder();
54 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
55 builder.setTransactionId(transId);
56 AggregateFlowStatisticsUpdateBuilder afsuBuilder = new AggregateFlowStatisticsUpdateBuilder();
57 afsuBuilder.setMoreReplies(false);
58 afsuBuilder.setTransactionId(transId);
59 afsuBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
60 afsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
61 notifService.pushDelayedNotification(afsuBuilder.build(), 100);
62 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
66 public Future<RpcResult<GetAllFlowStatisticsFromFlowTableOutput>> getAllFlowStatisticsFromFlowTable(GetAllFlowStatisticsFromFlowTableInput input) {
67 GetAllFlowStatisticsFromFlowTableOutputBuilder builder = new GetAllFlowStatisticsFromFlowTableOutputBuilder();
68 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
69 builder.setTransactionId(transId);
70 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
74 public Future<RpcResult<GetAllFlowsStatisticsFromAllFlowTablesOutput>> getAllFlowsStatisticsFromAllFlowTables(GetAllFlowsStatisticsFromAllFlowTablesInput input) {
75 GetAllFlowsStatisticsFromAllFlowTablesOutputBuilder builder = new GetAllFlowsStatisticsFromAllFlowTablesOutputBuilder();
76 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
77 builder.setTransactionId(transId);
78 List<FlowAndStatisticsMapList> flowAndStatisticsMapLists = new ArrayList<>();
79 FlowsStatisticsUpdateBuilder flowsStatisticsUpdateBuilder = new FlowsStatisticsUpdateBuilder();
80 flowsStatisticsUpdateBuilder.setTransactionId(transId);
81 flowsStatisticsUpdateBuilder.setMoreReplies(false);
82 flowsStatisticsUpdateBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
83 FlowAndStatisticsMapListBuilder flowAndStatisticsMapListBuilder = new FlowAndStatisticsMapListBuilder(StatisticsManagerTest.getFlow());
84 flowAndStatisticsMapListBuilder.setTableId(StatisticsManagerTest.getFlow().getTableId());
85 flowAndStatisticsMapListBuilder.setContainerName(StatisticsManagerTest.getFlow().getContainerName());
86 flowAndStatisticsMapListBuilder.setBarrier(StatisticsManagerTest.getFlow().isBarrier());
87 flowAndStatisticsMapListBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
88 flowAndStatisticsMapLists.add(flowAndStatisticsMapListBuilder.build());
89 flowsStatisticsUpdateBuilder.setFlowAndStatisticsMapList(flowAndStatisticsMapLists);
90 notifService.pushDelayedNotification(flowsStatisticsUpdateBuilder.build(), 100);
91 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
95 public Future<RpcResult<GetFlowStatisticsFromFlowTableOutput>> getFlowStatisticsFromFlowTable(GetFlowStatisticsFromFlowTableInput input) {
96 GetFlowStatisticsFromFlowTableOutputBuilder builder = new GetFlowStatisticsFromFlowTableOutputBuilder();
97 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
98 builder.setTransactionId(transId);
99 List<FlowAndStatisticsMapList> flowAndStatisticsMapLists = new ArrayList<>();
100 FlowsStatisticsUpdateBuilder flowsStatisticsUpdateBuilder = new FlowsStatisticsUpdateBuilder();
101 flowsStatisticsUpdateBuilder.setTransactionId(transId);
102 flowsStatisticsUpdateBuilder.setMoreReplies(false);
103 flowsStatisticsUpdateBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
104 FlowAndStatisticsMapListBuilder flowAndStatisticsMapListBuilder = new FlowAndStatisticsMapListBuilder(input);
105 flowAndStatisticsMapListBuilder.setTableId(input.getTableId());
106 flowAndStatisticsMapListBuilder.setContainerName(input.getContainerName());
107 flowAndStatisticsMapListBuilder.setBarrier(input.isBarrier());
108 flowAndStatisticsMapListBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
109 flowAndStatisticsMapLists.add(flowAndStatisticsMapListBuilder.build());
110 flowsStatisticsUpdateBuilder.setFlowAndStatisticsMapList(flowAndStatisticsMapLists);
111 notifService.pushDelayedNotification(flowsStatisticsUpdateBuilder.build(), 100);
112 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());