From 5b317fabba0bd32537d4264b057f686e43a2d673 Mon Sep 17 00:00:00 2001 From: Jozef Gloncak Date: Mon, 20 Jul 2015 15:22:50 +0200 Subject: [PATCH] Coverage - DeviceManagerImpl. Increase code coverage in DeviceManagerImpl. Change-Id: I89ebfc2791fe656205bc8a8c90aacd3199e772cc Signed-off-by: Jozef Gloncak --- .../impl/device/DeviceManagerImplTest.java | 41 +++++++++++++++---- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java index e5d804b2d9..160ee3f6ca 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/device/DeviceManagerImplTest.java @@ -20,11 +20,10 @@ import com.google.common.util.concurrent.CheckedFuture; import java.math.BigInteger; import java.util.*; -import javassist.Translator; +import com.google.common.util.concurrent.ListenableFuture; import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.NodeGroupFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionType; @@ -35,10 +34,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.*; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group.features._case.MultipartReplyGroupFeatures; 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.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.features._case.MultipartReplyMeterFeatures; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.meter.features._case.MultipartReplyMeterFeaturesBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc._case.MultipartReplyPortDescBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc._case.multipart.reply.port.desc.Ports; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.port.desc._case.multipart.reply.port.desc.PortsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeaturesBuilder; import com.google.common.util.concurrent.Futures; @@ -74,8 +71,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeatures; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; +import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; +import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @RunWith(MockitoJUnitRunner.class) public class DeviceManagerImplTest { @@ -205,20 +204,24 @@ public class DeviceManagerImplTest { } @Test - public void translateAndWriteReplyTypeDesc() { + public void testTranslateAndWriteReplyTypeDesc() { DeviceContext mockedDeviceContext = mock(DeviceContext.class); + Collection multipartReplyMessages = prepareDataforTypeDesc(mockedDeviceContext); + DeviceManagerImpl.translateAndWriteReply(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + verify(mockedDeviceContext) + .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); + } + + private Collection prepareDataforTypeDesc(final DeviceContext mockedDeviceContext) { MultipartReplyDesc multipartReplyDesc = new MultipartReplyDescBuilder().build(); MultipartReplyDescCaseBuilder multipartReplyDescCaseBuilder = new MultipartReplyDescCaseBuilder(); multipartReplyDescCaseBuilder.setMultipartReplyDesc(multipartReplyDesc); MultipartReplyMessage multipartReplyMessage = new MultipartReplyMessageBuilder().setMultipartReplyBody(multipartReplyDescCaseBuilder.build()).build(); - Set multipartReplyMessages = Collections.singleton(multipartReplyMessage); + return Collections.singleton(multipartReplyMessage); - DeviceManagerImpl.translateAndWriteReply(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); - verify(mockedDeviceContext) - .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); } @Test @@ -324,4 +327,24 @@ public class DeviceManagerImplTest { verify(mockedDeviceContext) .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), any(InstanceIdentifier.class), any(NodeConnector.class)); } + + @Test + public void createSuccessProcessingCallbackTest() { + DeviceContext mockedDeviceContext = mock(DeviceContext.class); + DeviceState mockedDeviceState = mock(DeviceState.class); + when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); + + List multipartReplies = new ArrayList<>(prepareDataforTypeDesc(mockedDeviceContext)); + RpcResult> result = RpcResultBuilder.>success(multipartReplies).build(); + ListenableFuture>> mockedRequestContextFuture = Futures.immediateFuture(result); + + DeviceManagerImpl.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, mockedRequestContextFuture); + verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); + + RpcResult> rpcResult = RpcResultBuilder.>failed().withError(RpcError.ErrorType.PROTOCOL, "dummy error").build(); + mockedRequestContextFuture = Futures.immediateFuture(rpcResult); + DeviceManagerImpl.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II,mockedRequestContextFuture); + verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); + + } } -- 2.36.6