* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.openflowplugin.impl.statistics.services;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.verify;
+
import com.google.common.util.concurrent.FutureCallback;
-import java.math.BigInteger;
-import java.util.Collections;
-import java.util.concurrent.Future;
+import java.util.List;
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.OFConstants;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
+import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescriptionOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeaturesOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatisticsOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.GroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupCapabilities;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc._case.MultipartReplyGroupDescBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.desc._case.multipart.reply.group.desc.GroupDescBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.features._case.MultipartReplyGroupFeaturesBuilder;
-import org.opendaylight.yangtools.yang.binding.Notification;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
-/**
- * Test for {@link OpendaylightGroupStatisticsServiceImpl}.
- */
+@Deprecated
public class OpendaylightGroupStatisticsServiceImplTest extends AbstractSingleStatsServiceTest {
-
private static final org.opendaylight.yang.gen.v1.urn
- .opendaylight.openflow.common.types.rev130731.GroupId GROUP_ID =
- new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupId(123L);
+ .opendaylight.openflow.common.types.rev130731.GroupId GROUP_ID = new org.opendaylight.yang.gen.v1.urn
+ .opendaylight.openflow.common.types.rev130731.GroupId(Uint32.valueOf(123));
@Captor
private ArgumentCaptor<MultipartRequestInput> requestInput;
- private OpendaylightGroupStatisticsServiceImpl groupStatisticsService;
+ private GetAllGroupStatisticsImpl getAllGroupStatistics;
+ private GetGroupStatisticsImpl getGroupStatistics;
+ private GetGroupDescriptionImpl getGroupDescription;
+ private GetGroupFeaturesImpl getGroupFeatures;
+ @Override
public void setUp() {
- final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
- groupStatisticsService = new OpendaylightGroupStatisticsServiceImpl(rqContextStack, deviceContext,
- new AtomicLong(), notificationPublishService, convertorManager);
-
- Mockito.doAnswer(answerVoidToCallback).when(outboundQueueProvider)
- .commitEntry(Matchers.eq(42L), requestInput.capture(), Matchers.any(FutureCallback.class));
+ final var convertorManager = ConvertorManagerFactory.createDefaultManager();
+ final var xid = new AtomicLong();
+ getAllGroupStatistics = new GetAllGroupStatisticsImpl(rqContextStack, deviceContext, xid,
+ notificationPublishService, convertorManager);
+ getGroupStatistics = new GetGroupStatisticsImpl(rqContextStack, deviceContext, xid, notificationPublishService,
+ convertorManager);
+ getGroupDescription = new GetGroupDescriptionImpl(rqContextStack, deviceContext, xid,
+ notificationPublishService, convertorManager);
+ getGroupFeatures = new GetGroupFeaturesImpl(rqContextStack, deviceContext, xid, notificationPublishService,
+ convertorManager);
+
+ doAnswer(answerVoidToCallback).when(outboundQueueProvider)
+ .commitEntry(eq(Uint32.valueOf(42)), requestInput.capture(), any(FutureCallback.class));
}
@After
- public void tearDown() throws Exception {
- Mockito.verify(notificationPublishService).offerNotification(Matchers.<Notification>any());
+ public void tearDown() {
+ verify(notificationPublishService).offerNotification(any());
}
@Test
rpcResult = buildGroupStatsResponse();
- final Future<RpcResult<GetAllGroupStatisticsOutput>> resultFuture
- = groupStatisticsService.getAllGroupStatistics(input.build());
+ final var resultFuture = getAllGroupStatistics.invoke(input.build());
- Assert.assertTrue(resultFuture.isDone());
- final RpcResult<GetAllGroupStatisticsOutput> rpcResultCompatible = resultFuture.get();
- Assert.assertTrue(rpcResultCompatible.isSuccessful());
- Assert.assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());
+ assertTrue(resultFuture.isDone());
+ final var rpcResultCompatible = resultFuture.get();
+ assertTrue(rpcResultCompatible.isSuccessful());
+ assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());
}
@Test
GetGroupDescriptionInputBuilder input = new GetGroupDescriptionInputBuilder()
.setNode(createNodeRef("unitProt:123"));
- rpcResult = RpcResultBuilder.<Object>success(Collections.singletonList(
- new MultipartReplyMessageBuilder()
- .setVersion(OFConstants.OFP_VERSION_1_3)
- .setMultipartReplyBody(new MultipartReplyGroupDescCaseBuilder()
- .setMultipartReplyGroupDesc(new MultipartReplyGroupDescBuilder()
- .setGroupDesc(Collections.singletonList(new GroupDescBuilder()
- .setGroupId(GROUP_ID)
- .setBucketsList(Collections.singletonList(new BucketsListBuilder()
- .setWatchGroup(51L)
- .setWatchPort(new PortNumber(52L))
- .setWeight(53)
- .build()))
- .setType(GroupType.OFPGTALL)
- .build()))
- .build())
- .build())
- .build()
+ rpcResult = RpcResultBuilder.<Object>success(List.of(new MultipartReplyMessageBuilder()
+ .setVersion(EncodeConstants.OF_VERSION_1_3)
+ .setMultipartReplyBody(new MultipartReplyGroupDescCaseBuilder()
+ .setMultipartReplyGroupDesc(new MultipartReplyGroupDescBuilder()
+ .setGroupDesc(List.of(new GroupDescBuilder()
+ .setGroupId(GROUP_ID)
+ .setBucketsList(List.of(new BucketsListBuilder()
+ .setWatchGroup(Uint32.valueOf(51))
+ .setWatchPort(new PortNumber(Uint32.valueOf(52)))
+ .setWeight(Uint16.valueOf(53))
+ .build()))
+ .setType(GroupType.OFPGTALL)
+ .build()))
+ .build())
+ .build())
+ .build()
)).build();
- final Future<RpcResult<GetGroupDescriptionOutput>> resultFuture
- = groupStatisticsService.getGroupDescription(input.build());
+ final var resultFuture = getGroupDescription.invoke(input.build());
- Assert.assertTrue(resultFuture.isDone());
- final RpcResult<GetGroupDescriptionOutput> rpcResult = resultFuture.get();
- Assert.assertTrue(rpcResult.isSuccessful());
- Assert.assertEquals(MultipartType.OFPMPGROUPDESC, requestInput.getValue().getType());
+ assertTrue(resultFuture.isDone());
+ final var rpcResult = resultFuture.get();
+ assertTrue(rpcResult.isSuccessful());
+ assertEquals(MultipartType.OFPMPGROUPDESC, requestInput.getValue().getType());
}
@Test
GetGroupFeaturesInputBuilder input = new GetGroupFeaturesInputBuilder()
.setNode(createNodeRef("unitProt:123"));
- rpcResult = RpcResultBuilder.<Object>success(Collections.singletonList(
- new MultipartReplyMessageBuilder()
- .setVersion(OFConstants.OFP_VERSION_1_3)
- .setMultipartReplyBody(new MultipartReplyGroupFeaturesCaseBuilder()
- .setMultipartReplyGroupFeatures(new MultipartReplyGroupFeaturesBuilder()
- .setActionsBitmap(Collections.singletonList(new ActionType(true,
- false, false, false, false, false, false, false, false, false, false,
- false, false, false, false, false, false)))
- .setCapabilities(new GroupCapabilities(true, false, false, false))
- .setTypes(new GroupTypes(true, false, false, false))
- .setMaxGroups(Collections.singletonList(5L))
- .build())
- .build())
- .build()
+ rpcResult = RpcResultBuilder.<Object>success(List.of(new MultipartReplyMessageBuilder()
+ .setVersion(EncodeConstants.OF_VERSION_1_3)
+ .setMultipartReplyBody(new MultipartReplyGroupFeaturesCaseBuilder()
+ .setMultipartReplyGroupFeatures(new MultipartReplyGroupFeaturesBuilder()
+ .setActionsBitmap(List.of(new ActionType(true, false, false, false, false, false, false, false,
+ false, false, false, false, false, false, false, false, false)))
+ .setCapabilities(new GroupCapabilities(true, false, false, false))
+ .setTypes(new GroupTypes(true, false, false, false))
+ .setMaxGroups(List.of(Uint32.valueOf(5L)))
+ .build())
+ .build())
+ .build()
)).build();
- final Future<RpcResult<GetGroupFeaturesOutput>> resultFuture
- = groupStatisticsService.getGroupFeatures(input.build());
+ final var resultFuture = getGroupFeatures.invoke(input.build());
- Assert.assertTrue(resultFuture.isDone());
- final RpcResult<GetGroupFeaturesOutput> rpcResult = resultFuture.get();
- Assert.assertTrue(rpcResult.isSuccessful());
- Assert.assertEquals(MultipartType.OFPMPGROUPFEATURES, requestInput.getValue().getType());
+ assertTrue(resultFuture.isDone());
+ final var rpcResult = resultFuture.get();
+ assertTrue(rpcResult.isSuccessful());
+ assertEquals(MultipartType.OFPMPGROUPFEATURES, requestInput.getValue().getType());
}
@Test
public void testGetGroupStatistics() throws Exception {
GetGroupStatisticsInputBuilder input = new GetGroupStatisticsInputBuilder()
.setNode(createNodeRef("unitProt:123"))
- .setGroupId(new GroupId(21L));
+ .setGroupId(new GroupId(Uint32.valueOf(21)));
rpcResult = buildGroupStatsResponse();
- final Future<RpcResult<GetGroupStatisticsOutput>> resultFuture
- = groupStatisticsService.getGroupStatistics(input.build());
+ final var resultFuture = getGroupStatistics.invoke(input.build());
- Assert.assertTrue(resultFuture.isDone());
- final RpcResult<GetGroupStatisticsOutput> rpcResult = resultFuture.get();
- Assert.assertTrue(rpcResult.isSuccessful());
- Assert.assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());
+ assertTrue(resultFuture.isDone());
+ final var rpcResult = resultFuture.get();
+ assertTrue(rpcResult.isSuccessful());
+ assertEquals(MultipartType.OFPMPGROUP, requestInput.getValue().getType());
}
private static RpcResult<Object> buildGroupStatsResponse() {
- return RpcResultBuilder.<Object>success(Collections.singletonList(
- new MultipartReplyMessageBuilder()
- .setVersion(OFConstants.OFP_VERSION_1_3)
- .setMultipartReplyBody(new MultipartReplyGroupCaseBuilder()
- .setMultipartReplyGroup(new MultipartReplyGroupBuilder()
- .setGroupStats(Collections.singletonList(new GroupStatsBuilder()
- .setByteCount(BigInteger.valueOf(21L))
- .setPacketCount(BigInteger.valueOf(22L))
- .setRefCount(23L)
- .setDurationSec(24L)
- .setDurationNsec(25L)
- .setGroupId(GROUP_ID)
- .setBucketStats(Collections.singletonList(new BucketStatsBuilder()
- .setByteCount(BigInteger.valueOf(26L))
- .setPacketCount(BigInteger.valueOf(27L))
- .build()))
- .build()))
- .build())
- .build())
- .build()
+ return RpcResultBuilder.<Object>success(List.of(new MultipartReplyMessageBuilder()
+ .setVersion(EncodeConstants.OF_VERSION_1_3)
+ .setMultipartReplyBody(new MultipartReplyGroupCaseBuilder()
+ .setMultipartReplyGroup(new MultipartReplyGroupBuilder()
+ .setGroupStats(List.of(new GroupStatsBuilder()
+ .setByteCount(Uint64.valueOf(21))
+ .setPacketCount(Uint64.valueOf(22))
+ .setRefCount(Uint32.valueOf(23))
+ .setDurationSec(Uint32.valueOf(24))
+ .setDurationNsec(Uint32.valueOf(25))
+ .setGroupId(GROUP_ID)
+ .setBucketStats(List.of(new BucketStatsBuilder()
+ .setByteCount(Uint64.valueOf(26))
+ .setPacketCount(Uint64.valueOf(27))
+ .build()))
+ .build()))
+ .build())
+ .build())
+ .build()
)).build();
}
}
\ No newline at end of file