1 package test.mock.util;
3 import com.google.common.util.concurrent.Futures;
4 import java.math.BigInteger;
5 import java.util.ArrayList;
7 import java.util.concurrent.Future;
8 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev131103.TransactionId;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsInput;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutputBuilder;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutputBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInput;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutputBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInput;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutputBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupDescStatsUpdatedBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupFeaturesUpdatedBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdatedBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsKey;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsKey;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
33 import org.opendaylight.yangtools.yang.common.RpcResult;
34 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
36 public class OpendaylightGroupStatisticsServiceMock implements OpendaylightGroupStatisticsService {
37 NotificationProviderServiceHelper notifService;
39 public OpendaylightGroupStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
40 this.notifService = notifService;
44 public Future<RpcResult<GetAllGroupStatisticsOutput>> getAllGroupStatistics(GetAllGroupStatisticsInput input) {
45 GetAllGroupStatisticsOutputBuilder builder = new GetAllGroupStatisticsOutputBuilder();
46 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
47 builder.setTransactionId(transId);
48 List<GroupStats> groupStats = new ArrayList<>();
49 GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
50 GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
51 gsBuilder.setKey(new GroupStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
52 gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
53 groupStats.add(gsBuilder.build());
54 builder.setGroupStats(groupStats);
55 gsuBuilder.setTransactionId(transId);
56 gsuBuilder.setMoreReplies(false);
57 gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
58 gsuBuilder.setGroupStats(groupStats);
59 notifService.pushDelayedNotification(gsuBuilder.build(), 500);
60 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
64 public Future<RpcResult<GetGroupDescriptionOutput>> getGroupDescription(GetGroupDescriptionInput input) {
65 GetGroupDescriptionOutputBuilder builder = new GetGroupDescriptionOutputBuilder();
66 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
67 builder.setTransactionId(transId);
68 List<GroupDescStats> groupDescStats = new ArrayList<>();
69 GroupDescStatsUpdatedBuilder gdsuBuilder = new GroupDescStatsUpdatedBuilder();
70 GroupDescStatsBuilder gdsBuilder = new GroupDescStatsBuilder();
71 gdsBuilder.setKey(new GroupDescStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
72 gdsBuilder.setBuckets(StatisticsManagerTest.getGroup().getBuckets());
73 gdsBuilder.setContainerName(StatisticsManagerTest.getGroup().getContainerName());
74 gdsBuilder.setGroupName(StatisticsManagerTest.getGroup().getGroupName());
75 gdsBuilder.setGroupType(StatisticsManagerTest.getGroup().getGroupType());
76 groupDescStats.add(gdsBuilder.build());
77 builder.setGroupDescStats(groupDescStats);
78 gdsuBuilder.setTransactionId(transId);
79 gdsuBuilder.setMoreReplies(false);
80 gdsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
81 gdsuBuilder.setGroupDescStats(groupDescStats);
82 notifService.pushDelayedNotification(gdsuBuilder.build(), 100);
83 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
87 public Future<RpcResult<GetGroupFeaturesOutput>> getGroupFeatures(GetGroupFeaturesInput input) {
88 GetGroupFeaturesOutputBuilder builder = new GetGroupFeaturesOutputBuilder();
89 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
90 builder.setTransactionId(transId);
91 GroupFeaturesUpdatedBuilder gfuBuilder = new GroupFeaturesUpdatedBuilder();
92 gfuBuilder.setTransactionId(transId);
93 gfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
94 gfuBuilder.setMoreReplies(false);
95 List<Long> maxGroups = new ArrayList<>();
96 maxGroups.add(StatisticsManagerTest.MAX_GROUPS_TEST_VALUE);
97 gfuBuilder.setMaxGroups(maxGroups);
98 notifService.pushDelayedNotification(gfuBuilder.build(), 100);
99 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
103 public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
104 GetGroupStatisticsOutputBuilder builder = new GetGroupStatisticsOutputBuilder();
105 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
106 builder.setTransactionId(transId);
107 GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
108 List<GroupStats> groupStats = new ArrayList<>();
109 gsBuilder.setKey(new GroupStatsKey(input.getGroupId()));
110 gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
111 groupStats.add(gsBuilder.build());
112 GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
113 gsuBuilder.setTransactionId(transId);
114 gsuBuilder.setMoreReplies(false);
115 gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
116 gsuBuilder.setGroupStats(groupStats);
117 notifService.pushDelayedNotification(gsuBuilder.build(), 100);
118 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());