From e1a90d940e7382bed0992be813f9f510750ce050 Mon Sep 17 00:00:00 2001 From: Vlado Lavor Date: Mon, 25 May 2015 12:18:29 +0200 Subject: [PATCH] JUnit SfcOvsRpc, SfcOvsToSffMappingAPI & SfcSffToOvsMappingAPI update Change-Id: Ice09b55c078eb2ad5d4448f2ed8872b18e54aa7e Signed-off-by: Vlado Lavor --- sfc-ovs/pom.xml | 13 + .../sfc/sfc_ovs/provider/SfcOvsRpcTest.java | 169 +++---- .../sfc/sfc_ovs/provider/SfcOvsUtilTest.java | 406 ++++++++++------- .../api/SfcOvsToSffMappingAPITest.java | 306 ++++--------- .../api/SfcSffToOvsMappingAPITest.java | 418 ++++++++---------- .../provider/util/HopOvsdbBridgePairTest.java | 57 +-- 6 files changed, 627 insertions(+), 742 deletions(-) diff --git a/sfc-ovs/pom.xml b/sfc-ovs/pom.xml index c294d1e84..103f14aaf 100755 --- a/sfc-ovs/pom.xml +++ b/sfc-ovs/pom.xml @@ -247,6 +247,19 @@ ${powermock.version} test + + org.opendaylight.controller + sal-binding-broker-impl + ${mdsal.version} + test + + + org.opendaylight.controller + sal-binding-broker-impl + ${mdsal.version} + test-jar + test + diff --git a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsRpcTest.java b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsRpcTest.java index 7a4a1742f..b4277442f 100644 --- a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsRpcTest.java +++ b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsRpcTest.java @@ -1,12 +1,9 @@ package org.opendaylight.sfc.sfc_ovs.provider; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mockito; import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.sfc.provider.OpendaylightSfc; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.CreateOvsBridgeInputBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.CreateOvsBridgeOutput; @@ -14,23 +11,17 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import static junit.framework.TestCase.*; + /** * @author Vladimir Lavor * @version 0.1 @@ -44,11 +35,11 @@ import java.util.concurrent.Future; public class SfcOvsRpcTest { private static final String ipAddressString = "170.0.0.1"; - private static final String testString = "testName"; + private static final String testName = "testName"; private static final Integer portNumber = 8080; private CreateOvsBridgeInputBuilder createOvsBridgeInputBuilder; private Future> futureResult; - private IpAddress ipAddress; + private NodeBuilder nodeBuilder; private OvsNodeBuilder ovsNodeBuilder; private SfcOvsRpc sfcOvsRpcObject; @@ -56,147 +47,107 @@ public class SfcOvsRpcTest { public void init() { DataBroker dataBroker = null; OpendaylightSfc opendaylightSfc = new OpendaylightSfc(); + //noinspection ConstantConditions opendaylightSfc.setDataProvider(dataBroker); } @Test - public void createOvsBridgeTestWhereInputIsNull() { - sfcOvsRpcObject = new SfcOvsRpc(); - - //OvsBridgeInput is null - try { - sfcOvsRpcObject.createOvsBridge(null); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void createOvsBridgeTestWhereOvsNodeIsNull() { - createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); - sfcOvsRpcObject = new SfcOvsRpc(); - - //OvsNode is null - try { - sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void createOvsBridgeTestWhereIpAndPortAreNull() throws Exception { + public void testCreateOvsBridgeNullNode() throws Exception { createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); ovsNodeBuilder = new OvsNodeBuilder(); sfcOvsRpcObject = new SfcOvsRpc(); + //create "empty" node + nodeBuilder = new NodeBuilder(); + + //set node ip + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))); createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()); - //Ip & Port are null futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - Assert.assertEquals(futureResult.get().isSuccessful(), false); + assertNotNull("Must not be null", futureResult); + assertNull("Result must be null", futureResult.get().getResult()); + assertFalse("Must be false", futureResult.get().isSuccessful()); } @Test - public void createOvsBridgeTestWherePortAndIdAreNull() throws Exception { + public void testCreateOvsBridgeNullNodeId() throws Exception { createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); ovsNodeBuilder = new OvsNodeBuilder(); sfcOvsRpcObject = new SfcOvsRpc(); - ipAddress = new IpAddress(new Ipv4Address(ipAddressString)); - ovsNodeBuilder.setIp(ipAddress); - createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()); - createOvsBridgeInputBuilder.setName(testString); + //create "empty" node + nodeBuilder = new NodeBuilder(); + nodeBuilder.setNodeId(new NodeId("NodeId")); + + //set node ip + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))); + createOvsBridgeInputBuilder.setName(testName) + .setOvsNode(ovsNodeBuilder.build()); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(Callable.class), Mockito.any(ExecutorService.class))).thenReturn(nullId()); + //set node ip + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))); + createOvsBridgeInputBuilder.setName(testName) + .setOvsNode(ovsNodeBuilder.build()); + + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "getManagerNodeByIp")).toReturn(nodeBuilder.build()); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(false); futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - //Port is null & nodeID is null - Assert.assertEquals(futureResult.get().isSuccessful(), false); + assertNotNull("Must not be null", futureResult); + assertNull("Result must be null", futureResult.get().getResult()); + assertFalse("Must be false", futureResult.get().isSuccessful()); } @Test - public void createOvsBridgeTestWherePortIsNull() throws Exception { + public void testCreateOvsBridgeFalseResult() throws Exception { createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); ovsNodeBuilder = new OvsNodeBuilder(); sfcOvsRpcObject = new SfcOvsRpc(); - ipAddress = new IpAddress(new Ipv4Address(ipAddressString)); - ovsNodeBuilder.setIp(ipAddress); - createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()); - createOvsBridgeInputBuilder.setName(testString); - - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(Callable.class), Mockito.any(ExecutorService.class))).thenReturn(buildNodeId()); + //set node ip + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))) + .setPort(new PortNumber(portNumber)); + createOvsBridgeInputBuilder.setName(testName) + .setOvsNode(ovsNodeBuilder.build()); - //Port is null - try { - futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - } catch (Exception exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))) + .setPort(new PortNumber(portNumber)); + createOvsBridgeInputBuilder.setName(testName) + .setOvsNode(ovsNodeBuilder.build()); - @Test - public void createOvsBridgeUnsuccessfulTest() throws Exception { - createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); - ovsNodeBuilder = new OvsNodeBuilder(); - sfcOvsRpcObject = new SfcOvsRpc(); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(false); - ipAddress = new IpAddress(new Ipv4Address(ipAddressString)); - ovsNodeBuilder.setIp(ipAddress); - ovsNodeBuilder.setPort(new PortNumber(portNumber)); - createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()); - createOvsBridgeInputBuilder.setName(testString); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.buildOvsdbNodeIID(Mockito.any(NodeId.class))).thenReturn(buildInstanceIdentifierNode()); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(Callable.class), Mockito.any(ExecutorService.class))).thenReturn(false); futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - //Unsuccessful test - Assert.assertEquals(futureResult.get().isSuccessful(), false); + assertNotNull("Must not be null", futureResult); + assertNull("Result must be null", futureResult.get().getResult()); + assertFalse("Must be false", futureResult.get().isSuccessful()); } @Test - public void createOvsBridgeSuccessfulTest() throws Exception { + public void testCreateOvsBridgeTrueResult() throws Exception { createOvsBridgeInputBuilder = new CreateOvsBridgeInputBuilder(); ovsNodeBuilder = new OvsNodeBuilder(); sfcOvsRpcObject = new SfcOvsRpc(); - ipAddress = new IpAddress(new Ipv4Address(ipAddressString)); - ovsNodeBuilder.setIp(ipAddress); - ovsNodeBuilder.setPort(new PortNumber(portNumber)); - createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()); - createOvsBridgeInputBuilder.setName(testString); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.buildOvsdbNodeIID(Mockito.any(NodeId.class))).thenReturn(buildInstanceIdentifierNode()); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(Callable.class), Mockito.any(ExecutorService.class))).thenReturn(true); - futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); + //set node ip & port + ovsNodeBuilder.setIp(new IpAddress(new Ipv4Address(ipAddressString))) + .setPort(new PortNumber(portNumber)); + createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()) + .setName(testName); - //Successful test - Assert.assertEquals(futureResult.get().isSuccessful(), true); - } + createOvsBridgeInputBuilder.setOvsNode(ovsNodeBuilder.build()) + .setName(testName); - private Node buildNodeId() { - NodeBuilder nodeBuilder = new NodeBuilder(); - nodeBuilder.setNodeId(new NodeId("1111")); - return nodeBuilder.build(); - } + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(true); - private Node nullId() { - NodeBuilder nodeBuilder = new NodeBuilder(); - nodeBuilder.setNodeId(null); - return nodeBuilder.build(); - } + futureResult = sfcOvsRpcObject.createOvsBridge(createOvsBridgeInputBuilder.build()); - private InstanceIdentifier buildInstanceIdentifierNode() { - NodeId nodeId = null; - return InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(Node.class, new NodeKey(nodeId)); + assertNotNull("Must not be null", futureResult); + assertTrue("Result must be null", futureResult.get().getResult().isResult()); + assertTrue("Must be true", futureResult.get().isSuccessful()); } } \ No newline at end of file diff --git a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsUtilTest.java b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsUtilTest.java index bdbd40c52..e0f2c3e2b 100644 --- a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsUtilTest.java +++ b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/SfcOvsUtilTest.java @@ -1,10 +1,24 @@ package org.opendaylight.sfc.sfc_ovs.provider; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest; import org.opendaylight.ovsdb.southbound.SouthboundConstants; +import org.opendaylight.sfc.provider.OpendaylightSfc; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsLocatorOptionsAugmentation; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.SffOvsLocatorOptionsAugmentationBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.node.OvsNodeBuilder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.options.OvsOptionsBuilder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarderBuilder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarderKey; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocator; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.SffDataPlaneLocatorBuilder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.sff.data.plane.locator.DataPlaneLocatorBuilder; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.VxlanGpe; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.*; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; @@ -15,14 +29,23 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static junit.framework.TestCase.assertEquals; +import static junit.framework.TestCase.assertFalse; +import static junit.framework.TestCase.assertNotNull; +import static junit.framework.TestCase.assertNull; +import static junit.framework.TestCase.assertTrue; + /** * @author Vladimir Lavor * @version 0.1 @@ -33,41 +56,70 @@ import java.util.concurrent.Executors; @RunWith(PowerMockRunner.class) @PrepareForTest(SfcOvsUtil.class) -public class SfcOvsUtilTest { +public class SfcOvsUtilTest extends AbstractDataBrokerTest { + private static final String OVSDB_BRIDGE_PREFIX = "/bridge/"; //copy of private String from SfcOvsUtil.class + private static final String OVSDB_TERMINATION_POINT_PREFIX = "/terminationpoint/"; //copy of private String from SfcOvsUtil.class private static final String ipv4Address = "170.0.0.1"; private static final String ipv6Address = "0000:0000:0000:0000"; private static final String testBridgeName = "Test bridge name"; private static final String testNode = "Test node"; private static final String testString = "Test string"; - private static final String sffName = "sffName test"; private static final String sffDataPlaneLocator = "sffDataPlaneLocator test"; + private final OpendaylightSfc opendaylightSfc = new OpendaylightSfc(); private String testIpAddress = ""; private InstanceIdentifier nodeIID; private InstanceIdentifier bridgeIID; private IpAddress ipAddress; private OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder; - private OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointAugmentationBuilder; private OvsNodeBuilder ovsNodeBuilder; + private boolean result; + private List sffDataPlaneLocatorList; + private ExecutorService executorService; + private SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder; + private DataPlaneLocatorBuilder dataPlaneLocatorBuilder; + private ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder; + private ServiceFunctionForwarder serviceFunctionForwarder; + + + @Before + public void init() throws Exception { + DataBroker dataBroker = getDataBroker(); + opendaylightSfc.setDataProvider(dataBroker); + executorService = opendaylightSfc.getExecutor(); + } + + @Test + public void testCreateObject() { + + //just create an object of class SfcOvsUtil + SfcOvsUtil sfcOvsUtil = new SfcOvsUtil(); + sfcOvsUtil.getClass(); + } @Test - public void submitCallableTest() throws Exception { + public void testSuccessfulSubmitCallable() throws Exception { + + //create test call() method class CallableTest implements Callable { @Override - public Object call() throws Exception { - return null; + public String call() throws Exception { + return testString; } } ExecutorService executorService = Executors.newFixedThreadPool(10); Object object = SfcOvsUtil.submitCallable(new CallableTest(), executorService); - //submitCallable test - Assert.assertEquals(object, null); + + assertNotNull("Must not be null", object); + assertEquals("Must be equal", object, testString); } @Test - public void submitCallableTestException() throws Exception { + public void testUnsuccessfulSubmitCallable() throws Exception { + + //call() method throws exception class CallableTest implements Callable { @Override @@ -79,254 +131,292 @@ public class SfcOvsUtilTest { ExecutorService executorService = Executors.newFixedThreadPool(10); Object object = SfcOvsUtil.submitCallable(new CallableTest(), executorService); - //submitCallable test - Assert.assertEquals(object, null); - } - @Test - public void SfcOvsUtilTestObject() { - SfcOvsUtil sfcOvsUtil = new SfcOvsUtil(); - sfcOvsUtil.getClass(); + assertNull("Must be null", object); } @Test - public void buildOvsdbTopologyIIDTest() { + public void testBuildOvsdbTopologyIID() { InstanceIdentifier instanceIdentifierList = SfcOvsUtil.buildOvsdbTopologyIID(); - //Build InstanceIdentifier - Assert.assertEquals(instanceIdentifierList.getTargetType().getName(), Topology.class.getName()); + assertEquals("Must be equal", instanceIdentifierList.getTargetType().getName(), Topology.class.getName()); } @Test - public void getManagedByNodeIdTestWhereBridgeIsNull() throws Exception { - //OvsdBridge is null - try { - Whitebox.invokeMethod(SfcOvsUtil.class, "getManagedByNodeId", ovsdbBridgeAugmentationBuilder); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void getManagedByNodeIdTestWhereBridgeNameIsNull() throws Exception { - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsdbBridgeAugmentationBuilder.setBridgeName(null); - - //BridgeName is null - try { - Whitebox.invokeMethod(SfcOvsUtil.class, "getManagedByNodeId", ovsdbBridgeAugmentationBuilder.build()); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void getManagedByNodeIdTestWhereManagedByIsNull() throws Exception { + public void testGetManagedByNodeId() throws Exception { + ovsNodeBuilder = new OvsNodeBuilder(); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - - //ManagedBy is null - try { - Whitebox.invokeMethod(SfcOvsUtil.class, "getManagedByNodeId", ovsdbBridgeAugmentationBuilder.build()); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void getManagedByNodeIdTest() throws Exception { + //create nodeIID nodeIID = InstanceIdentifier .create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId(testNode))); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsNodeBuilder = new OvsNodeBuilder(); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)); ovsNodeBuilder.setNodeId(new OvsdbNodeRef(nodeIID)); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(nodeIID)); - Whitebox.invokeMethod(SfcOvsUtil.class, "getManagedByNodeId", ovsdbBridgeAugmentationBuilder.build()); + ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)) + .setManagedBy(new OvsdbNodeRef(nodeIID)); - //NodeID test - Assert.assertEquals(InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testNode); + NodeId nodeId = Whitebox.invokeMethod(SfcOvsUtil.class, "getManagedByNodeId", ovsdbBridgeAugmentationBuilder.build()); + + assertNotNull("Must not be null", nodeId); + assertFalse("Must be false", nodeId.getValue().isEmpty()); + assertEquals("Must be equal", nodeId.getValue(), testNode + OVSDB_BRIDGE_PREFIX + testBridgeName); } @Test - public void buildOvsdbNodeIIDTestWithOvsdbBridgeAugmentationParameter() { + public void testBuildOvsdbNodeIID_OvsdbBridgeAugmentation() { + ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); + ovsNodeBuilder = new OvsNodeBuilder(); + + //create nodeIID nodeIID = InstanceIdentifier .create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId(testNode))); - ovsNodeBuilder = new OvsNodeBuilder(); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); ovsNodeBuilder.setNodeId(new OvsdbNodeRef(nodeIID)); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(nodeIID)); + ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)) + .setManagedBy(new OvsdbNodeRef(nodeIID)); + nodeIID = SfcOvsUtil.buildOvsdbNodeIID(ovsdbBridgeAugmentationBuilder.build()); - //Node + bridgeName test - Assert.assertEquals(InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testNode + "/bridge/" + testBridgeName); + assertNotNull("Must not be null", nodeIID); + assertEquals("Must be equal", InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testNode + OVSDB_BRIDGE_PREFIX + testBridgeName); } @Test - public void buildOvsdbNodeIIDTestWithStringParameter() { + public void testBuildOvsdbNodeIID_String() { nodeIID = SfcOvsUtil.buildOvsdbNodeIID(testString); - //NodeId test - Assert.assertEquals(InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testString); + Assert.assertEquals("Must be equal", InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testString); } @Test - public void buildOvsdbNodeIIDTestWithNodeIDParameter() { + public void testBuildOvsdbNodeIID_NodeID() { NodeBuilder nodeBuilder = new NodeBuilder(); nodeBuilder.setNodeId(NodeId.getDefaultInstance(testNode)); nodeIID = SfcOvsUtil.buildOvsdbNodeIID(nodeBuilder.build().getNodeId()); - //NodeId test - Assert.assertEquals(InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testNode); + Assert.assertEquals("Must be equal", InstanceIdentifier.keyOf(nodeIID).getNodeId().getValue(), testNode); } @Test - public void buildOvsdbBridgeIIDTestWithOvsdbBridgeAugmentationParameter() { + public void testBuildOvsdbBridgeIID_OvsdbBridgeAugmentation() { + ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); + ovsNodeBuilder = new OvsNodeBuilder(); + + //create bridgeIID bridgeIID = InstanceIdentifier .create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId(testNode))) .augmentation(OvsdbBridgeAugmentation.class); - ovsNodeBuilder = new OvsNodeBuilder(); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); ovsNodeBuilder.setNodeId(new OvsdbNodeRef(bridgeIID)); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(bridgeIID)); + ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)) + .setManagedBy(new OvsdbNodeRef(bridgeIID)); + bridgeIID = SfcOvsUtil.buildOvsdbBridgeIID(ovsdbBridgeAugmentationBuilder.build()); - //OvsdbBridgeAugmentationTest - Assert.assertEquals(bridgeIID.getTargetType(), OvsdbBridgeAugmentation.class); + assertNotNull("Must not be null", bridgeIID); + assertEquals("Must be equal", bridgeIID.getTargetType(), OvsdbBridgeAugmentation.class); + assertEquals("Must be equal", InstanceIdentifier.keyOf(bridgeIID.firstIdentifierOf(Node.class)).getNodeId().getValue(), + testNode + OVSDB_BRIDGE_PREFIX + testBridgeName); } @Test - public void buildOvsdbBridgeIIDTestWithStringParameter() { + public void testBuildOvsdbBridgeIID_String() { bridgeIID = SfcOvsUtil.buildOvsdbBridgeIID(testString); - //OvsdbBridgeAugmentationTest - Assert.assertEquals(bridgeIID.getTargetType(), OvsdbBridgeAugmentation.class); - } - - @Test - public void buildOvsdbTerminationPointAugmentationIIDTestWhereOvsdbTerminationPointAugmentationIsNull() { - //OvsdbTerminationPointAugmentationIsNull - try { - SfcOvsUtil.buildOvsdbTerminationPointAugmentationIID(null, null); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void buildOvsdbTerminationPointAugmentationIIDTestWhereTerminationPointNameIsNull() { - - //TerminationPoint is null - try { - SfcOvsUtil.buildOvsdbTerminationPointAugmentationIID(null, ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + assertNotNull("Must not be null", bridgeIID); + assertEquals("Must be equal", InstanceIdentifier.keyOf(bridgeIID.firstIdentifierOf(Node.class)).getNodeId().getValue(), testString); } @Test - public void buildOvsdbTerminationPointAugmentationIIDTestWhereOvsdbBridgeIsNull() { - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - ovsdbTerminationPointAugmentationBuilder.setName(testString); - - //OvsdbBridge is null - try { - SfcOvsUtil.buildOvsdbTerminationPointAugmentationIID(null, ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } + public void testBuildOvsdbTerminationPointAugmentationIID() { + OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); + ovsNodeBuilder = new OvsNodeBuilder(); + ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - @Test - public void buildOvsdbTerminationPointAugmentationIIDTest() { bridgeIID = InstanceIdentifier .create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology.class) .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) .child(Node.class, new NodeKey(new NodeId(testNode))) .augmentation(OvsdbBridgeAugmentation.class); - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - ovsdbTerminationPointAugmentationBuilder.setName(testString); - ovsNodeBuilder = new OvsNodeBuilder(); ovsNodeBuilder.setNodeId(new OvsdbNodeRef(bridgeIID)); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)); - ovsdbBridgeAugmentationBuilder.setManagedBy(new OvsdbNodeRef(bridgeIID)); - InstanceIdentifier terminationPointAugmentationIID = SfcOvsUtil.buildOvsdbTerminationPointAugmentationIID(ovsdbBridgeAugmentationBuilder.build(), ovsdbTerminationPointAugmentationBuilder.build()); - //buildOvsdbTerminationPointAugmentationIID test - Assert.assertEquals(terminationPointAugmentationIID.getTargetType(), OvsdbTerminationPointAugmentation.class); - } + //first parameter + ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testBridgeName)) + .setManagedBy(new OvsdbNodeRef(bridgeIID)); - @Test - public void buildOvsdbTerminationPointIIDTest() { - InstanceIdentifier terminationPointIID = SfcOvsUtil.buildOvsdbTerminationPointIID(sffName, "sffDataPlaneLocator test"); + //second parameter + ovsdbTerminationPointAugmentationBuilder.setName(testString); + + InstanceIdentifier terminationPointAugmentationIID = + SfcOvsUtil.buildOvsdbTerminationPointAugmentationIID(ovsdbBridgeAugmentationBuilder.build(), ovsdbTerminationPointAugmentationBuilder.build()); - //buildOvsdbTerminationPointIID test - Assert.assertEquals(InstanceIdentifier.keyOf(terminationPointIID).getTpId().getValue(), sffName + "/terminationpoint/" + sffDataPlaneLocator); + assertNotNull("Must not be null", terminationPointAugmentationIID); + assertEquals("Must be equal", terminationPointAugmentationIID.getTargetType(), OvsdbTerminationPointAugmentation.class); + assertEquals("Must be equal", InstanceIdentifier.keyOf(terminationPointAugmentationIID.firstIdentifierOf(Node.class)).getNodeId().getValue(), + testNode + OVSDB_BRIDGE_PREFIX + testBridgeName); + assertEquals("Must be equal", InstanceIdentifier.keyOf(terminationPointAugmentationIID.firstIdentifierOf(TerminationPoint.class)).getTpId().getValue(), + testNode + OVSDB_BRIDGE_PREFIX + testBridgeName + OVSDB_TERMINATION_POINT_PREFIX + testString); } @Test - public void convertStringToIpAddressTestIncorrectString() { - ipAddress = SfcOvsUtil.convertStringToIpAddress(""); + public void testBuildOvsdbTerminationPointIID_Strings() { + InstanceIdentifier terminationPointIID = SfcOvsUtil.buildOvsdbTerminationPointIID(testString, sffDataPlaneLocator); - //Empty String - Assert.assertEquals(ipAddress, null); + Assert.assertEquals(InstanceIdentifier.keyOf(terminationPointIID).getTpId().getValue(), testString + OVSDB_TERMINATION_POINT_PREFIX + sffDataPlaneLocator); } @Test - public void convertStringToIpAddressTests() { + public void testConvertStringToIpAddress() throws Exception { //Incorrect Ip address format ipAddress = SfcOvsUtil.convertStringToIpAddress(testIpAddress); - Assert.assertEquals(ipAddress, null); + assertNull("Must be null", ipAddress); - //Ip v4 test + //Ip v4 ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv4Address); - Assert.assertEquals(ipAddress.getIpv4Address().getValue(), ipv4Address); + assert ipAddress != null; + assertEquals("Must be equal", ipAddress.getIpv4Address().getValue(), ipv4Address); - //Ip v6 test + //Ip v6 ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv6Address); - Assert.assertEquals(ipAddress.getIpv6Address().getValue(), ipv6Address); + assert ipAddress != null; + assertEquals("Must be equal", ipAddress.getIpv6Address().getValue(), ipv6Address); } @Test - public void convertIpAddressToStringTestIncorrectIpAddress() { + public void testConvertIpAddressToString() { + //create Ip v4 address ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv4Address); + testIpAddress = SfcOvsUtil.convertIpAddressToString(ipAddress); - //Ip v4 test - Assert.assertEquals(testIpAddress, ipAddress.getIpv4Address().getValue()); + //Ip v4 + Assert.assertEquals("Must be equal", testIpAddress, ipAddress.getIpv4Address().getValue()); + //create Ip v6 address ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv6Address); + testIpAddress = SfcOvsUtil.convertIpAddressToString(ipAddress); - //Ip v6 test - Assert.assertEquals(testIpAddress, ipAddress.getIpv6Address().getValue()); + //Ip v6 + Assert.assertEquals("Must be equal", testIpAddress, ipAddress.getIpv6Address().getValue()); } @Test - public void convertIpAddressToStringTests() { - ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv4Address); - testIpAddress = SfcOvsUtil.convertIpAddressToString(ipAddress); + public void putAndDeleteOvsdbNode() { + nodeIID = createNodeIID(); - //Ip v4 test - Assert.assertEquals(testIpAddress, ipAddress.getIpv4Address().getValue()); + result = SfcOvsUtil.putOvsdbBridge(createBridgeAugmentation(nodeIID), executorService); - ipAddress = SfcOvsUtil.convertStringToIpAddress(ipv6Address); - testIpAddress = SfcOvsUtil.convertIpAddressToString(ipAddress); + assertNotNull("Must be not null", result); + assertTrue("Must be true", result); + + result = SfcOvsUtil.deleteOvsdbNode(nodeIID, executorService); + + assertNotNull("Must be not null", result); + assertTrue("Must be true", result); + } + + @Test + public void putAndDeleteOvsdbTerminationPoint() { + dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); + nodeIID = createNodeIID(); + OvsOptionsBuilder ovsOptionsBuilder = new OvsOptionsBuilder(); + sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); + sffDataPlaneLocatorList = new ArrayList<>(); + SffOvsLocatorOptionsAugmentationBuilder sffOvsLocatorOptionsAugmentationBuilder = new SffOvsLocatorOptionsAugmentationBuilder(); + + //set transport + dataPlaneLocatorBuilder.setTransport(VxlanGpe.class); + + //create ovs options + ovsOptionsBuilder.setLocalIp(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setLocalIp(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setDstPort(SfcOvsUtil.OVSDB_OPTION_DST_PORT) + .setNsp(SfcOvsUtil.OVSDB_OPTION_NSP) + .setNsi(SfcOvsUtil.OVSDB_OPTION_NSI) + .setKey(SfcOvsUtil.OVSDB_OPTION_KEY); + + //set options + sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(ovsOptionsBuilder.build()); + + //set name, dpl and augmentation + sffDataPlaneLocatorBuilder.setName("Dpl") + .setDataPlaneLocator(dataPlaneLocatorBuilder.build()) + .addAugmentation(SffOvsLocatorOptionsAugmentation.class, sffOvsLocatorOptionsAugmentationBuilder.build()); + + sffDataPlaneLocatorList.add(sffDataPlaneLocatorBuilder.build()); + + result = SfcOvsUtil.putOvsdbTerminationPoints(createBridgeAugmentation(nodeIID), sffDataPlaneLocatorList, executorService); + + assertNotNull("Must not be null", result); + assertTrue("Must be true", result); + + String sffName = testNode + OVSDB_BRIDGE_PREFIX + testBridgeName; + result = SfcOvsUtil.deleteOvsdbTerminationPoint(SfcOvsUtil.buildOvsdbTerminationPointIID(sffName, "Dpl"), executorService); + + assertNotNull("Must not be null", result); + assertTrue("Must be true", result); + } + + @Test + public void testAugmentSffWithOpenFlowNodeId_nullNodeId() { + serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); + serviceFunctionForwarderBuilder.setName(testString); + + serviceFunctionForwarder = SfcOvsUtil.augmentSffWithOpenFlowNodeId(serviceFunctionForwarderBuilder.build()); + + assertNotNull("Must not be null", serviceFunctionForwarder); + assertEquals("Must be equal", serviceFunctionForwarder.getName(), testString); + } + + @Test + public void testAugmentSffWithOpenFlowNodeId() { + dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); + sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); + sffDataPlaneLocatorList = new ArrayList<>(); + serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); + + //set dpl + dataPlaneLocatorBuilder.setTransport(VxlanGpe.class); + sffDataPlaneLocatorBuilder.setDataPlaneLocator(dataPlaneLocatorBuilder.build()); + sffDataPlaneLocatorList.add(sffDataPlaneLocatorBuilder.build()); + + serviceFunctionForwarderBuilder.setName(testString) + .setKey(new ServiceFunctionForwarderKey("Key")) + .setSffDataPlaneLocator(sffDataPlaneLocatorList); + + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "getOpenFlowNodeIdForSff")).toReturn("NodeId"); + + serviceFunctionForwarder = SfcOvsUtil.augmentSffWithOpenFlowNodeId(serviceFunctionForwarderBuilder.build()); + + assertNotNull("Must not be null", serviceFunctionForwarder); + assertEquals("Must be equal", serviceFunctionForwarder.getKey().getName(), "Key"); + assertEquals("Must be equal", + serviceFunctionForwarder.getSffDataPlaneLocator().get(0).getDataPlaneLocator().getTransport().getName(), + VxlanGpe.class.getName()); + } + + private InstanceIdentifier createNodeIID() { + nodeIID = InstanceIdentifier + .create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology.class) + .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) + .child(Node.class, new NodeKey(new NodeId(testNode))); + + return nodeIID; + } + + private OvsdbBridgeAugmentation createBridgeAugmentation(InstanceIdentifier IID) { + ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); + ovsdbBridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName(testBridgeName)) + .setManagedBy(new OvsdbNodeRef(IID)); - //Ip v6 test - Assert.assertEquals(testIpAddress, ipAddress.getIpv6Address().getValue()); + return ovsdbBridgeAugmentationBuilder.build(); } -} \ No newline at end of file +} diff --git a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcOvsToSffMappingAPITest.java b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcOvsToSffMappingAPITest.java index 0e7aa3aa1..37b3665b8 100644 --- a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcOvsToSffMappingAPITest.java +++ b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcOvsToSffMappingAPITest.java @@ -1,6 +1,5 @@ package org.opendaylight.sfc.sfc_ovs.provider.api; -import org.junit.Assert; import org.junit.Test; import org.opendaylight.sfc.sfc_ovs.provider.SfcOvsUtil; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.options.OvsOptions; @@ -10,7 +9,6 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev1407 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.service.function.forwarder.sff.data.plane.locator.DataPlaneLocatorBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.Other; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.VxlanGpe; -import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.data.plane.locator.LocatorType; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.data.plane.locator.locator.type.IpBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.*; @@ -18,6 +16,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigsBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.OptionsKey; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint; @@ -25,8 +24,14 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.powermock.reflect.Whitebox; import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.Assert.assertNull; +import static junit.framework.TestCase.assertEquals; + + /** * @author Vladimir Lavor * @version 0.1 @@ -37,8 +42,10 @@ import java.util.List; public class SfcOvsToSffMappingAPITest { private static final String OVSDB_OPTION_LOCAL_IP = "172.0.0.0"; + private static final String OVSDB_OPTION_REMOTE_IP = "172.0.0.1"; private static final String testName = "Test name"; private static final String nodeId = "Node ID test"; + private static final String dataPathId = "00:00:00:00:00:00:00:00"; private BridgeOtherConfigsBuilder bridgeOtherConfigsBuilder; private IpAddress ipAddress; private List options; @@ -47,215 +54,123 @@ public class SfcOvsToSffMappingAPITest { private OptionsBuilder optionsBuilder; private OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder; private OvsdbTerminationPointAugmentationBuilder ovsdbTerminationPointAugmentationBuilder; + private ServiceFunctionForwarder serviceFunctionForwarder; @Test - public void createSfcOvsToSffMappingAPITest() { + public void testCreateSfcOvsToSffMappingAPIObject() { SfcOvsToSffMappingAPI sfcOvsToSffMappingAPI = new SfcOvsToSffMappingAPI(); sfcOvsToSffMappingAPI.getClass(); } @Test - public void buildServiceFunctionForwarderFromNodeWhereNodeIsNull() { + public void testBuildServiceFunctionForwarderFromNode_nullOvsdba() throws Exception { nodeBuilder = new NodeBuilder(); - nodeBuilder = null; - - //Node is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildServiceFunctionForwarderFromNode", nodeBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - @Test - public void buildServiceFunctionForwarderFromNodeWhereAugmentationIsNull() { - nodeBuilder = new NodeBuilder(); - nodeBuilder.addAugmentation(OvsdbBridgeAugmentation.class, null); - - //OvsdbBridgeAugmentation is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildServiceFunctionForwarderFromNode", nodeBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + serviceFunctionForwarder = SfcOvsToSffMappingAPI.buildServiceFunctionForwarderFromNode(nodeBuilder.build()); + + assertNull("Must be not null", serviceFunctionForwarder); } @Test - public void buildServiceFunctionForwarderFromNodeTest() throws Exception { + public void testBuildServiceFunctionForwarderFromNode() throws Exception { OvsdbBridgeName ovsdbBridgeName; - ServiceFunctionForwarder serviceFunctionForwarder; + TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder(); + options = new ArrayList<>(); + optionsBuilder = new OptionsBuilder(); + terminationPointList = new ArrayList<>(); + ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); nodeBuilder = new NodeBuilder(); - ovsdbBridgeName = new OvsdbBridgeName(testName); - ovsdbBridgeAugmentationBuilder.setBridgeName(ovsdbBridgeName); - ovsdbBridgeAugmentationBuilder.setDatapathId(new DatapathId("00:00:00:00:00:00:00:00")); - nodeBuilder.setNodeId(new NodeId(nodeId)); - nodeBuilder.addAugmentation(OvsdbBridgeAugmentation.class, ovsdbBridgeAugmentationBuilder.build()); - - //buildServiceFunctionForwarderFromNode test - serviceFunctionForwarder = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildServiceFunctionForwarderFromNode", nodeBuilder.build()); + //set options + optionsBuilder.setKey(new OptionsKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP)) + .setValue(OVSDB_OPTION_LOCAL_IP); + options.add(optionsBuilder.build()); - Assert.assertEquals(serviceFunctionForwarder.getName(), nodeId); - } + ovsdbTerminationPointAugmentationBuilder.setName(testName) + .setOptions(options); - @Test - public void buildSffDataPlaneLocatorListWhereOvsdbBridgeIsNull() throws Exception { - terminationPointList = new ArrayList<>(); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsdbBridgeAugmentationBuilder = null; - - //OvsdbBridge is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildSffDataPlaneLocatorList", ovsdbBridgeAugmentationBuilder.build(), terminationPointList); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } + terminationPointBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, ovsdbTerminationPointAugmentationBuilder.build()); + terminationPointList.add(terminationPointBuilder.build()); - @Test - public void buildSffDataPlaneLocatorListWhereTerminationPointIsNull() throws Exception { - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - terminationPointList = new ArrayList<>(); + ovsdbBridgeName = new OvsdbBridgeName(testName); + ovsdbBridgeAugmentationBuilder.setBridgeName(ovsdbBridgeName) + .setDatapathId(new DatapathId(dataPathId)); + nodeBuilder.setNodeId(new NodeId(nodeId)) + .setTerminationPoint(terminationPointList) + .addAugmentation(OvsdbBridgeAugmentation.class, ovsdbBridgeAugmentationBuilder.build()); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testName)); - ovsdbBridgeAugmentationBuilder.setBridgeUuid(ovsdbBridgeAugmentationBuilder.getBridgeUuid()); - terminationPointList = null; + serviceFunctionForwarder = SfcOvsToSffMappingAPI.buildServiceFunctionForwarderFromNode(nodeBuilder.build()); - //TerminationPoint is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildSffDataPlaneLocatorList", ovsdbBridgeAugmentationBuilder.build(), terminationPointList); - } catch (NullPointerException exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + assertNotNull("Must be not null", serviceFunctionForwarder); + assertEquals("Must be equal", serviceFunctionForwarder.getName(), nodeId); } @Test - public void buildSffDataPlaneLocatorListTest() throws Exception { + public void testBuildSffDataPlaneLocatorList() throws Exception { List sffDataPlaneLocatorList; + terminationPointList = new ArrayList<>(); + ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder(); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - terminationPointList = new ArrayList<>(); - ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testName)); - ovsdbBridgeAugmentationBuilder.setBridgeUuid(ovsdbBridgeAugmentationBuilder.getBridgeUuid()); - ovsdbBridgeAugmentationBuilder.setDatapathId(new DatapathId("00:00:00:00:00:00:00:00")); + //empty list + sffDataPlaneLocatorList = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildSffDataPlaneLocatorList", ovsdbBridgeAugmentationBuilder.build(), null); + + assertEquals("Must be equal", sffDataPlaneLocatorList, Collections.emptyList()); + + ovsdbBridgeAugmentationBuilder.setBridgeName(OvsdbBridgeName.getDefaultInstance(testName)) + .setBridgeUuid(ovsdbBridgeAugmentationBuilder.getBridgeUuid()) + .setDatapathId(new DatapathId(dataPathId)); ovsdbTerminationPointAugmentationBuilder.setName(testName); terminationPointBuilder.addAugmentation(OvsdbTerminationPointAugmentation.class, ovsdbTerminationPointAugmentationBuilder.build()); terminationPointList.add(terminationPointBuilder.build()); - //buildSffDataPlaneLocatorList test sffDataPlaneLocatorList = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildSffDataPlaneLocatorList", ovsdbBridgeAugmentationBuilder.build(), terminationPointList); - Assert.assertEquals(sffDataPlaneLocatorList.get(0).getName(), testName); - } - - @Test - public void buildDataPlaneLocatorFromTerminationPointWhereTPIsNull() { - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - ovsdbTerminationPointAugmentationBuilder = null; - - //TerminationPoint is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildDataPlaneLocatorFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void buildDataPlaneLocatorFromTerminationPointWhereOptionIsNull() { - options = new ArrayList<>(); - optionsBuilder = new OptionsBuilder(); - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); - optionsBuilder.setValue(null); - options.add(optionsBuilder.build()); - ovsdbTerminationPointAugmentationBuilder.setOptions(options); - - //Option ""local ip" has no value - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildDataPlaneLocatorFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + assertEquals("Must be equal", sffDataPlaneLocatorList.get(0).getName(), testName); } @Test - public void buildDataPlaneLocatorFromTerminationPointTest() throws Exception { + public void testBuildDataPlaneLocatorFromTerminationPoint() throws Exception { Class transportType; DataPlaneLocator dataPlaneLocator; DataPlaneLocatorBuilder dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); IpAddress ipAddress = SfcOvsUtil.convertStringToIpAddress(OVSDB_OPTION_LOCAL_IP); IpBuilder ipBuilder = new IpBuilder(); - LocatorType locatorType; options = new ArrayList<>(); optionsBuilder = new OptionsBuilder(); ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); ipBuilder.setIp(ipAddress); dataPlaneLocatorBuilder.setLocatorType(ipBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); - optionsBuilder.setValue(OVSDB_OPTION_LOCAL_IP); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setValue(OVSDB_OPTION_LOCAL_IP); options.add(optionsBuilder.build()); - ovsdbTerminationPointAugmentationBuilder.setInterfaceType(InterfaceTypeVxlan.class); - ovsdbTerminationPointAugmentationBuilder.setOptions(options); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_REMOTE_IP) + .setValue(OVSDB_OPTION_REMOTE_IP); + options.add(optionsBuilder.build()); + ovsdbTerminationPointAugmentationBuilder.setInterfaceType(InterfaceTypeVxlan.class) + .setOptions(options); dataPlaneLocator = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildDataPlaneLocatorFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); - locatorType = dataPlaneLocator.getLocatorType(); - transportType = dataPlaneLocator.getTransport(); - //LocatorType test - Assert.assertEquals(dataPlaneLocatorBuilder.getLocatorType(), locatorType); //Correct transportType - Assert.assertEquals(VxlanGpe.class, transportType); + assertEquals("Must be equal", dataPlaneLocator.getTransport(), VxlanGpe.class); - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - ovsdbTerminationPointAugmentationBuilder.setInterfaceType(InterfaceTypePatch.class); - ovsdbTerminationPointAugmentationBuilder.setOptions(options); + ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder() + .setInterfaceType(InterfaceTypePatch.class) + .setOptions(options); dataPlaneLocator = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildDataPlaneLocatorFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); transportType = dataPlaneLocator.getTransport(); - //TransportType - second option - Assert.assertEquals(Other.class, transportType); - } - - @Test - public void buildOvsOptionsFromTerminationPointWhereTerminationPointIsNull() { - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - ovsdbTerminationPointAugmentationBuilder = null; - - //TerminationPoint is null - try { - org.powermock.reflect.Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildOvsOptionsFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void buildOvsOptionsFromTerminationPointWhereListIsNull() { - options = new ArrayList<>(); - optionsBuilder = new OptionsBuilder(); - ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); - optionsBuilder.setOption(null); - optionsBuilder.setValue(null); - options.add(optionsBuilder.build()); - ovsdbTerminationPointAugmentationBuilder.setOptions(options); - - //Options list is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildOvsOptionsFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + //TransportType - second option + assertEquals("Must be equal", Other.class, transportType); } @Test - public void buildOvsOptionsFromTerminationPointTest() throws Exception { - final String OVSDB_OPTION_REMOTE_IP = "172.0.0.1"; + public void testBuildOvsOptionsFromTerminationPoint() throws Exception { final String OVSDB_OPTION_DST_PORT = "8080"; final String OVSDB_OPTION_KEY_VALUE = "Key test value"; final String OVSDB_OPTION_NSP_VALUE = "Nsp test value"; @@ -264,97 +179,60 @@ public class SfcOvsToSffMappingAPITest { options = new ArrayList<>(); optionsBuilder = new OptionsBuilder(); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); - optionsBuilder.setValue(OVSDB_OPTION_LOCAL_IP); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setValue(OVSDB_OPTION_LOCAL_IP); options.add(optionsBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_REMOTE_IP); - optionsBuilder.setValue(OVSDB_OPTION_REMOTE_IP); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_REMOTE_IP) + .setValue(OVSDB_OPTION_REMOTE_IP); options.add(optionsBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_DST_PORT); - optionsBuilder.setValue(OVSDB_OPTION_DST_PORT); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_DST_PORT) + .setValue(OVSDB_OPTION_DST_PORT); options.add(optionsBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_KEY); - optionsBuilder.setValue(OVSDB_OPTION_KEY_VALUE); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_KEY) + .setValue(OVSDB_OPTION_KEY_VALUE); options.add(optionsBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_NSP); - optionsBuilder.setValue(OVSDB_OPTION_NSP_VALUE); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_NSP) + .setValue(OVSDB_OPTION_NSP_VALUE); options.add(optionsBuilder.build()); - optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_NSI); - optionsBuilder.setValue(OVSDB_OPTION_NSI_VALUE); + optionsBuilder.setOption(SfcOvsUtil.OVSDB_OPTION_NSI) + .setValue(OVSDB_OPTION_NSI_VALUE); options.add(optionsBuilder.build()); ovsdbTerminationPointAugmentationBuilder = new OvsdbTerminationPointAugmentationBuilder(); ovsdbTerminationPointAugmentationBuilder.setOptions(options); - ovsOptions = org.powermock.reflect.Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildOvsOptionsFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); + ovsOptions = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "buildOvsOptionsFromTerminationPoint", ovsdbTerminationPointAugmentationBuilder.build()); String localAddress = ovsOptions.getLocalIp(); String remoteAddress = ovsOptions.getRemoteIp(); //Option list test - Assert.assertEquals(OVSDB_OPTION_LOCAL_IP, localAddress); - Assert.assertEquals(OVSDB_OPTION_REMOTE_IP, remoteAddress); - Assert.assertEquals(OVSDB_OPTION_DST_PORT, ovsOptions.getDstPort()); - Assert.assertEquals(OVSDB_OPTION_KEY_VALUE, ovsOptions.getKey()); - Assert.assertEquals(OVSDB_OPTION_NSP_VALUE, ovsOptions.getNsp()); - Assert.assertEquals(OVSDB_OPTION_NSI_VALUE, ovsOptions.getNsi()); + assertEquals("Must be equal", OVSDB_OPTION_LOCAL_IP, localAddress); + assertEquals("Must be equal", OVSDB_OPTION_REMOTE_IP, remoteAddress); + assertEquals("Must be equal", OVSDB_OPTION_DST_PORT, ovsOptions.getDstPort()); + assertEquals("Must be equal", OVSDB_OPTION_KEY_VALUE, ovsOptions.getKey()); + assertEquals("Must be equal", OVSDB_OPTION_NSP_VALUE, ovsOptions.getNsp()); + assertEquals("Must be equal", OVSDB_OPTION_NSI_VALUE, ovsOptions.getNsi()); } @Test - public void getServiceForwarderNameFromNodeWhereNodeIsNull() { - //Node is null - try { - SfcOvsToSffMappingAPI.getServiceForwarderNameFromNode(null); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - - @Test - public void getServiceForwarderNameFromNodeTest() { + public void testGetServiceForwarderNameFromNode() { nodeBuilder = new NodeBuilder(); nodeBuilder.setNodeId(new NodeId(nodeId)); String name; name = SfcOvsToSffMappingAPI.getServiceForwarderNameFromNode(nodeBuilder.build()); - //Node name test - Assert.assertEquals(name, nodeId); - } - - @Test - public void getOvsBridgeLocalIpTestWhereOvsdbBridgeIsNull() { - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsdbBridgeAugmentationBuilder = null; - - //ovsdbBridge is null - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "getOvsBridgeLocalIp", ovsdbBridgeAugmentationBuilder); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } - } - - @Test - public void getOvsBridgeLocalIpTestWhereBridgeOtherConfigIsNull() { - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - - //bridgeOtherConfig is empty - try { - Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "getOvsBridgeLocalIp", ovsdbBridgeAugmentationBuilder.build()); - } catch (Throwable exception) { - Assert.assertEquals(NullPointerException.class, exception.getClass()); - } + assertEquals("Must be equal", name, nodeId); } @Test - public void getOvsBridgeLocalIpTestWhereKeyIsNotEqual() throws Exception { + public void testGetOvsBridgeLocalIp1() throws Exception { List bridgeOtherConfigsList = new ArrayList<>(); bridgeOtherConfigsBuilder = new BridgeOtherConfigsBuilder(); bridgeOtherConfigsBuilder.setBridgeOtherConfigKey("Test Key"); @@ -365,11 +243,11 @@ public class SfcOvsToSffMappingAPITest { ipAddress = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "getOvsBridgeLocalIp", ovsdbBridgeAugmentationBuilder.build()); //Key is not equal - Assert.assertEquals(ipAddress, null); + assertNull("Must be null", ipAddress); } @Test - public void getOvsBridgeLocalIpTestWhereKeyIEqual() throws Exception { + public void testGetOvsBridgeLocalIp2() throws Exception { List bridgeOtherConfigsList = new ArrayList<>(); bridgeOtherConfigsBuilder = new BridgeOtherConfigsBuilder(); bridgeOtherConfigsBuilder.setBridgeOtherConfigKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); @@ -378,10 +256,12 @@ public class SfcOvsToSffMappingAPITest { ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); ovsdbBridgeAugmentationBuilder.setBridgeOtherConfigs(bridgeOtherConfigsList); - ipAddress = Whitebox.invokeMethod(SfcOvsToSffMappingAPI.class, "getOvsBridgeLocalIp", ovsdbBridgeAugmentationBuilder.build()); + ipAddress = SfcOvsToSffMappingAPI.getOvsBridgeLocalIp(ovsdbBridgeAugmentationBuilder.build()); //Key is equal - Assert.assertEquals(ipAddress.getIpv4Address().getValue(), OVSDB_OPTION_LOCAL_IP); + assertNotNull("Must not be null", ipAddress); + assertEquals(ipAddress.getIpv4Address().getValue(), OVSDB_OPTION_LOCAL_IP); + } } diff --git a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcSffToOvsMappingAPITest.java b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcSffToOvsMappingAPITest.java index 37267cdb0..f40451918 100644 --- a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcSffToOvsMappingAPITest.java +++ b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/api/SfcSffToOvsMappingAPITest.java @@ -3,10 +3,9 @@ package org.opendaylight.sfc.sfc_ovs.provider.api; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.opendaylight.ovsdb.southbound.SouthboundConstants; +import org.junit.runner.RunWith; import org.opendaylight.sfc.sfc_ovs.provider.SfcOvsUtil; import org.opendaylight.sfc.sfc_ovs.provider.util.HopOvsdbBridgePair; -import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePathBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.rendered.service.path.RenderedServicePathHopBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.ovs.rev140701.*; @@ -20,23 +19,30 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev1407 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.Other; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.VxlanGpe; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.data.plane.locator.locator.type.IpBuilder; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.*; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigs; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.bridge.attributes.BridgeOtherConfigsBuilder; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfoBuilder; import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node; -import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.Assert.assertNull; +import static junit.framework.TestCase.assertEquals; + /** * @author Vladimir Lavor * @version 0.1 @@ -45,6 +51,8 @@ import java.util.concurrent.Executors; * @since 2015-04-22 */ +@RunWith(PowerMockRunner.class) +@PrepareForTest(SfcOvsUtil.class) public class SfcSffToOvsMappingAPITest { private static final String OVSDB_OPTION_LOCAL_IP_VALUE = "172.0.0.0"; private static final String OVSDB_OPTION_REMOTE_IP_VALUE = "172.0.0.1"; @@ -52,17 +60,23 @@ public class SfcSffToOvsMappingAPITest { private static final String OVSDB_OPTION_KEY = "Key"; private static final String OVSDB_OPTION_NSP = "Nsp"; private static final String OVSDB_OPTION_NSI = "Nsi"; + private static final String OVSDB_OPTION_NSHC1 = "Nshc1"; + private static final String OVSDB_OPTION_NSHC2 = "Nshc2"; + private static final String OVSDB_OPTION_NSHC3 = "Nshc3"; + private static final String OVSDB_OPTION_NSHC4 = "Nshc4"; private static final Long pathId = 25L; private static final Short hopNumberFrom = 10, hopNumberTo = 5, serviceIndex = 15; private static final String renderedServicePathName = "Test name"; private static final String ipAddress = "170.0.0.1"; private static final String ip6Address = "00:00:00:00:00:00:00:00"; + private static final String testString = "testString"; + private static final String bridgeName = "bridge name"; + private static final String uuid = "00000000-0000-0000-0000-000000000000"; private Class interfaceTypeClass; private DataPlaneLocatorBuilder dataPlaneLocatorBuilder; private HopOvsdbBridgePair hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo; private List optionsList; private List ovsdbTerminationPointAugmentationList; - private List sffDataPlaneLocatorList; private OvsBridgeBuilder ovsBridgeBuilder; private OvsdbBridgeAugmentation ovsdbBridgeAugmentation; private OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder; @@ -75,6 +89,8 @@ public class SfcSffToOvsMappingAPITest { private SffDataPlaneLocatorBuilder sffDataPlaneLocatorBuilder; private SffOvsLocatorOptionsAugmentationBuilder sffOvsLocatorOptionsAugmentationBuilder; private ExecutorService executor; + private OvsdbNodeAugmentationBuilder ovsdbNodeAugmentationBuilder; + private ConnectionInfoBuilder connectionInfoBuilder; @Before public void setup() throws Exception { @@ -82,173 +98,191 @@ public class SfcSffToOvsMappingAPITest { } @Test - public void SfcSffToOvsMappingAPITestObject() { + public void testSfcSffToOvsMappingAPITest() { SfcSffToOvsMappingAPI sfcSffToOvsMappingAPI = new SfcSffToOvsMappingAPI(); sfcSffToOvsMappingAPI.getClass(); } @Test - public void buildOvsdbBridgeAugmentationTestWhereSffIsNull() throws Exception { + public void testBuildOvsdbBridgeAugmentation_NullOvsBridgeAugmentation() throws Exception { serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); - serviceFunctionForwarderBuilder = null; - - //Sff is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder, executor); - } catch (NullPointerException exception) { - Assert.assertEquals("Must be equal",NullPointerException.class, exception.getClass()); - } + + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + + assertNull("Must be null", ovsdbBridgeAugmentation); } @Test - public void buildOvsdbBridgeAugmentationTestWhereOvsBridgeAugmentationIsNull() throws Exception { + public void testBuildOvsdbBridgeAugmentation_NullOvsBridge() throws Exception { serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); + sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder(); - ovsdbBridgeAugmentation = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder.build(), executor); + sffOvsBridgeAugmentationBuilder.setOvsBridge(null); + serviceFunctionForwarderBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - //ovsBridgeAugmentation is null - Assert.assertEquals("Must be equal",ovsdbBridgeAugmentation, null); + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + assertNull("Must be null", ovsdbBridgeAugmentation); } @Test - public void buildOvsdbBridgeAugmentationTestWhereOvsBridgeIsNull() throws Exception { + public void testBuildOvsdbBridgeAugmentation_NullOvsNode() throws Exception { + ovsBridgeBuilder = new OvsBridgeBuilder(); serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); + sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder(); sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder(); - sffOvsBridgeAugmentationBuilder.setOvsBridge(null); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - - //OvsBridge is null + ovsBridgeBuilder.setBridgeName(bridgeName) + .setUuid(new Uuid(uuid)); + sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder.build()); - ovsdbBridgeAugmentation = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder.build(), executor); + serviceFunctionForwarderBuilder.setName(testString) + .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()) + .addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build()); - Assert.assertEquals("Must be equal",ovsdbBridgeAugmentation, null); + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + assertNull("Must be null", ovsdbBridgeAugmentation); } @Test - public void buildOvsdbBridgeAugmentationTestWhereOvsNodeAugmentationIsNull() throws Exception { + public void testBuildOvsdbBridgeAugmentation_nullNode() throws Exception { ovsBridgeBuilder = new OvsBridgeBuilder(); + ovsdbNodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder(); serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); - sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder(); sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder(); + connectionInfoBuilder = new ConnectionInfoBuilder(); + + //build ovsNodeAugmentation + connectionInfoBuilder.setLocalIp(new IpAddress(new Ipv4Address(OVSDB_OPTION_LOCAL_IP_VALUE))); + ovsdbNodeAugmentationBuilder.setConnectionInfo(connectionInfoBuilder.build()); - ovsBridgeBuilder.setBridgeName("Test Name"); - ovsBridgeBuilder.setUuid(null); + //build ovsBridge + ovsBridgeBuilder.setBridgeName(bridgeName) + .setUuid(new Uuid(uuid)); sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder.build()); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsNodeAugmentation.class, null); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - //OvsNode is null - ovsdbBridgeAugmentation = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder.build(), executor); - Assert.assertEquals("Must be equal",ovsdbBridgeAugmentation, null); + serviceFunctionForwarderBuilder.setName(testString) + .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); + + + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "getOvsdbNodeAugmentation")).toReturn(ovsdbNodeAugmentationBuilder.build()); + + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + + assertNull("Must be null", ovsdbBridgeAugmentation); } @Test - public void buildOvsdbBridgeAugmentationTestWhereOvsNodeIsNull() throws Exception { + public void testBuildOvsdbBridgeAugmentation1() throws Exception { ovsBridgeBuilder = new OvsBridgeBuilder(); + ovsdbNodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder(); serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); - sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder(); sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder(); + connectionInfoBuilder = new ConnectionInfoBuilder(); + NodeBuilder nodeBuilder = new NodeBuilder(); - sffOvsNodeAugmentationBuilder.setOvsNode(null); - ovsBridgeBuilder.setBridgeName("Test Name"); - ovsBridgeBuilder.setUuid(null); + //build ovsNodeAugmentation + connectionInfoBuilder.setLocalIp(new IpAddress(new Ipv4Address(OVSDB_OPTION_LOCAL_IP_VALUE))); + ovsdbNodeAugmentationBuilder.setConnectionInfo(connectionInfoBuilder.build()); + + //build ovsBridge + ovsBridgeBuilder.setBridgeName(bridgeName) + .setUuid(new Uuid(uuid)); sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder.build()); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build()); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - //OvsNode is null - ovsdbBridgeAugmentation = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder.build(), executor); + serviceFunctionForwarderBuilder.setName(testString) + .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - Assert.assertEquals("Must be equal",ovsdbBridgeAugmentation, null); + //create node + nodeBuilder.setNodeId(new NodeId("NodeId")); + + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "getOvsdbNodeAugmentation")).toReturn(ovsdbNodeAugmentationBuilder.build()); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "lookupTopologyNode")).toReturn(nodeBuilder.build()); + + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + + assertNotNull("Must not be null", ovsdbBridgeAugmentation); + assertEquals("Must be equal", ovsdbBridgeAugmentation.getBridgeName().getValue(), bridgeName); + assertEquals("Must be equal", ovsdbBridgeAugmentation.getBridgeUuid().getValue(), uuid); } @Test - public void buildOvsdbBridgeAugmentationTest() throws Exception { - OvsNodeBuilder ovsNodeBuilder = new OvsNodeBuilder(); + public void testBuildOvsdbBridgeAugmentation2() throws Exception { ovsBridgeBuilder = new OvsBridgeBuilder(); + OvsNodeBuilder ovsNodeBuilder = new OvsNodeBuilder(); + ovsdbNodeAugmentationBuilder = new OvsdbNodeAugmentationBuilder(); serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder(); sffOvsNodeAugmentationBuilder = new SffOvsNodeAugmentationBuilder(); sffOvsBridgeAugmentationBuilder = new SffOvsBridgeAugmentationBuilder(); + connectionInfoBuilder = new ConnectionInfoBuilder(); + + //build ovsNodeAugmentation + connectionInfoBuilder.setLocalIp(new IpAddress(new Ipv4Address(OVSDB_OPTION_LOCAL_IP_VALUE))); + ovsdbNodeAugmentationBuilder.setConnectionInfo(connectionInfoBuilder.build()); - sffOvsNodeAugmentationBuilder.setOvsNode(null); - ovsBridgeBuilder.setBridgeName("Test Name"); - ovsBridgeBuilder.setUuid(null); + //build ovsBridge + ovsBridgeBuilder.setBridgeName(bridgeName) + .setUuid(new Uuid(uuid)); sffOvsBridgeAugmentationBuilder.setOvsBridge(ovsBridgeBuilder.build()); - InstanceIdentifier nodeIID = - InstanceIdentifier - .create(NetworkTopology.class) - .child(Topology.class, new TopologyKey(SouthboundConstants.OVSDB_TOPOLOGY_ID)) - .child(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node.class, - new NodeKey(new NodeId("testNode"))); - ovsNodeBuilder.setNodeId(new OvsdbNodeRef(nodeIID)); + + //build ovsNode + ovsNodeBuilder.setNodeId(new OvsdbNodeRef(SfcOvsUtil.buildOvsdbNodeIID(testString))); sffOvsNodeAugmentationBuilder.setOvsNode(ovsNodeBuilder.build()); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build()); - serviceFunctionForwarderBuilder.addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()); - //buildOvsdbBridgeAugmentation test - ovsdbBridgeAugmentation = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildOvsdbBridgeAugmentation", serviceFunctionForwarderBuilder.build(), executor); + serviceFunctionForwarderBuilder.setName(testString) + .addAugmentation(SffOvsBridgeAugmentation.class, sffOvsBridgeAugmentationBuilder.build()) + .addAugmentation(SffOvsNodeAugmentation.class, sffOvsNodeAugmentationBuilder.build()); - Assert.assertEquals("Must be equal",ovsdbBridgeAugmentation.getBridgeName().getValue(), "Test Name"); - } + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "getOvsdbNodeAugmentation")).toReturn(ovsdbNodeAugmentationBuilder.build()); - @Test - public void buildTerminationPointAugmentationListWhereListIsEmpty() throws Exception { - sffDataPlaneLocatorList = null; - - //List is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildTerminationPointAugmentationList", sffDataPlaneLocatorList); - } catch (NullPointerException exception) { - Assert.assertEquals("Must be equal",NullPointerException.class, exception.getClass()); - } + ovsdbBridgeAugmentation = SfcSffToOvsMappingAPI.buildOvsdbBridgeAugmentation(serviceFunctionForwarderBuilder.build(), executor); + + assertNotNull("Must not be null", ovsdbBridgeAugmentation); + assertEquals("Must be equal", ovsdbBridgeAugmentation.getBridgeName().getValue(), bridgeName); + assertEquals("Must be equal", ovsdbBridgeAugmentation.getBridgeUuid().getValue(), uuid); + assertEquals("Must be equal", ovsdbBridgeAugmentation.getControllerEntry().get(0).getTarget().getValue(), "tcp:" + OVSDB_OPTION_LOCAL_IP_VALUE + ":6653"); } @Test - public void buildTerminationPointAugmentationListTest() throws Exception { - sffDataPlaneLocatorList = new ArrayList<>(); + public void testBuildTerminationPointAugmentationList() throws Exception { + List sffDataPlaneLocatorList = new ArrayList<>(); dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); ovsOptionsBuilder = new OvsOptionsBuilder(); sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); sffOvsLocatorOptionsAugmentationBuilder = new SffOvsLocatorOptionsAugmentationBuilder(); - sffDataPlaneLocatorBuilder.setName("Test name"); + sffDataPlaneLocatorBuilder.setName(testString); - ovsOptionsBuilder.setLocalIp(OVSDB_OPTION_LOCAL_IP_VALUE); - ovsOptionsBuilder.setRemoteIp(OVSDB_OPTION_REMOTE_IP_VALUE); - ovsOptionsBuilder.setDstPort(OVSDB_OPTION_DST_PORT_VALUE); - ovsOptionsBuilder.setKey(OVSDB_OPTION_KEY); - ovsOptionsBuilder.setNsp(OVSDB_OPTION_NSP); - ovsOptionsBuilder.setNsi(OVSDB_OPTION_NSI); + ovsOptionsBuilder.setLocalIp(OVSDB_OPTION_LOCAL_IP_VALUE) + .setRemoteIp(OVSDB_OPTION_REMOTE_IP_VALUE) + .setDstPort(OVSDB_OPTION_DST_PORT_VALUE) + .setKey(OVSDB_OPTION_KEY) + .setNsp(OVSDB_OPTION_NSP) + .setNsi(OVSDB_OPTION_NSI); sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(ovsOptionsBuilder.build()); - sffDataPlaneLocatorBuilder.addAugmentation(SffOvsLocatorOptionsAugmentation.class, sffOvsLocatorOptionsAugmentationBuilder.build()); - sffDataPlaneLocatorBuilder.setDataPlaneLocator(dataPlaneLocatorBuilder.build()); + sffDataPlaneLocatorBuilder.addAugmentation(SffOvsLocatorOptionsAugmentation.class, sffOvsLocatorOptionsAugmentationBuilder.build()) + .setDataPlaneLocator(dataPlaneLocatorBuilder.build()); sffDataPlaneLocatorList.add(sffDataPlaneLocatorBuilder.build()); - //buildTerminationPointAugmentationList test - ovsdbTerminationPointAugmentationList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildTerminationPointAugmentationList", sffDataPlaneLocatorList); - - Assert.assertEquals("Must be equal",ovsdbTerminationPointAugmentationList.get(0).getName(), "Test name"); + ovsdbTerminationPointAugmentationList = SfcSffToOvsMappingAPI.buildTerminationPointAugmentationList(sffDataPlaneLocatorList); + assertEquals("Must be equal", ovsdbTerminationPointAugmentationList.get(0).getName(), testString); } @Test - public void getDataPlaneLocatorOptionsWhereDataPlaneLocatorIsNull() throws Exception { + public void testGetDataPlaneLocatorOptions_nullDpl() throws Exception { dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); - optionsList = new ArrayList<>(); optionsList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorOptions", dataPlaneLocatorBuilder.build()); - //DataPlaneLocator is null - Assert.assertEquals("Must be equal",optionsList.toString(), "[]"); + assertEquals("Must be equal", optionsList, Collections.emptyList()); } @Test - public void getDataPlaneLocatorOptionsTest() throws Exception { + public void testGetDataPlaneLocatorOptions() throws Exception { IpBuilder ipBuilder = new IpBuilder(); dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); optionsList = new ArrayList<>(); @@ -257,41 +291,31 @@ public class SfcSffToOvsMappingAPITest { dataPlaneLocatorBuilder.setLocatorType(ipBuilder.build()); optionsList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorOptions", dataPlaneLocatorBuilder.build()); - //buildDataPlaneLocator test - Assert.assertEquals("Must be equal",optionsList.get(0).getValue(), OVSDB_OPTION_LOCAL_IP_VALUE); + assertEquals("Must be equal", optionsList.get(0).getValue(), OVSDB_OPTION_LOCAL_IP_VALUE); } @Test - public void getSffDataPlaneLocatorOptionsTestWhereDataPlaneLocatorIsNull() throws Exception { + public void testGetSffDataPlaneLocatorOptions_nullSffDplOvsOptions() throws Exception { sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); - sffDataPlaneLocatorBuilder = null; - - //DataPlaneLocator is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getSffDataPlaneLocatorOptions", sffDataPlaneLocatorBuilder); - } catch (NullPointerException exception) { - Assert.assertEquals("Must be equal",NullPointerException.class, exception.getClass()); - } + + optionsList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getSffDataPlaneLocatorOptions", sffDataPlaneLocatorBuilder.build()); + + assertEquals("Must be equal", optionsList, Collections.emptyList()); } @Test - public void getSffDataPlaneLocatorOptionsTestWhereArrayIsEmpty() throws Exception { + public void testGetSffDataPlaneLocatorOption_nullOptions() throws Exception { + optionsList = new ArrayList<>(); ovsOptionsBuilder = new OvsOptionsBuilder(); sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); sffOvsLocatorOptionsAugmentationBuilder = new SffOvsLocatorOptionsAugmentationBuilder(); - ovsOptionsBuilder.setLocalIp(null); - ovsOptionsBuilder.setRemoteIp(null); - ovsOptionsBuilder.setDstPort(null); - ovsOptionsBuilder.setKey(null); - ovsOptionsBuilder.setNsp(null); - ovsOptionsBuilder.setNsi(null); sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(ovsOptionsBuilder.build()); sffDataPlaneLocatorBuilder.addAugmentation(SffOvsLocatorOptionsAugmentation.class, sffOvsLocatorOptionsAugmentationBuilder.build()); + optionsList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getSffDataPlaneLocatorOptions", sffDataPlaneLocatorBuilder.build()); - //Array is empty - Assert.assertEquals("Must be equal", optionsList.toString(), "[]"); + Assert.assertEquals("Local Ip must be Equal", optionsList, Collections.emptyList()); } @Test @@ -302,113 +326,65 @@ public class SfcSffToOvsMappingAPITest { sffDataPlaneLocatorBuilder = new SffDataPlaneLocatorBuilder(); sffOvsLocatorOptionsAugmentationBuilder = new SffOvsLocatorOptionsAugmentationBuilder(); - ovsOptionsBuilder.setLocalIp(OVSDB_OPTION_LOCAL_IP_VALUE); - ovsOptionsBuilder.setRemoteIp(OVSDB_OPTION_REMOTE_IP_VALUE); - ovsOptionsBuilder.setDstPort(OVSDB_OPTION_DST_PORT_VALUE); - ovsOptionsBuilder.setKey(OVSDB_OPTION_KEY); - ovsOptionsBuilder.setNsp(OVSDB_OPTION_NSP); - ovsOptionsBuilder.setNsi(OVSDB_OPTION_NSI); + ovsOptionsBuilder.setLocalIp(OVSDB_OPTION_LOCAL_IP_VALUE) + .setRemoteIp(OVSDB_OPTION_REMOTE_IP_VALUE) + .setDstPort(OVSDB_OPTION_DST_PORT_VALUE) + .setKey(OVSDB_OPTION_KEY) + .setNsp(OVSDB_OPTION_NSP) + .setNsi(OVSDB_OPTION_NSI) + .setNshc1(OVSDB_OPTION_NSHC1) + .setNshc2(OVSDB_OPTION_NSHC2) + .setNshc3(OVSDB_OPTION_NSHC3) + .setNshc4(OVSDB_OPTION_NSHC4); sffOvsLocatorOptionsAugmentationBuilder.setOvsOptions(ovsOptionsBuilder.build()); sffDataPlaneLocatorBuilder.addAugmentation(SffOvsLocatorOptionsAugmentation.class, sffOvsLocatorOptionsAugmentationBuilder.build()); optionsList = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getSffDataPlaneLocatorOptions", sffDataPlaneLocatorBuilder.build()); //Test all options - Assert.assertEquals("Local Ip must be Equal", optionsList.get(0).getValue(), OVSDB_OPTION_LOCAL_IP_VALUE); - Assert.assertEquals("Remote Ip must be Equal", optionsList.get(1).getValue(), OVSDB_OPTION_REMOTE_IP_VALUE); - Assert.assertEquals("Dst must be Equal", optionsList.get(2).getValue(), OVSDB_OPTION_DST_PORT_VALUE); - Assert.assertEquals("Key must be Equal", optionsList.get(3).getValue(), OVSDB_OPTION_KEY); - Assert.assertEquals("Nsp must be Equal", optionsList.get(4).getValue(), OVSDB_OPTION_NSP); - Assert.assertEquals("Nsi must be Equal", optionsList.get(5).getValue(), OVSDB_OPTION_NSI); - } - - @Test - public void getDataPlaneLocatorInterfaceTypeTestWhereDataPlaneLocatorIsNull() throws Exception { - dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); - dataPlaneLocatorBuilder = null; - - //DataPlaneLocator is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorInterfaceType", dataPlaneLocatorBuilder); - } catch (NullPointerException exception) { - Assert.assertEquals("Must be Equal", NullPointerException.class, exception.getClass()); - } + assertEquals("Local Ip must be Equal", optionsList.get(0).getValue(), OVSDB_OPTION_LOCAL_IP_VALUE); + assertEquals("Remote Ip must be Equal", optionsList.get(1).getValue(), OVSDB_OPTION_REMOTE_IP_VALUE); + assertEquals("Dst must be Equal", optionsList.get(2).getValue(), OVSDB_OPTION_DST_PORT_VALUE); + assertEquals("Key must be Equal", optionsList.get(3).getValue(), OVSDB_OPTION_KEY); + assertEquals("Nsp must be Equal", optionsList.get(4).getValue(), OVSDB_OPTION_NSP); + assertEquals("Nsi must be Equal", optionsList.get(5).getValue(), OVSDB_OPTION_NSI); + assertEquals("Nshc1 must be Equal", optionsList.get(6).getValue(), OVSDB_OPTION_NSHC1); + assertEquals("Nshc2 must be Equal", optionsList.get(7).getValue(), OVSDB_OPTION_NSHC2); + assertEquals("Nshc3 must be Equal", optionsList.get(8).getValue(), OVSDB_OPTION_NSHC3); + assertEquals("Nshc4 must be Equal", optionsList.get(9).getValue(), OVSDB_OPTION_NSHC4); } @Test - public void getDataPlaneLocatorInterfaceTypeTestNoTransport() throws Exception { + public void testGetDataPlaneLocatorInterfaceType_NoTransport() throws Exception { dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); - dataPlaneLocatorBuilder.setTransport(null); interfaceTypeClass = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorInterfaceType", dataPlaneLocatorBuilder.build()); - //Set null to transport - Assert.assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeInternal.class); + assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeInternal.class); } @Test - public void getDataPlaneLocatorInterfaceTypeTestWithOther() throws Exception { + public void testGetDataPlaneLocatorInterfaceType_Other() throws Exception { dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); dataPlaneLocatorBuilder.setTransport(Other.class); interfaceTypeClass = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorInterfaceType", dataPlaneLocatorBuilder.build()); - //Other.class - Assert.assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeInternal.class); + assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeInternal.class); } @Test - public void getDataPlaneLocatorInterfaceTypeTestWithVxLan() throws Exception { + public void testGetDataPlaneLocatorInterfaceType_VxLan() throws Exception { dataPlaneLocatorBuilder = new DataPlaneLocatorBuilder(); dataPlaneLocatorBuilder.setTransport(VxlanGpe.class); interfaceTypeClass = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "getDataPlaneLocatorInterfaceType", dataPlaneLocatorBuilder.build()); - //Other.class - Assert.assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeVxlan.class); - } - - @Test - public void buildVxlanTunnelDataPlaneLocatorTestWhereRenderedServicePathIsNull() { - RenderedServicePath renderedServicePath = null; - - //RenderedServicePath is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocator", renderedServicePath, null, null); - } catch (Exception exception) { - Assert.assertEquals("Must be Equal", NullPointerException.class, exception.getClass()); - } - } - - @Test - public void buildVxlanTunnelDataPlaneLocatorTestWhereHopOvsdbBridgePairFromIsNull() { - renderedServicePathBuilder = new RenderedServicePathBuilder(); - - //HopOvsdbBridgePairFrom is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocator", renderedServicePathBuilder.build(), null, null); - } catch (Exception exception) { - Assert.assertEquals("Must be Equal", NullPointerException.class, exception.getClass()); - } - } - - @Test - public void buildVxlanTunnelDataPlaneLocatorTestWhereHopOvsdbBridgePairToIsNull() { - renderedServicePathBuilder = new RenderedServicePathBuilder(); - renderedServicePathHopBuilderFrom = new RenderedServicePathHopBuilder(); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - hopOvsdbBridgePairFrom = new HopOvsdbBridgePair(renderedServicePathHopBuilderFrom.build(), ovsdbBridgeAugmentationBuilder.build()); - - //HopOvsdbBridgePairTo is null - try { - Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocator", renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, null); - } catch (Exception exception) { - Assert.assertEquals("Must be Equal", NullPointerException.class, exception.getClass()); - } + assertEquals("Must be Equal", interfaceTypeClass, InterfaceTypeVxlan.class); } @Test - public void buildVxlanTunnelDataPlaneLocatorTestWithIpV6Address() throws Exception { + public void testBuildVxlanTunnelDataPlaneLocator() throws Exception { List bridgeOtherConfigsList = new ArrayList<>(); BridgeOtherConfigsBuilder bridgeOtherConfigsBuilder = new BridgeOtherConfigsBuilder(); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); @@ -417,60 +393,45 @@ public class SfcSffToOvsMappingAPITest { renderedServicePathHopBuilderTo = new RenderedServicePathHopBuilder(); SffDataPlaneLocator sffDataPlaneLocator; - renderedServicePathBuilder.setName(renderedServicePathName); - renderedServicePathBuilder.setPathId(pathId); - renderedServicePathHopBuilderFrom.setHopNumber(hopNumberFrom); - renderedServicePathHopBuilderFrom.setServiceIndex(serviceIndex); + renderedServicePathBuilder.setName(renderedServicePathName) + .setPathId(pathId); + + renderedServicePathHopBuilderFrom.setHopNumber(hopNumberFrom) + .setServiceIndex(serviceIndex); + renderedServicePathHopBuilderTo.setHopNumber(hopNumberTo); - bridgeOtherConfigsBuilder.setBridgeOtherConfigKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); - bridgeOtherConfigsBuilder.setBridgeOtherConfigValue(ip6Address); + + bridgeOtherConfigsBuilder.setBridgeOtherConfigKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setBridgeOtherConfigValue(ip6Address); bridgeOtherConfigsList.add(bridgeOtherConfigsBuilder.build()); + ovsdbBridgeAugmentationBuilder.setBridgeOtherConfigs(bridgeOtherConfigsList); + hopOvsdbBridgePairFrom = new HopOvsdbBridgePair(renderedServicePathHopBuilderFrom.build(), ovsdbBridgeAugmentationBuilder.build()); hopOvsdbBridgePairTo = new HopOvsdbBridgePair(renderedServicePathHopBuilderTo.build(), ovsdbBridgeAugmentationBuilder.build()); - sffDataPlaneLocator = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocator", renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); + sffDataPlaneLocator = SfcSffToOvsMappingAPI.buildVxlanTunnelDataPlaneLocator(renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); - //buildVxlanTunnelDataPlaneLocatorName tests Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getName(), renderedServicePathName + "-vxlan-" + hopNumberFrom + "to" + hopNumberTo); Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getNsi(), serviceIndex.toString()); Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getNsp(), pathId.toString()); Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getLocalIp(), ip6Address); - } - - @Test - public void buildVxlanTunnelDataPlaneLocatorTest() throws Exception { - List bridgeOtherConfigsList = new ArrayList<>(); - BridgeOtherConfigsBuilder bridgeOtherConfigsBuilder = new BridgeOtherConfigsBuilder(); - ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - renderedServicePathBuilder = new RenderedServicePathBuilder(); - renderedServicePathHopBuilderFrom = new RenderedServicePathHopBuilder(); - renderedServicePathHopBuilderTo = new RenderedServicePathHopBuilder(); - SffDataPlaneLocator sffDataPlaneLocator; - renderedServicePathBuilder.setName(renderedServicePathName); - renderedServicePathBuilder.setPathId(pathId); - renderedServicePathHopBuilderFrom.setHopNumber(hopNumberFrom); - renderedServicePathHopBuilderFrom.setServiceIndex(serviceIndex); - renderedServicePathHopBuilderTo.setHopNumber(hopNumberTo); - bridgeOtherConfigsBuilder.setBridgeOtherConfigKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP); - bridgeOtherConfigsBuilder.setBridgeOtherConfigValue(ipAddress); + bridgeOtherConfigsBuilder.setBridgeOtherConfigKey(SfcOvsUtil.OVSDB_OPTION_LOCAL_IP) + .setBridgeOtherConfigValue(ipAddress); + bridgeOtherConfigsList.clear(); bridgeOtherConfigsList.add(bridgeOtherConfigsBuilder.build()); + + ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); ovsdbBridgeAugmentationBuilder.setBridgeOtherConfigs(bridgeOtherConfigsList); - hopOvsdbBridgePairFrom = new HopOvsdbBridgePair(renderedServicePathHopBuilderFrom.build(), ovsdbBridgeAugmentationBuilder.build()); - hopOvsdbBridgePairTo = new HopOvsdbBridgePair(renderedServicePathHopBuilderTo.build(), ovsdbBridgeAugmentationBuilder.build()); - sffDataPlaneLocator = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocator", renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); + sffDataPlaneLocator = SfcSffToOvsMappingAPI.buildVxlanTunnelDataPlaneLocator(renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); - //buildVxlanTunnelDataPlaneLocatorName tests - Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getName(), renderedServicePathName + "-vxlan-" + hopNumberFrom + "to" + hopNumberTo); - Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getNsi(), serviceIndex.toString()); - Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getNsp(), pathId.toString()); Assert.assertEquals("Must be Equal", sffDataPlaneLocator.getAugmentation(SffOvsLocatorOptionsAugmentation.class).getOvsOptions().getLocalIp(), ipAddress); } @Test - public void buildVxlanTunnelDataPlaneLocatorNameTest() throws Exception { + public void testBuildVxlanTunnelDataPlaneLocatorName() throws Exception { ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); renderedServicePathBuilder = new RenderedServicePathBuilder(); renderedServicePathHopBuilderFrom = new RenderedServicePathHopBuilder(); @@ -483,10 +444,9 @@ public class SfcSffToOvsMappingAPITest { hopOvsdbBridgePairFrom = new HopOvsdbBridgePair(renderedServicePathHopBuilderFrom.build(), ovsdbBridgeAugmentationBuilder.build()); hopOvsdbBridgePairTo = new HopOvsdbBridgePair(renderedServicePathHopBuilderTo.build(), ovsdbBridgeAugmentationBuilder.build()); - result = Whitebox.invokeMethod(SfcSffToOvsMappingAPI.class, "buildVxlanTunnelDataPlaneLocatorName", renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); + result = SfcSffToOvsMappingAPI.buildVxlanTunnelDataPlaneLocatorName(renderedServicePathBuilder.build(), hopOvsdbBridgePairFrom, hopOvsdbBridgePairTo); - //buildVxlanTunnelDataPlaneLocatorName test - Assert.assertEquals("Must be Equal", result, renderedServicePathName + "-vxlan-" + hopNumberFrom + "to" + hopNumberTo); + assertEquals("Must be Equal", result, renderedServicePathName + "-vxlan-" + hopNumberFrom + "to" + hopNumberTo); } } diff --git a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/util/HopOvsdbBridgePairTest.java b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/util/HopOvsdbBridgePairTest.java index 623650fe9..219f7dcbd 100644 --- a/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/util/HopOvsdbBridgePairTest.java +++ b/sfc-ovs/src/test/java/org/opendaylight/sfc/sfc_ovs/provider/util/HopOvsdbBridgePairTest.java @@ -1,27 +1,25 @@ package org.opendaylight.sfc.sfc_ovs.provider.util; - -import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mockito; import org.opendaylight.sfc.sfc_ovs.provider.SfcOvsUtil; -import org.opendaylight.sfc.sfc_ovs.provider.api.SfcOvsDataStoreAPI; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePathBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.rendered.service.path.RenderedServicePathHop; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.rendered.service.path.RenderedServicePathHopBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentationBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeName; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import org.powermock.reflect.Whitebox; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import static junit.framework.Assert.assertNotNull; +import static junit.framework.TestCase.assertEquals; + /** * @author Vladimir Lavor * @version 0.1 @@ -33,7 +31,7 @@ import java.util.concurrent.Executors; @RunWith(PowerMockRunner.class) @PrepareForTest(SfcOvsUtil.class) public class HopOvsdbBridgePairTest { - private static final String testString = "test string"; + private static final String sff = "sff"; private RenderedServicePathHopBuilder renderedServicePathHopBuilder; private OvsdbBridgeAugmentationBuilder ovsdbBridgeAugmentationBuilder; @@ -41,55 +39,50 @@ public class HopOvsdbBridgePairTest { public void constructorTest() throws Exception { renderedServicePathHopBuilder = new RenderedServicePathHopBuilder(); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - ovsdbBridgeAugmentationBuilder.setBridgeName(new OvsdbBridgeName(testString)); HopOvsdbBridgePair hopOvsdbBridgePair = new HopOvsdbBridgePair(renderedServicePathHopBuilder.build(), ovsdbBridgeAugmentationBuilder.build()); - // constructor test - Assert.assertEquals(hopOvsdbBridgePair.ovsdbBridgeAugmentation.getBridgeName().getValue(), "test string"); + assertNotNull("Must be not null", hopOvsdbBridgePair.ovsdbBridgeAugmentation); + assertNotNull("Must be not null", hopOvsdbBridgePair.renderedServicePathHop); } @Test - public void buildHopOvsdbBridgePairReturnsEmptyList0() throws Exception { + public void buildHopOvsdbBridgePair_EmptyList0() throws Exception { ExecutorService executorService = Executors.newFixedThreadPool(10); RenderedServicePathBuilder renderedServicePathBuilder = new RenderedServicePathBuilder(); renderedServicePathHopBuilder = new RenderedServicePathHopBuilder(); List renderedServicePathHopList = new ArrayList<>(); - renderedServicePathHopBuilder.setHopNumber(Short.valueOf("5")); - renderedServicePathHopBuilder.setServiceFunctionForwarder("Sff"); + renderedServicePathHopBuilder.setHopNumber(Short.valueOf("5")) + .setServiceFunctionForwarder(sff); renderedServicePathHopList.add(renderedServicePathHopBuilder.build()); renderedServicePathBuilder.setRenderedServicePathHop(renderedServicePathHopList); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(SfcOvsDataStoreAPI.class), Mockito.any(ExecutorService.class))).thenReturn(null); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(null); - List hopOvsdbBridgePairList = Whitebox.invokeMethod(HopOvsdbBridgePair.class, "buildHopOvsdbBridgePairList", renderedServicePathBuilder.build(), executorService); + List hopOvsdbBridgePairList = HopOvsdbBridgePair.buildHopOvsdbBridgePairList(renderedServicePathBuilder.build(), executorService); - //buildHopOvsdbBridgePair test - Assert.assertEquals(hopOvsdbBridgePairList.size(), 0); + assertEquals("Must be Equal", hopOvsdbBridgePairList, Collections.emptyList()); } @Test - public void buildHopOvsdbBridgePairReturnsEmptyList1() throws Exception { + public void buildHopOvsdbBridgePair_EmptyList1() throws Exception { ExecutorService executorService = Executors.newFixedThreadPool(10); RenderedServicePathBuilder renderedServicePathBuilder = new RenderedServicePathBuilder(); renderedServicePathHopBuilder = new RenderedServicePathHopBuilder(); List renderedServicePathHopList = new ArrayList<>(); - renderedServicePathHopBuilder.setHopNumber(Short.valueOf("5")); - renderedServicePathHopBuilder.setServiceFunctionForwarder("Sff"); + renderedServicePathHopBuilder.setHopNumber(Short.valueOf("5")) + .setServiceFunctionForwarder(sff); renderedServicePathHopList.add(renderedServicePathHopBuilder.build()); renderedServicePathBuilder.setRenderedServicePathHop(renderedServicePathHopList); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(SfcOvsDataStoreAPI.class), Mockito.any(ExecutorService.class))).thenReturn(ovsdbBridgeAugmentationBuilder.build()); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(ovsdbBridgeAugmentationBuilder.build()); - List hopOvsdbBridgePairList = Whitebox.invokeMethod(HopOvsdbBridgePair.class, "buildHopOvsdbBridgePairList", renderedServicePathBuilder.build(), executorService); + List hopOvsdbBridgePairList = HopOvsdbBridgePair.buildHopOvsdbBridgePairList(renderedServicePathBuilder.build(), executorService); - //buildHopOvsdbBridgePair test - Assert.assertEquals(hopOvsdbBridgePairList.size(), 0); + assertEquals("Must be equal", hopOvsdbBridgePairList, Collections.emptyList()); } @Test @@ -99,19 +92,17 @@ public class HopOvsdbBridgePairTest { renderedServicePathHopBuilder = new RenderedServicePathHopBuilder(); List renderedServicePathHopList = new ArrayList<>(); - renderedServicePathHopBuilder.setHopNumber(Short.valueOf("0")); - renderedServicePathHopBuilder.setServiceFunctionForwarder("Sff"); + renderedServicePathHopBuilder.setHopNumber(Short.valueOf("0")) + .setServiceFunctionForwarder(sff); renderedServicePathHopList.add(renderedServicePathHopBuilder.build()); renderedServicePathBuilder.setRenderedServicePathHop(renderedServicePathHopList); ovsdbBridgeAugmentationBuilder = new OvsdbBridgeAugmentationBuilder(); - PowerMockito.mockStatic(SfcOvsUtil.class); - Mockito.when(SfcOvsUtil.submitCallable(Mockito.any(SfcOvsDataStoreAPI.class), Mockito.any(ExecutorService.class))).thenReturn(ovsdbBridgeAugmentationBuilder.build()); + PowerMockito.stub(PowerMockito.method(SfcOvsUtil.class, "submitCallable")).toReturn(ovsdbBridgeAugmentationBuilder.build()); - List hopOvsdbBridgePairList = Whitebox.invokeMethod(HopOvsdbBridgePair.class, "buildHopOvsdbBridgePairList", renderedServicePathBuilder.build(), executorService); + List hopOvsdbBridgePairList = HopOvsdbBridgePair.buildHopOvsdbBridgePairList(renderedServicePathBuilder.build(), executorService); - //buildHopOvsdbBridgePair test - Assert.assertEquals(hopOvsdbBridgePairList.size(), 1); + assertEquals(hopOvsdbBridgePairList.size(), 1); } } -- 2.36.6