BUG-4118: Li:backward compatibility - rpcs - stats services
[openflowplugin.git] / openflowplugin-impl / src / test / java / org / opendaylight / openflowplugin / impl / statistics / services / OpendaylightQueueStatisticsServiceImplTest.java
index 4bd9ab97c82190c5cfb145dbb8f938dcd184d0ce..64a892c025cd9cfaa3626cd9736da68f25b9765e 100644 (file)
@@ -9,49 +9,54 @@
 package org.opendaylight.openflowplugin.impl.statistics.services;
 
 import com.google.common.util.concurrent.FutureCallback;
+import java.math.BigInteger;
+import java.util.Collections;
 import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicLong;
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.Matchers;
 import org.mockito.Mockito;
-import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
-import org.opendaylight.openflowplugin.impl.rpc.AbstractRequestContext;
+import org.opendaylight.openflowplugin.api.OFConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.queue.rev130925.QueueId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyQueueCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.queue._case.MultipartReplyQueueBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.queue._case.multipart.reply.queue.QueueStatsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPortsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPortInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPortOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPortOutput;
+import org.opendaylight.yangtools.yang.binding.Notification;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
 /**
  * Test for {@link OpendaylightQueueStatisticsServiceImpl}
  */
-public class OpendaylightQueueStatisticsServiceImplTest extends AbstractStatsServiceTest {
+public class OpendaylightQueueStatisticsServiceImplTest extends AbstractSingleStatsServiceTest {
 
     @Captor
     private ArgumentCaptor<MultipartRequestInput> requestInput;
 
-    private RequestContext<Object> rqContext;
-
     private OpendaylightQueueStatisticsServiceImpl queueStatisticsService;
 
     public void setUp() {
-        queueStatisticsService = new OpendaylightQueueStatisticsServiceImpl(rqContextStack, deviceContext);
-
-        rqContext = new AbstractRequestContext<Object>(42L) {
-            @Override
-            public void close() {
-                //NOOP
-            }
-        };
-        Mockito.when(rqContextStack.<Object>createRequestContext()).thenReturn(rqContext);
+        queueStatisticsService = new OpendaylightQueueStatisticsServiceImpl(rqContextStack, deviceContext,
+                new AtomicLong(), notificationPublishService);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        Mockito.verify(notificationPublishService).offerNotification(Matchers.<Notification>any());
     }
 
     @Test
@@ -62,6 +67,8 @@ public class OpendaylightQueueStatisticsServiceImplTest extends AbstractStatsSer
         GetAllQueuesStatisticsFromAllPortsInputBuilder input = new GetAllQueuesStatisticsFromAllPortsInputBuilder()
                 .setNode(createNodeRef("unitProt:123"));
 
+        rpcResult = buildQueueStatsReply();
+
         final Future<RpcResult<GetAllQueuesStatisticsFromAllPortsOutput>> resultFuture
                 = queueStatisticsService.getAllQueuesStatisticsFromAllPorts(input.build());
 
@@ -71,6 +78,27 @@ public class OpendaylightQueueStatisticsServiceImplTest extends AbstractStatsSer
         Assert.assertEquals(MultipartType.OFPMPQUEUE, requestInput.getValue().getType());
     }
 
+    protected RpcResult<Object> buildQueueStatsReply() {
+        return RpcResultBuilder.<Object>success(Collections.singletonList(
+                new MultipartReplyMessageBuilder()
+                        .setVersion(OFConstants.OFP_VERSION_1_3)
+                        .setMultipartReplyBody(new MultipartReplyQueueCaseBuilder()
+                                .setMultipartReplyQueue(new MultipartReplyQueueBuilder()
+                                        .setQueueStats(Collections.singletonList(new QueueStatsBuilder()
+                                                .setDurationSec(41L)
+                                                .setDurationNsec(42L)
+                                                .setTxBytes(BigInteger.valueOf(43L))
+                                                .setTxErrors(BigInteger.valueOf(44L))
+                                                .setTxPackets(BigInteger.valueOf(45L))
+                                                .setPortNo(46L)
+                                                .setQueueId(47L)
+                                                .build()))
+                                        .build())
+                                .build())
+                        .build()
+        )).build();
+    }
+
     @Test
     public void testGetAllQueuesStatisticsFromGivenPort() throws Exception {
         Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
@@ -80,6 +108,8 @@ public class OpendaylightQueueStatisticsServiceImplTest extends AbstractStatsSer
                 .setNode(createNodeRef("unitProt:123"))
                 .setNodeConnectorId(new NodeConnectorId("unitProt:123:321"));
 
+        rpcResult = buildQueueStatsReply();
+
         final Future<RpcResult<GetAllQueuesStatisticsFromGivenPortOutput>> resultFuture
                 = queueStatisticsService.getAllQueuesStatisticsFromGivenPort(input.build());
 
@@ -99,6 +129,8 @@ public class OpendaylightQueueStatisticsServiceImplTest extends AbstractStatsSer
                 .setNodeConnectorId(new NodeConnectorId("unitProt:123:321"))
                 .setQueueId(new QueueId(21L));
 
+        rpcResult = buildQueueStatsReply();
+
         final Future<RpcResult<GetQueueStatisticsFromGivenPortOutput>> resultFuture
                 = queueStatisticsService.getQueueStatisticsFromGivenPort(input.build());