External api proposal
[openflowplugin.git] / applications / statistics-manager / src / test / java / test / mock / util / OpendaylightMeterStatisticsServiceMock.java
1 package test.mock.util;
2
3 import java.math.BigInteger;
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.concurrent.Future;
7
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsInput;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutputBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInput;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutput;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutputBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesInput;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutput;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutputBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsInput;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutput;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutputBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterConfigStatsUpdatedBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterFeaturesUpdatedBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterStatisticsUpdatedBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.config.stats.reply.MeterConfigStats;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.config.stats.reply.MeterConfigStatsBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStats;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStatsBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStatsKey;
32 import org.opendaylight.yangtools.yang.common.RpcResult;
33 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
34
35 import com.google.common.util.concurrent.Futures;
36
37 public class OpendaylightMeterStatisticsServiceMock implements OpendaylightMeterStatisticsService {
38     NotificationProviderServiceHelper notifService;
39
40     public OpendaylightMeterStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
41         this.notifService = notifService;
42     }
43
44     @Override
45     public Future<RpcResult<GetAllMeterConfigStatisticsOutput>> getAllMeterConfigStatistics(GetAllMeterConfigStatisticsInput input) {
46         GetAllMeterConfigStatisticsOutputBuilder builder = new GetAllMeterConfigStatisticsOutputBuilder();
47         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
48         builder.setTransactionId(transId);
49         List<MeterConfigStats> meterConfigStats = new ArrayList<>();
50         MeterConfigStatsBuilder mcsBuilder = new MeterConfigStatsBuilder();
51         mcsBuilder.setMeterId(StatisticsManagerTest.getMeter().getMeterId());
52         mcsBuilder.setMeterName(StatisticsManagerTest.getMeter().getMeterName());
53         mcsBuilder.setContainerName(StatisticsManagerTest.getMeter().getContainerName());
54         meterConfigStats.add(mcsBuilder.build());
55         builder.setMeterConfigStats(meterConfigStats);
56         MeterConfigStatsUpdatedBuilder mscuBuilder = new MeterConfigStatsUpdatedBuilder();
57         mscuBuilder.setTransactionId(transId);
58         mscuBuilder.setMoreReplies(false);
59         mscuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
60         mscuBuilder.setMeterConfigStats(meterConfigStats);
61         notifService.pushDelayedNotification(mscuBuilder.build(), 100);
62         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
63     }
64
65     @Override
66     public Future<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(GetAllMeterStatisticsInput input) {
67         GetAllMeterStatisticsOutputBuilder builder = new GetAllMeterStatisticsOutputBuilder();
68         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
69         builder.setTransactionId(transId);
70         MeterStatsBuilder msBuilder = new MeterStatsBuilder();
71         msBuilder.setByteInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
72         msBuilder.setPacketInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
73         msBuilder.setKey(new MeterStatsKey(StatisticsManagerTest.getMeter().getMeterId()));
74         List<MeterStats> meterStats = new ArrayList<>();
75         meterStats.add(msBuilder.build());
76         MeterStatisticsUpdatedBuilder msuBuilder = new MeterStatisticsUpdatedBuilder();
77         msuBuilder.setTransactionId(transId);
78         msuBuilder.setMoreReplies(false);
79         msuBuilder.setMeterStats(meterStats);
80         msuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
81         notifService.pushDelayedNotification(msuBuilder.build(), 100);
82         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
83     }
84
85     @Override
86     public Future<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(GetMeterFeaturesInput input) {
87         GetMeterFeaturesOutputBuilder builder = new GetMeterFeaturesOutputBuilder();
88         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
89         builder.setTransactionId(transId);
90         MeterFeaturesUpdatedBuilder mfuBuilder = new MeterFeaturesUpdatedBuilder();
91         mfuBuilder.setTransactionId(transId);
92         mfuBuilder.setMoreReplies(false);
93         mfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
94         mfuBuilder.setMaxMeter(StatisticsManagerTest.COUNTER_32_TEST_VALUE);
95         notifService.pushDelayedNotification(mfuBuilder.build(), 100);
96         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
97     }
98
99     @Override
100     public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input) {
101         GetMeterStatisticsOutputBuilder builder = new GetMeterStatisticsOutputBuilder();
102         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
103         builder.setTransactionId(transId);
104         MeterStatsBuilder msBuilder = new MeterStatsBuilder();
105         msBuilder.setKey(new MeterStatsKey(input.getMeterId()));
106         msBuilder.setByteInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
107         msBuilder.setPacketInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
108         List<MeterStats> meterStats = new ArrayList<>();
109         meterStats.add(msBuilder.build());
110         MeterStatisticsUpdatedBuilder msuBuilder = new MeterStatisticsUpdatedBuilder();
111         msuBuilder.setTransactionId(transId);
112         msuBuilder.setMoreReplies(false);
113         msuBuilder.setMeterStats(meterStats);
114         msuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
115         notifService.pushDelayedNotification(msuBuilder.build(), 100);
116         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
117     }
118 }