Add missing license headers
[openflowplugin.git] / applications / statistics-manager / src / test / java / test / mock / util / OpendaylightGroupStatisticsServiceMock.java
1 /*
2  * Copyright (c) 2014, 2016 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package test.mock.util;
9
10 import java.math.BigInteger;
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.concurrent.Future;
14
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsInput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutputBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutputBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutputBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInput;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutput;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutputBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupDescStatsUpdatedBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupFeaturesUpdatedBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GroupStatisticsUpdatedBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.OpendaylightGroupStatisticsService;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStats;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.desc.stats.reply.GroupDescStatsKey;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStats;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsBuilder;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply.GroupStatsKey;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
40 import org.opendaylight.yangtools.yang.common.RpcResult;
41 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
42
43 import com.google.common.util.concurrent.Futures;
44
45 public class OpendaylightGroupStatisticsServiceMock implements OpendaylightGroupStatisticsService {
46     NotificationProviderServiceHelper notifService;
47
48     public OpendaylightGroupStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
49         this.notifService = notifService;
50     }
51
52     @Override
53     public Future<RpcResult<GetAllGroupStatisticsOutput>> getAllGroupStatistics(GetAllGroupStatisticsInput input) {
54         GetAllGroupStatisticsOutputBuilder builder = new GetAllGroupStatisticsOutputBuilder();
55         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
56         builder.setTransactionId(transId);
57         List<GroupStats> groupStats = new ArrayList<>();
58         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
59         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
60         gsBuilder.setKey(new GroupStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
61         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
62         groupStats.add(gsBuilder.build());
63         builder.setGroupStats(groupStats);
64         gsuBuilder.setTransactionId(transId);
65         gsuBuilder.setMoreReplies(false);
66         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
67         gsuBuilder.setGroupStats(groupStats);
68         notifService.pushDelayedNotification(gsuBuilder.build(), 500);
69         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
70     }
71
72     @Override
73     public Future<RpcResult<GetGroupDescriptionOutput>> getGroupDescription(GetGroupDescriptionInput input) {
74         GetGroupDescriptionOutputBuilder builder = new GetGroupDescriptionOutputBuilder();
75         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
76         builder.setTransactionId(transId);
77         List<GroupDescStats> groupDescStats = new ArrayList<>();
78         GroupDescStatsUpdatedBuilder gdsuBuilder = new GroupDescStatsUpdatedBuilder();
79         GroupDescStatsBuilder gdsBuilder = new GroupDescStatsBuilder();
80         gdsBuilder.setKey(new GroupDescStatsKey(StatisticsManagerTest.getGroup().getGroupId()));
81         gdsBuilder.setBuckets(StatisticsManagerTest.getGroup().getBuckets());
82         gdsBuilder.setContainerName(StatisticsManagerTest.getGroup().getContainerName());
83         gdsBuilder.setGroupName(StatisticsManagerTest.getGroup().getGroupName());
84         gdsBuilder.setGroupType(StatisticsManagerTest.getGroup().getGroupType());
85         groupDescStats.add(gdsBuilder.build());
86         builder.setGroupDescStats(groupDescStats);
87         gdsuBuilder.setTransactionId(transId);
88         gdsuBuilder.setMoreReplies(false);
89         gdsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
90         gdsuBuilder.setGroupDescStats(groupDescStats);
91         notifService.pushDelayedNotification(gdsuBuilder.build(), 100);
92         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
93     }
94
95     @Override
96     public Future<RpcResult<GetGroupFeaturesOutput>> getGroupFeatures(GetGroupFeaturesInput input) {
97         GetGroupFeaturesOutputBuilder builder = new GetGroupFeaturesOutputBuilder();
98         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
99         builder.setTransactionId(transId);
100         GroupFeaturesUpdatedBuilder gfuBuilder = new GroupFeaturesUpdatedBuilder();
101         gfuBuilder.setTransactionId(transId);
102         gfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
103         gfuBuilder.setMoreReplies(false);
104         List<Long> maxGroups = new ArrayList<>();
105         maxGroups.add(StatisticsManagerTest.MAX_GROUPS_TEST_VALUE);
106         gfuBuilder.setMaxGroups(maxGroups);
107         notifService.pushDelayedNotification(gfuBuilder.build(), 100);
108         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
109     }
110
111     @Override
112     public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
113         GetGroupStatisticsOutputBuilder builder = new GetGroupStatisticsOutputBuilder();
114         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
115         builder.setTransactionId(transId);
116         GroupStatsBuilder gsBuilder = new GroupStatsBuilder();
117         List<GroupStats> groupStats = new ArrayList<>();
118         gsBuilder.setKey(new GroupStatsKey(input.getGroupId()));
119         gsBuilder.setByteCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
120         groupStats.add(gsBuilder.build());
121         GroupStatisticsUpdatedBuilder gsuBuilder = new GroupStatisticsUpdatedBuilder();
122         gsuBuilder.setTransactionId(transId);
123         gsuBuilder.setMoreReplies(false);
124         gsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
125         gsuBuilder.setGroupStats(groupStats);
126         notifService.pushDelayedNotification(gsuBuilder.build(), 100);
127         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
128     }
129 }