External api proposal
[openflowplugin.git] / applications / statistics-manager / src / test / java / test / mock / util / OpendaylightQueueStatisticsServiceMock.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 import java.util.concurrent.atomic.AtomicLong;
8
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionId;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsInput;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsOutput;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsOutputBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPortInput;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPortOutput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPortOutputBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortInput;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortOutput;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortOutputBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.OpendaylightQueueStatisticsService;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.QueueStatisticsUpdateBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMap;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMapBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.queue.id.and.statistics.map.QueueIdAndStatisticsMapKey;
26 import org.opendaylight.yangtools.yang.common.RpcResult;
27 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
28
29 import com.google.common.util.concurrent.Futures;
30
31 public class OpendaylightQueueStatisticsServiceMock implements OpendaylightQueueStatisticsService {
32     NotificationProviderServiceHelper notifService;
33     AtomicLong transNum = new AtomicLong();
34
35     public OpendaylightQueueStatisticsServiceMock(NotificationProviderServiceHelper notifService) {
36         this.notifService = notifService;
37     }
38
39     @Override
40     public Future<RpcResult<GetAllQueuesStatisticsFromAllPortsOutput>> getAllQueuesStatisticsFromAllPorts(GetAllQueuesStatisticsFromAllPortsInput input) {
41         GetAllQueuesStatisticsFromAllPortsOutputBuilder builder = new GetAllQueuesStatisticsFromAllPortsOutputBuilder();
42         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
43         builder.setTransactionId(transId);
44         QueueStatisticsUpdateBuilder qsuBuilder = new QueueStatisticsUpdateBuilder();
45         QueueIdAndStatisticsMapBuilder qiasmBuilder = new QueueIdAndStatisticsMapBuilder();
46         List<QueueIdAndStatisticsMap> queueIdAndStatisticsMaps = new ArrayList<>();
47         qsuBuilder.setMoreReplies(false);
48         qsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
49         qsuBuilder.setTransactionId(transId);
50         qiasmBuilder.setTransmittedBytes(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
51         qiasmBuilder.setKey(new QueueIdAndStatisticsMapKey(StatisticsManagerTest.getNodeConnectorId(), StatisticsManagerTest.getQueue().getQueueId()));
52         queueIdAndStatisticsMaps.add(qiasmBuilder.build());
53         qsuBuilder.setQueueIdAndStatisticsMap(queueIdAndStatisticsMaps);
54         notifService.pushDelayedNotification(qsuBuilder.build(), 100);
55         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
56     }
57
58     @Override
59     public Future<RpcResult<GetAllQueuesStatisticsFromGivenPortOutput>> getAllQueuesStatisticsFromGivenPort(GetAllQueuesStatisticsFromGivenPortInput input) {
60         GetAllQueuesStatisticsFromGivenPortOutputBuilder builder = new GetAllQueuesStatisticsFromGivenPortOutputBuilder();
61         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
62         builder.setTransactionId(transId);
63         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
64     }
65
66     @Override
67     public Future<RpcResult<GetQueueStatisticsFromGivenPortOutput>> getQueueStatisticsFromGivenPort(GetQueueStatisticsFromGivenPortInput input) {
68         GetQueueStatisticsFromGivenPortOutputBuilder builder = new GetQueueStatisticsFromGivenPortOutputBuilder();
69         TransactionId transId = new TransactionId(BigInteger.valueOf(TestUtils.getNewTransactionId()));
70         builder.setTransactionId(transId);
71         QueueIdAndStatisticsMapBuilder qiasmBuilder = new QueueIdAndStatisticsMapBuilder();
72         List<QueueIdAndStatisticsMap> queueIdAndStatisticsMaps = new ArrayList<>();
73         qiasmBuilder.setKey(new QueueIdAndStatisticsMapKey(input.getNodeConnectorId(), input.getQueueId()));
74         qiasmBuilder.setTransmittedBytes(StatisticsManagerTest.COUNTER_64_TEST_VALUE);
75         queueIdAndStatisticsMaps.add(qiasmBuilder.build());
76         QueueStatisticsUpdateBuilder qsuBuilder = new QueueStatisticsUpdateBuilder();
77         qsuBuilder.setMoreReplies(false);
78         qsuBuilder.setTransactionId(transId);
79         qsuBuilder.setId(input.getNode().getValue().firstKeyOf(Node.class, NodeKey.class).getId());
80         qsuBuilder.setQueueIdAndStatisticsMap(queueIdAndStatisticsMaps);
81         notifService.pushDelayedNotification(qsuBuilder.build(), 100);
82         return Futures.immediateFuture(RpcResultBuilder.success(builder.build()).build());
83     }
84 }