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