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