2 * Copyright (c) 2014, 2016 Cisco Systems, Inc. and others. All rights reserved.
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
8 package test.mock.util;
10 import java.math.BigInteger;
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.concurrent.Future;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsInput;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutputBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInput;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsOutputBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesInput;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutput;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeaturesOutputBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsInput;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutputBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterConfigStatsUpdatedBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterFeaturesUpdatedBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.MeterStatisticsUpdatedBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.config.stats.reply.MeterConfigStats;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.config.stats.reply.MeterConfigStatsBuilder;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStats;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStatsBuilder;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.meter.statistics.reply.MeterStatsKey;
39 import org.opendaylight.yangtools.yang.common.RpcResult;
40 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
42 import com.google.common.util.concurrent.Futures;
44 public class OpendaylightMeterStatisticsServiceMock implements OpendaylightMeterStatisticsService {
45 NotificationProviderServiceHelper notifService;
47 public OpendaylightMeterStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
48 this.notifService = notifService;
52 public Future<RpcResult<GetAllMeterConfigStatisticsOutput>> getAllMeterConfigStatistics(GetAllMeterConfigStatisticsInput input) {
53 GetAllMeterConfigStatisticsOutputBuilder builder = new GetAllMeterConfigStatisticsOutputBuilder();
54 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
55 builder.setTransactionId(transId);
56 List<MeterConfigStats> meterConfigStats = new ArrayList<>();
57 MeterConfigStatsBuilder mcsBuilder = new MeterConfigStatsBuilder();
58 mcsBuilder.setMeterId(StatisticsManagerTest.getMeter().getMeterId());
59 mcsBuilder.setMeterName(StatisticsManagerTest.getMeter().getMeterName());
60 mcsBuilder.setContainerName(StatisticsManagerTest.getMeter().getContainerName());
61 meterConfigStats.add(mcsBuilder.build());
62 builder.setMeterConfigStats(meterConfigStats);
63 MeterConfigStatsUpdatedBuilder mscuBuilder = new MeterConfigStatsUpdatedBuilder();
64 mscuBuilder.setTransactionId(transId);
65 mscuBuilder.setMoreReplies(false);
66 mscuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
67 mscuBuilder.setMeterConfigStats(meterConfigStats);
68 notifService.pushDelayedNotification(mscuBuilder.build(), 100);
69 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
73 public Future<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(GetAllMeterStatisticsInput input) {
74 GetAllMeterStatisticsOutputBuilder builder = new GetAllMeterStatisticsOutputBuilder();
75 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
76 builder.setTransactionId(transId);
77 MeterStatsBuilder msBuilder = new MeterStatsBuilder();
78 msBuilder.setByteInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
79 msBuilder.setPacketInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
80 msBuilder.setKey(new MeterStatsKey(StatisticsManagerTest.getMeter().getMeterId()));
81 List<MeterStats> meterStats = new ArrayList<>();
82 meterStats.add(msBuilder.build());
83 MeterStatisticsUpdatedBuilder msuBuilder = new MeterStatisticsUpdatedBuilder();
84 msuBuilder.setTransactionId(transId);
85 msuBuilder.setMoreReplies(false);
86 msuBuilder.setMeterStats(meterStats);
87 msuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
88 notifService.pushDelayedNotification(msuBuilder.build(), 100);
89 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
93 public Future<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(GetMeterFeaturesInput input) {
94 GetMeterFeaturesOutputBuilder builder = new GetMeterFeaturesOutputBuilder();
95 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
96 builder.setTransactionId(transId);
97 MeterFeaturesUpdatedBuilder mfuBuilder = new MeterFeaturesUpdatedBuilder();
98 mfuBuilder.setTransactionId(transId);
99 mfuBuilder.setMoreReplies(false);
100 mfuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
101 mfuBuilder.setMaxMeter(StatisticsManagerTest.COUNTER_32_TEST_VALUE);
102 notifService.pushDelayedNotification(mfuBuilder.build(), 100);
103 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
107 public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input) {
108 GetMeterStatisticsOutputBuilder builder = new GetMeterStatisticsOutputBuilder();
109 TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
110 builder.setTransactionId(transId);
111 MeterStatsBuilder msBuilder = new MeterStatsBuilder();
112 msBuilder.setKey(new MeterStatsKey(input.getMeterId()));
113 msBuilder.setByteInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
114 msBuilder.setPacketInCount(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
115 List<MeterStats> meterStats = new ArrayList<>();
116 meterStats.add(msBuilder.build());
117 MeterStatisticsUpdatedBuilder msuBuilder = new MeterStatisticsUpdatedBuilder();
118 msuBuilder.setTransactionId(transId);
119 msuBuilder.setMoreReplies(false);
120 msuBuilder.setMeterStats(meterStats);
121 msuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
122 notifService.pushDelayedNotification(msuBuilder.build(), 100);
123 return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());