Bug 1484 - StatisticManager performance improvement refactoring
[controller.git] / opendaylight / md-sal / statistics-manager / src / test / java / test / mock / util / OpendaylightGroupStatisticsServiceMock.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.group.statistics.rev131111.GetAllGroupStatisticsInput;
6 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
7 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutputBuilder;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInput;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutputBuilder;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInput;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutputBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInput;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutput;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutputBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupDescStatsUpdatedBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupFeaturesUpdatedBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdatedBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsKey;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsKey;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
29 import org.opendaylight.yangtools.yang.common.RpcResult;
30 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
31
32 import java.math.BigInteger;
33 import java.util.ArrayList;
34 import java.util.List;
35 import java.util.concurrent.Future;
36 import java.util.concurrent.atomic.AtomicLong;
37
38 public class OpendaylightGroupStatisticsServiceMock implements OpendaylightGroupStatisticsService {
39     NotificationProviderServiceHelper notifService;
40     AtomicLong transNum = new AtomicLong();
41
42     public OpendaylightGroupStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
43         this.notifService = notifService;
44     }
45
46     @Override
47     public Future<RpcResult<GetAllGroupStatisticsOutput>> getAllGroupStatistics(GetAllGroupStatisticsInput input) {
48         GetAllGroupStatisticsOutputBuilder builder = new GetAllGroupStatisticsOutputBuilder();
49         TransactionId transId = new TransactionId(BigInteger.valueOf(transNum.incrementAndGet()));
50         builder.setTransactionId(transId);
51         List<GroupStats> groupStats = new ArrayList<>();
52         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
53         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
54         gsBuilder.setKey(new GroupStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
55         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
56         groupStats.add(gsBuilder.build());
57         builder.setGroupStats(groupStats);
58         gsuBuilder.setTransactionId(transId);
59         gsuBuilder.setMoreReplies(false);
60         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
61         gsuBuilder.setGroupStats(groupStats);
62         notifService.pushDelayedNotification(gsuBuilder.build(), 500);
63         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
64     }
65
66     @Override
67     public Future<RpcResult<GetGroupDescriptionOutput>> getGroupDescription(GetGroupDescriptionInput input) {
68         GetGroupDescriptionOutputBuilder builder = new GetGroupDescriptionOutputBuilder();
69         TransactionId transId = new TransactionId(BigInteger.valueOf(transNum.incrementAndGet()));
70         builder.setTransactionId(transId);
71         List<GroupDescStats> groupDescStats = new ArrayList<>();
72         GroupDescStatsUpdatedBuilder gdsuBuilder = new GroupDescStatsUpdatedBuilder();
73         GroupDescStatsBuilder gdsBuilder = new GroupDescStatsBuilder();
74         gdsBuilder.setKey(new GroupDescStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
75         gdsBuilder.setBuckets(StatisticsManagerTest.getGroup().getBuckets());
76         gdsBuilder.setContainerName(StatisticsManagerTest.getGroup().getContainerName());
77         gdsBuilder.setGroupName(StatisticsManagerTest.getGroup().getGroupName());
78         gdsBuilder.setGroupType(StatisticsManagerTest.getGroup().getGroupType());
79         groupDescStats.add(gdsBuilder.build());
80         builder.setGroupDescStats(groupDescStats);
81         gdsuBuilder.setTransactionId(transId);
82         gdsuBuilder.setMoreReplies(false);
83         gdsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
84         gdsuBuilder.setGroupDescStats(groupDescStats);
85         notifService.pushDelayedNotification(gdsuBuilder.build(), 100);
86         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
87     }
88
89     @Override
90     public Future<RpcResult<GetGroupFeaturesOutput>> getGroupFeatures(GetGroupFeaturesInput input) {
91         GetGroupFeaturesOutputBuilder builder = new GetGroupFeaturesOutputBuilder();
92         TransactionId transId = new TransactionId(BigInteger.valueOf(transNum.incrementAndGet()));
93         builder.setTransactionId(transId);
94         GroupFeaturesUpdatedBuilder gfuBuilder = new GroupFeaturesUpdatedBuilder();
95         gfuBuilder.setTransactionId(transId);
96         gfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
97         gfuBuilder.setMoreReplies(false);
98         List<Long> maxGroups = new ArrayList<>();
99         maxGroups.add(StatisticsManagerTest.MAX_GROUPS_TEST_VALUE);
100         gfuBuilder.setMaxGroups(maxGroups);
101         notifService.pushDelayedNotification(gfuBuilder.build(), 100);
102         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
103     }
104
105     @Override
106     public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
107         GetGroupStatisticsOutputBuilder builder = new GetGroupStatisticsOutputBuilder();
108         TransactionId transId = new TransactionId(BigInteger.valueOf(transNum.incrementAndGet()));
109         builder.setTransactionId(transId);
110         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
111         List<GroupStats> groupStats = new ArrayList<>();
112         gsBuilder.setKey(new GroupStatsKey(input.getGroupId()));
113         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
114         groupStats.add(gsBuilder.build());
115         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
116         gsuBuilder.setTransactionId(transId);
117         gsuBuilder.setMoreReplies(false);
118         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
119         gsuBuilder.setGroupStats(groupStats);
120         notifService.pushDelayedNotification(gsuBuilder.build(), 100);
121         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
122     }
123 }