Add unit tests for OpenstackNetworkingUtil.
Change-Id: I86f573564bcc16df69e0b69ff623c68101b399d1
diff --git a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
index 41252b1..270fbd6 100644
--- a/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
+++ b/apps/openstacknetworking/app/src/test/java/org/onosproject/openstacknetworking/util/OpenstackNetworkingUtilTest.java
@@ -26,13 +26,21 @@
import org.junit.Test;
import org.onlab.packet.Ip4Address;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.MacAddress;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+import org.onosproject.openstacknetworking.api.InstancePort;
+import org.onosproject.openstacknetworking.impl.DefaultInstancePort;
+import org.onosproject.openstacknetworking.web.OpenstackFloatingIpWebResourceTest;
+import org.onosproject.openstacknetworking.web.OpenstackNetworkWebResourceTest;
import org.onosproject.openstacknode.api.NodeState;
import org.onosproject.openstacknode.api.OpenstackNode;
import org.onosproject.openstacknode.api.OpenstackNodeTest;
import org.openstack4j.model.network.NetFloatingIP;
+import org.openstack4j.model.network.Port;
import org.openstack4j.openstack.networking.domain.NeutronFloatingIP;
+import org.openstack4j.openstack.networking.domain.NeutronPort;
import java.io.IOException;
import java.io.InputStream;
@@ -41,18 +49,71 @@
import java.util.Set;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.getGwByComputeDevId;
public final class OpenstackNetworkingUtilTest {
- private NetFloatingIP floatingIp;
+ private NetFloatingIP floatingIp1;
+ private NetFloatingIP floatingIp2;
+ private NetFloatingIP floatingIp3;
+ private Port openstackPort;
+ private Port openstackSriovPort1;
+ private Port openstackSriovPort2;
+ private Port openstackSriovPort3;
+ private InstancePort instancePort1;
+ private InstancePort instancePort2;
+ private InstancePort instancePort3;
@Before
public void setUp() {
- floatingIp = NeutronFloatingIP.builder()
- .floatingNetworkId("floatingNetworkingId")
- .portId("portId")
+
+ instancePort1 = DefaultInstancePort.builder()
+ .networkId("net-id-1")
+ .portId("ce705c24-c1ef-408a-bda3-7bbd946164ab")
+ .deviceId(DeviceId.deviceId("of:000000000000000a"))
+ .portNumber(PortNumber.portNumber(1, "tap-1"))
+ .ipAddress(IpAddress.valueOf("10.0.0.3"))
+ .macAddress(MacAddress.valueOf("11:22:33:44:55:66"))
+ .state(InstancePort.State.valueOf("ACTIVE"))
.build();
+
+ instancePort2 = DefaultInstancePort.builder()
+ .networkId("net-id-2")
+ .portId("port-id-2")
+ .deviceId(DeviceId.deviceId("of:000000000000000b"))
+ .portNumber(PortNumber.portNumber(2, "tap-2"))
+ .ipAddress(IpAddress.valueOf("10.10.10.2"))
+ .macAddress(MacAddress.valueOf("22:33:44:55:66:11"))
+ .state(InstancePort.State.valueOf("ACTIVE"))
+ .build();
+
+ instancePort3 = DefaultInstancePort.builder()
+ .networkId("net-id-3")
+ .portId("port-id-3")
+ .deviceId(DeviceId.deviceId("of:000000000000000c"))
+ .oldDeviceId(DeviceId.deviceId("of:000000000000000d"))
+ .oldPortNumber(PortNumber.portNumber(4, "tap-4"))
+ .portNumber(PortNumber.portNumber(3, "tap-3"))
+ .ipAddress(IpAddress.valueOf("10.10.10.3"))
+ .macAddress(MacAddress.valueOf("33:44:55:66:11:22"))
+ .state(InstancePort.State.valueOf("ACTIVE"))
+ .build();
+
+ InputStream floatingIpjsonStream1 = OpenstackFloatingIpWebResourceTest.class
+ .getResourceAsStream("openstack-floatingip1.json");
+ InputStream floatingIpjsonStream2 = OpenstackFloatingIpWebResourceTest.class
+ .getResourceAsStream("openstack-floatingip2.json");
+ InputStream floatingIpjsonStream3 = OpenstackFloatingIpWebResourceTest.class
+ .getResourceAsStream("openstack-floatingip3.json");
+
+ floatingIp1 = (NetFloatingIP)
+ OpenstackNetworkingUtil.jsonToModelEntity(floatingIpjsonStream1, NeutronFloatingIP.class);
+ floatingIp2 = (NetFloatingIP)
+ OpenstackNetworkingUtil.jsonToModelEntity(floatingIpjsonStream2, NeutronFloatingIP.class);
+ floatingIp3 = (NetFloatingIP)
+ OpenstackNetworkingUtil.jsonToModelEntity(floatingIpjsonStream3, NeutronFloatingIP.class);
+
}
@After
@@ -65,11 +126,47 @@
@Test
public void testFloatingIp() throws IOException {
ObjectNode floatingIpNode =
- OpenstackNetworkingUtil.modelEntityToJson(floatingIp, NeutronFloatingIP.class);
+ OpenstackNetworkingUtil.modelEntityToJson(floatingIp1, NeutronFloatingIP.class);
InputStream is = IOUtils.toInputStream(floatingIpNode.toString(), StandardCharsets.UTF_8.name());
NetFloatingIP floatingIp2 = (NetFloatingIP)
OpenstackNetworkingUtil.jsonToModelEntity(is, NeutronFloatingIP.class);
- new EqualsTester().addEqualityGroup(floatingIp, floatingIp2).testEquals();
+ new EqualsTester().addEqualityGroup(floatingIp1, floatingIp2).testEquals();
+ }
+
+ /**
+ * Tests the associatedFloatingIp method.
+ * @throws NullPointerException
+ */
+ @Test
+ public void testAsscoatedFloatingIp() throws NullPointerException {
+ Set<NetFloatingIP> testSet = Sets.newHashSet();
+ testSet.add(floatingIp1);
+ testSet.add(floatingIp2);
+ testSet.add(floatingIp3);
+
+ NetFloatingIP floatingIp1 = OpenstackNetworkingUtil.associatedFloatingIp(instancePort1, testSet);
+ NetFloatingIP floatingIp2 = OpenstackNetworkingUtil.associatedFloatingIp(instancePort2, testSet);
+
+ assertEquals(floatingIp1, this.floatingIp1);
+ assertEquals(floatingIp2, null);
+ }
+
+ /**
+ * Tests the getGwByInstancePort method.
+ */
+ @Test
+ public void testGetGwByInstancePort() {
+
+ Set<OpenstackNode> gws = Sets.newConcurrentHashSet();
+ gws.add(genGateway(1));
+ gws.add(genGateway(2));
+ gws.add(genGateway(3));
+
+ int expectedGwIndex = 2;
+
+ OpenstackNode gw = OpenstackNetworkingUtil.getGwByInstancePort(gws, instancePort1);
+
+ assertEquals(genGateway(expectedGwIndex), gw);
}
/**
@@ -78,6 +175,10 @@
@Test
public void testGetGwByComputeDevId() {
Set<OpenstackNode> gws = Sets.newConcurrentHashSet();
+
+ OpenstackNode nullGw = getGwByComputeDevId(gws, genDeviceId(1));
+ assertNull(nullGw);
+
gws.add(genGateway(1));
gws.add(genGateway(2));
gws.add(genGateway(3));
@@ -106,6 +207,53 @@
assertEquals(numOfDev, sum);
}
+ /**
+ * Tests getIntfNameFromPciAddress method.
+ */
+ @Test
+ public void testGetIntfNameFromPciAddress() {
+
+ InputStream portJsonStream = OpenstackNetworkWebResourceTest.class
+ .getResourceAsStream("openstack-port.json");
+
+ InputStream sriovPortJsonStream1 = OpenstackNetworkWebResourceTest.class
+ .getResourceAsStream("openstack-port-sriov1.json");
+ InputStream sriovPortJsonStream2 = OpenstackNetworkWebResourceTest.class
+ .getResourceAsStream("openstack-port-sriov2.json");
+ InputStream sriovPortJsonStream3 = OpenstackNetworkWebResourceTest.class
+ .getResourceAsStream("openstack-port-sriov3.json");
+
+ openstackPort = (Port)
+ OpenstackNetworkingUtil.jsonToModelEntity(portJsonStream, NeutronPort.class);
+
+ openstackSriovPort1 = (Port)
+ OpenstackNetworkingUtil.jsonToModelEntity(sriovPortJsonStream1, NeutronPort.class);
+ openstackSriovPort2 = (Port)
+ OpenstackNetworkingUtil.jsonToModelEntity(sriovPortJsonStream2, NeutronPort.class);
+ openstackSriovPort3 = (Port)
+ OpenstackNetworkingUtil.jsonToModelEntity(sriovPortJsonStream3, NeutronPort.class);
+
+ String expectedIntfName1 = "enp5s8";
+ String expectedIntfName2 = "enp5s8f3";
+
+ assertNull(OpenstackNetworkingUtil.getIntfNameFromPciAddress(openstackPort));
+ assertEquals(expectedIntfName1, OpenstackNetworkingUtil.getIntfNameFromPciAddress(openstackSriovPort1));
+ assertEquals(expectedIntfName2, OpenstackNetworkingUtil.getIntfNameFromPciAddress(openstackSriovPort2));
+ assertNull(OpenstackNetworkingUtil.getIntfNameFromPciAddress(openstackSriovPort3));
+ }
+
+ /**
+ * tests swapStaleLocation method.
+ */
+ @Test
+ public void testSwapStaleLocation() {
+ InstancePort swappedInstancePort = OpenstackNetworkingUtil.swapStaleLocation(instancePort3);
+
+ assertEquals(instancePort3.oldDeviceId(), swappedInstancePort.deviceId());
+ assertEquals(instancePort3.oldPortNumber(), swappedInstancePort.portNumber());
+
+ }
+
private OpenstackNode genGateway(int index) {
Device intgBrg = InternalOpenstackNodeTest.createDevice(index);