2 * Copyright (c) 2015 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
9 package org.opendaylight.openflowplugin.impl.statistics.services;
11 import com.google.common.util.concurrent.FutureCallback;
12 import java.util.concurrent.Future;
13 import org.junit.Assert;
14 import org.junit.Test;
15 import org.mockito.ArgumentCaptor;
16 import org.mockito.Captor;
17 import org.mockito.Matchers;
18 import org.mockito.Mockito;
19 import org.opendaylight.openflowplugin.api.openflow.device.RequestContext;
20 import org.opendaylight.openflowplugin.impl.rpc.AbstractRequestContext;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsInputBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInputBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInputBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInputBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutput;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
32 import org.opendaylight.yangtools.yang.common.RpcResult;
35 * Test for {@link OpendaylightGroupStatisticsServiceImpl}
37 public class OpendaylightGroupStatisticsServiceImplTest extends AbstractStatsServiceTest {
40 private ArgumentCaptor<MultipartRequestInput> requestInput;
42 private RequestContext<Object> rqContext;
44 private OpendaylightGroupStatisticsServiceImpl groupStatisticsService;
47 groupStatisticsService = new OpendaylightGroupStatisticsServiceImpl(rqContextStack, deviceContext);
49 rqContext = new AbstractRequestContext<Object>(42L) {
55 Mockito.when(rqContextStack.<Object>createRequestContext()).thenReturn(rqContext);
59 public void testGetAllGroupStatistics() throws Exception {
60 Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
61 .commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
63 GetAllGroupStatisticsInputBuilder input = new GetAllGroupStatisticsInputBuilder()
64 .setNode(createNodeRef("unitProt:123"));
66 final Future<RpcResult<GetAllGroupStatisticsOutput>> resultFuture
67 = groupStatisticsService.getAllGroupStatistics(input.build());
69 Assert.assertTrue(resultFuture.isDone());
70 final RpcResult<GetAllGroupStatisticsOutput> rpcResult = resultFuture.get();
71 Assert.assertTrue(rpcResult.isSuccessful());
72 Assert.assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());
76 public void testGetGroupDescription() throws Exception {
77 Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
78 .commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
80 GetGroupDescriptionInputBuilder input = new GetGroupDescriptionInputBuilder()
81 .setNode(createNodeRef("unitProt:123"));
83 final Future<RpcResult<GetGroupDescriptionOutput>> resultFuture
84 = groupStatisticsService.getGroupDescription(input.build());
86 Assert.assertTrue(resultFuture.isDone());
87 final RpcResult<GetGroupDescriptionOutput> rpcResult = resultFuture.get();
88 Assert.assertTrue(rpcResult.isSuccessful());
89 Assert.assertEquals(MultipartType.OFPMPGROUPDESC, requestInput.getValue().getType());
93 public void testGetGroupFeatures() throws Exception {
94 Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
95 .commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
97 GetGroupFeaturesInputBuilder input = new GetGroupFeaturesInputBuilder()
98 .setNode(createNodeRef("unitProt:123"));
100 final Future<RpcResult<GetGroupFeaturesOutput>> resultFuture
101 = groupStatisticsService.getGroupFeatures(input.build());
103 Assert.assertTrue(resultFuture.isDone());
104 final RpcResult<GetGroupFeaturesOutput> rpcResult = resultFuture.get();
105 Assert.assertTrue(rpcResult.isSuccessful());
106 Assert.assertEquals(MultipartType.OFPMPGROUPFEATURES, requestInput.getValue().getType());
110 public void testGetGroupStatistics() throws Exception {
111 Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
112 .commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
114 GetGroupStatisticsInputBuilder input = new GetGroupStatisticsInputBuilder()
115 .setNode(createNodeRef("unitProt:123"))
116 .setGroupId(new GroupId(21L));
118 final Future<RpcResult<GetGroupStatisticsOutput>> resultFuture
119 = groupStatisticsService.getGroupStatistics(input.build());
121 Assert.assertTrue(resultFuture.isDone());
122 final RpcResult<GetGroupStatisticsOutput> rpcResult = resultFuture.get();
123 Assert.assertTrue(rpcResult.isSuccessful());
124 Assert.assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());