External api proposal
[openflowplugin.git] / applications / statistics-manager / src / test / java / test / mock / util / OpendaylightGroupStatisticsServiceMock.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.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;
35
36 import com.google.common.util.concurrent.Futures;
37
38 public class OpendaylightGroupStatisticsServiceMock implements OpendaylightGroupStatisticsService {
39     NotificationProviderServiceHelper notifService;
40
41     public OpendaylightGroupStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
42         this.notifService = notifService;
43     }
44
45     @Override
46     public Future<RpcResult<GetAllGroupStatisticsOutput>> getAllGroupStatistics(GetAllGroupStatisticsInput input) {
47         GetAllGroupStatisticsOutputBuilder builder = new GetAllGroupStatisticsOutputBuilder();
48         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
49         builder.setTransactionId(transId);
50         List<GroupStats> groupStats = new ArrayList<>();
51         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
52         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
53         gsBuilder.setKey(new GroupStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
54         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
55         groupStats.add(gsBuilder.build());
56         builder.setGroupStats(groupStats);
57         gsuBuilder.setTransactionId(transId);
58         gsuBuilder.setMoreReplies(false);
59         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
60         gsuBuilder.setGroupStats(groupStats);
61         notifService.pushDelayedNotification(gsuBuilder.build(), 500);
62         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
63     }
64
65     @Override
66     public Future<RpcResult<GetGroupDescriptionOutput>> getGroupDescription(GetGroupDescriptionInput input) {
67         GetGroupDescriptionOutputBuilder builder = new GetGroupDescriptionOutputBuilder();
68         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
69         builder.setTransactionId(transId);
70         List<GroupDescStats> groupDescStats = new ArrayList<>();
71         GroupDescStatsUpdatedBuilder gdsuBuilder = new GroupDescStatsUpdatedBuilder();
72         GroupDescStatsBuilder gdsBuilder = new GroupDescStatsBuilder();
73         gdsBuilder.setKey(new GroupDescStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
74         gdsBuilder.setBuckets(StatisticsManagerTest.getGroup().getBuckets());
75         gdsBuilder.setContainerName(StatisticsManagerTest.getGroup().getContainerName());
76         gdsBuilder.setGroupName(StatisticsManagerTest.getGroup().getGroupName());
77         gdsBuilder.setGroupType(StatisticsManagerTest.getGroup().getGroupType());
78         groupDescStats.add(gdsBuilder.build());
79         builder.setGroupDescStats(groupDescStats);
80         gdsuBuilder.setTransactionId(transId);
81         gdsuBuilder.setMoreReplies(false);
82         gdsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
83         gdsuBuilder.setGroupDescStats(groupDescStats);
84         notifService.pushDelayedNotification(gdsuBuilder.build(), 100);
85         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
86     }
87
88     @Override
89     public Future<RpcResult<GetGroupFeaturesOutput>> getGroupFeatures(GetGroupFeaturesInput input) {
90         GetGroupFeaturesOutputBuilder builder = new GetGroupFeaturesOutputBuilder();
91         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
92         builder.setTransactionId(transId);
93         GroupFeaturesUpdatedBuilder gfuBuilder = new GroupFeaturesUpdatedBuilder();
94         gfuBuilder.setTransactionId(transId);
95         gfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
96         gfuBuilder.setMoreReplies(false);
97         List<Long> maxGroups = new ArrayList<>();
98         maxGroups.add(StatisticsManagerTest.MAX_GROUPS_TEST_VALUE);
99         gfuBuilder.setMaxGroups(maxGroups);
100         notifService.pushDelayedNotification(gfuBuilder.build(), 100);
101         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
102     }
103
104     @Override
105     public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
106         GetGroupStatisticsOutputBuilder builder = new GetGroupStatisticsOutputBuilder();
107         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
108         builder.setTransactionId(transId);
109         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
110         List<GroupStats> groupStats = new ArrayList<>();
111         gsBuilder.setKey(new GroupStatsKey(input.getGroupId()));
112         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
113         groupStats.add(gsBuilder.build());
114         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
115         gsuBuilder.setTransactionId(transId);
116         gsuBuilder.setMoreReplies(false);
117         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
118         gsuBuilder.setGroupStats(groupStats);
119         notifService.pushDelayedNotification(gsuBuilder.build(), 100);
120         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
121     }
122 }