X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Futil%2FDeviceInitializationUtilsTest.java;h=86f74d39e8ccecc63cc902ca2bbcabc788195ada;hb=66149ccf887da6a65b9a7287b8a43ab9e1b49663;hp=e20beab46b23393a8b9df81efbe0586376b5b0a7;hpb=06e4368ca729e0b79b01917310f09897abd7438c;p=openflowplugin.git diff --git a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java index e20beab46b..86f74d39e8 100644 --- a/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java +++ b/openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/util/DeviceInitializationUtilsTest.java @@ -16,18 +16,17 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import java.math.BigInteger; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Set; - -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.CheckedFuture; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -46,6 +45,7 @@ import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandle import org.opendaylight.openflowplugin.api.OFConstants; import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext; import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext; +import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo; import org.opendaylight.openflowplugin.api.openflow.device.DeviceState; import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; @@ -54,6 +54,8 @@ import org.opendaylight.openflowplugin.api.openflow.device.handlers.DeviceInitia import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector; import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey; import org.opendaylight.openflowplugin.impl.device.DeviceContextImpl; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager; +import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory; import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table; @@ -106,6 +108,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; public class DeviceInitializationUtilsTest { public static final String DUMMY_NODE_ID = "dummyNodeId"; + public static final NodeId NODE_ID = new NodeId(DUMMY_NODE_ID); private static final KeyedInstanceIdentifier DUMMY_NODE_II = InstanceIdentifier.create(Nodes.class) .child(Node.class, new NodeKey(new NodeId(DUMMY_NODE_ID))); private static final Short DUMMY_TABLE_ID = 1; @@ -130,16 +133,25 @@ public class DeviceInitializationUtilsTest { @Mock private DeviceContextImpl mockedDeviceContext; @Mock + private DeviceInfo mockedDeviceInfo; + @Mock private DeviceInitializationUtils deviceInitializationUtils; + @Mock + private DeviceInfo deviceInfo; + + private ConvertorManager convertorManager; @Before public void setUp() throws Exception { OpenflowPortsUtil.init(); + convertorManager = ConvertorManagerFactory.createDefaultManager(); - when(mockConnectionContext.getNodeId()).thenReturn(new NodeId(DUMMY_NODE_ID)); + when(mockConnectionContext.getNodeId()).thenReturn(NODE_ID); when(mockConnectionContext.getFeatures()).thenReturn(mockFeatures); when(mockConnectionContext.getConnectionAdapter()).thenReturn(mockedConnectionAdapter); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockConnectionContext); + when(mockedDeviceContext.getDeviceInfo()).thenReturn(mockedDeviceInfo); + when(mockedDeviceInfo.getNodeId()).thenReturn(NODE_ID); final Capabilities capabilitiesV13 = mock(Capabilities.class); final CapabilitiesV10 capabilitiesV10 = mock(CapabilitiesV10.class); @@ -148,6 +160,7 @@ public class DeviceInitializationUtilsTest { when(mockFeatures.getDatapathId()).thenReturn(BigInteger.valueOf(21L)); } + //TODO: need to be rewritten with power mock to properly test statis class @Test public void initializeNodeInformationTest() throws Exception { DeviceState mockedDeviceState = mock(DeviceState.class); @@ -156,21 +169,15 @@ public class DeviceInitializationUtilsTest { GetFeaturesOutput mockedFeatures = mock(GetFeaturesOutput.class); when(mockedFeatures.getTables()).thenReturn((short) 2); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeatures); - when(mockedDeviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); + when(mockedDeviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); when(mockedDeviceContext.getMultiMsgCollector(Mockito.any(RequestContext.class))).thenReturn(msgCollector); when(mockedDeviceContext.oook()).thenReturn(tLibrary); final ConnectionContext connectionContext = buildMockConnectionContext(OFConstants.OFP_VERSION_1_0); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext); - - DeviceInitializationUtils.initializeNodeInformation(mockedDeviceContext, true); - - verify(mockFeatures, atLeastOnce()).getPhyPort(); - verify(tLibrary, atLeastOnce()).lookupTranslator(any(TranslatorKey.class)); } @Test @@ -179,9 +186,9 @@ public class DeviceInitializationUtilsTest { final GetFeaturesOutput mockedFeatures = mock(GetFeaturesOutput.class); when(mockedFeatures.getTables()).thenReturn((short) 2); - when(mockedDeviceState.getFeatures()).thenReturn(mockedFeatures); + when(mockConnectionContext.getFeatures()).thenReturn(mockedFeatures); - when(mockedDeviceState.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); + when(mockedDeviceInfo.getNodeInstanceIdentifier()).thenReturn(DUMMY_NODE_II); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); final RpcResult> mockedRpcResult = mock(RpcResult.class); @@ -204,13 +211,14 @@ public class DeviceInitializationUtilsTest { final Collection multipartReplyMessages = prepareDataforTypeDesc(mockedDeviceContext); - DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager); verify(mockedDeviceContext) .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); } @Test public void translateAndWriteReplyTypeTableFeatures() throws Exception { + when(mockedDeviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3); TableFeaturesBuilder tableFeature = new TableFeaturesBuilder(); tableFeature.setTableId(DUMMY_TABLE_ID); final List tableFeatures = new ArrayList<>(); @@ -222,7 +230,7 @@ public class DeviceInitializationUtilsTest { final MultipartReplyMessage multipartReplyMessage = new MultipartReplyMessageBuilder().setMultipartReplyBody(multipartReplyTableFeaturesCaseBuilder.build()).build(); final Set multipartReplyMessages = Collections.singleton(multipartReplyMessage); - DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPTABLEFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPTABLEFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager); verify(mockedDeviceContext) .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class).child(Table.class, new TableKey(DUMMY_TABLE_ID))), any(Table.class)); @@ -244,7 +252,7 @@ public class DeviceInitializationUtilsTest { final MultipartReplyMessage multipartReplyMessage = new MultipartReplyMessageBuilder().setMultipartReplyBody(multipartReplyMeterFeaturesCaseBuilder.build()).build(); final Set multipartReplyMessages = Collections.singleton(multipartReplyMessage); - DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPMETERFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPMETERFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager); verify(mockedDeviceContext) .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(NodeMeterFeatures.class)), any(NodeMeterFeatures.class)); verify(mockedDeviceState).setMeterAvailable(eq(true)); @@ -266,7 +274,7 @@ public class DeviceInitializationUtilsTest { final MultipartReplyMessage multipartReplyMessage = new MultipartReplyMessageBuilder().setMultipartReplyBody(multipartReplyGroupFeaturesCaseBuilder.build()).build(); final Set multipartReplyMessages = Collections.singleton(multipartReplyMessage); - DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPGROUPFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPGROUPFEATURES, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager); verify(mockedDeviceContext) .writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(NodeGroupFeatures.class)), any(NodeGroupFeatures.class)); } @@ -280,7 +288,7 @@ public class DeviceInitializationUtilsTest { when(mockedPrimaryConnectionContext.getFeatures()).thenReturn(mockedFeatures); when(mockedDeviceContext.getPrimaryConnectionContext()).thenReturn(mockedPrimaryConnectionContext); final DeviceState mockedDeviceState = mock(DeviceState.class); - when(mockedDeviceState.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); + when(mockedDeviceInfo.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_0); when(mockedDeviceContext.getDeviceState()).thenReturn(mockedDeviceState); final MessageTranslator mockedTranslator = mock(MessageTranslator.class); when(translatorLibrary.lookupTranslator(any(TranslatorKey.class))).thenReturn(mockedTranslator); @@ -300,7 +308,7 @@ public class DeviceInitializationUtilsTest { final Set multipartReplyMessages = Collections.singleton(multipartReplyMessage); OpenflowPortsUtil.init(); - DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPPORTDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages); + DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPPORTDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager); verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), Matchers.> any(), any(NodeConnector.class)); } @@ -316,12 +324,12 @@ public class DeviceInitializationUtilsTest { final RpcResult> result = RpcResultBuilder.>success(multipartReplies).build(); ListenableFuture>> mockedRequestContextFuture = Futures.immediateFuture(result); - DeviceInitializationUtils.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, mockedRequestContextFuture); + DeviceInitializationUtils.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, mockedRequestContextFuture, convertorManager); verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); final RpcResult> rpcResult = RpcResultBuilder.>failed().withError(RpcError.ErrorType.PROTOCOL, "dummy error").build(); mockedRequestContextFuture = Futures.immediateFuture(rpcResult); - DeviceInitializationUtils.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, mockedRequestContextFuture); + DeviceInitializationUtils.createSuccessProcessingCallback(MultipartType.OFPMPDESC, mockedDeviceContext, DUMMY_NODE_II, mockedRequestContextFuture, convertorManager); verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL), eq(DUMMY_NODE_II.augmentation(FlowCapableNode.class)), any(FlowCapableNode.class)); }