Fix bug when creating SRG termination points
[transportpce.git] / networkmodel / src / test / java / org / opendaylight / transportpce / networkmodel / util / OpenRoadmTopologyTest.java
index fcbf4cb993661a7f6346b5fb23e970fe0c224f6c..d0ac4d62869d68949190071b244f6cc6b9a972ba 100644 (file)
@@ -42,7 +42,7 @@ import org.opendaylight.transportpce.common.fixedflex.GridConstant;
 import org.opendaylight.transportpce.common.network.NetworkTransactionService;
 import org.opendaylight.transportpce.networkmodel.dto.TopologyShard;
 import org.opendaylight.transportpce.networkmodel.util.test.NetworkmodelTestUtil;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev210426.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220114.network.Nodes;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Link1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1;
@@ -61,6 +61,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Network1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
@@ -78,7 +79,7 @@ public class OpenRoadmTopologyTest {
 
     @Test
     public void createTopologyShardForDegreeTest() {
-        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, 0);
+        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, List.of());
         TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode);
         assertNotNull(topologyShard);
         assertEquals("Should contain 2 Degree nodes only", 2, topologyShard.getNodes().size());
@@ -97,19 +98,20 @@ public class OpenRoadmTopologyTest {
         assertEquals("Should contain 2 express links", 2, links.size());
         assertEquals("ROADMA01-DEG1-DEG1-CTP-TXRXtoROADMA01-DEG2-DEG2-CTP-TXRX", links.get(0).getLinkId().getValue());
         assertEquals("ROADMA01-DEG1", links.get(0).getSource().getSourceNode().getValue());
-        assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp());
+        assertEquals("DEG1-CTP-TXRX", links.get(0).getSource().getSourceTp().getValue());
         assertEquals("ROADMA01-DEG2", links.get(0).getDestination().getDestNode().getValue());
-        assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp());
+        assertEquals("DEG2-CTP-TXRX", links.get(0).getDestination().getDestTp().getValue());
         assertEquals("ROADMA01-DEG2-DEG2-CTP-TXRXtoROADMA01-DEG1-DEG1-CTP-TXRX", links.get(1).getLinkId().getValue());
         assertEquals("ROADMA01-DEG2", links.get(1).getSource().getSourceNode().getValue());
-        assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp());
+        assertEquals("DEG2-CTP-TXRX", links.get(1).getSource().getSourceTp().getValue());
         assertEquals("ROADMA01-DEG1", links.get(1).getDestination().getDestNode().getValue());
-        assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp());
+        assertEquals("DEG1-CTP-TXRX", links.get(1).getDestination().getDestTp().getValue());
     }
 
     @Test
     public void createTopologyShardForSrgTest() {
-        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0, 1);
+        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0,
+            List.of(Integer.valueOf(1)));
         TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode);
         assertNotNull(topologyShard);
         List<Node> nodes = topologyShard.getNodes();
@@ -118,9 +120,28 @@ public class OpenRoadmTopologyTest {
         checkSrgNode("1", nodes.get(0));
     }
 
+    @Test
+    public void createTopologyShardForMultipleSrgTest() {
+        List<Integer> srgNbs = List.of(Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(10),
+            Integer.valueOf(11));
+        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 0, srgNbs);
+        TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode);
+        assertNotNull(topologyShard);
+        List<Node> nodes = topologyShard.getNodes().stream()
+            .sorted((n1, n2) -> n1.getNodeId().getValue().compareTo(n2.getNodeId().getValue()))
+            .collect(Collectors.toList());
+        assertEquals("Should contain 4 SRG nodes", 4, nodes.size());
+        assertEquals("Should contain 0 link", 0, topologyShard.getLinks().size());
+        checkSrgNode("1", nodes.get(0));
+        checkSrgNode("10", nodes.get(1));
+        checkSrgNode("11", nodes.get(2));
+        checkSrgNode("2", nodes.get(3));
+    }
+
     @Test
     public void createTopologyShardForCompleteRdmNodeTest() {
-        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2, 2);
+        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", "nodeA", 2,
+            List.of(Integer.valueOf(1), Integer.valueOf(2)));
         TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode);
         assertNotNull(topologyShard);
         assertEquals("Should contain 2 Deg and 2 SRG nodes", 4, topologyShard.getNodes().size());
@@ -181,7 +202,7 @@ public class OpenRoadmTopologyTest {
     @Ignore
     @Test
     public void createTopologyShardForRdmWithoutClliTest() {
-        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", null, 2, 0);
+        Nodes mappingNode = NetworkmodelTestUtil.createMappingForRdm("ROADMA01", null, 2, List.of());
         TopologyShard topologyShard = OpenRoadmTopology.createTopologyShard(mappingNode);
         assertNull("clli must not be null", topologyShard);
     }
@@ -197,8 +218,9 @@ public class OpenRoadmTopologyTest {
             new Link1Builder().build();
         Link link = new LinkBuilder()
             .setLinkId(linkId)
-            .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp).build())
-            .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(destTp).build())
+            .setSource(new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(new TpId(srcTp)).build())
+            .setDestination(new DestinationBuilder().setDestNode(new NodeId(dstNode)).setDestTp(new TpId(destTp))
+                .build())
             .addAugmentation(link1)
             .build();
         InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Networks.class).child(Network.class,
@@ -342,12 +364,12 @@ public class OpenRoadmTopologyTest {
         assertEquals("XPDR1-CLIENT1", tps.get(0).getTpId().getValue());
         assertEquals(OpenroadmTpType.XPONDERCLIENT, tps.get(0).augmentation(TerminationPoint1.class).getTpType());
         assertEquals("XPDR1-NETWORK1", tps.get(0).augmentation(
-            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class)
+            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1.class)
             .getAssociatedConnectionMapPort());
         assertEquals("XPDR1-NETWORK1", tps.get(2).getTpId().getValue());
         assertEquals(OpenroadmTpType.XPONDERNETWORK, tps.get(2).augmentation(TerminationPoint1.class).getTpType());
         assertEquals("XPDR1-CLIENT1", tps.get(2).augmentation(
-            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev201019.TerminationPoint1.class)
+            org.opendaylight.yang.gen.v1.http.transportpce.topology.rev220123.TerminationPoint1.class)
             .getAssociatedConnectionMapPort());
     }