add unit test for pceLink and pceOpticalNode 36/89436/8
authorShaabanEltanany <shaaban.eltanany.ext@orange.com>
Mon, 27 Apr 2020 09:09:48 +0000 (11:09 +0200)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Wed, 29 Apr 2020 07:33:32 +0000 (07:33 +0000)
JIRA: TRNSPRTPCE-209
Signed-off-by: ShaabanEltanany <shaaban.eltanany.ext@orange.com>
Change-Id: I5f157556e489d7ae9ab749934a56b6483606615f

pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java
pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOpticalNodeTest.java

index ed79f68d8595d0c89886f5ce86fdea1c85ada33d..a2e27f848760bd90230286336bc9d2c529c9bf6f 100644 (file)
@@ -20,10 +20,10 @@ import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType;
@@ -75,6 +75,20 @@ public class PceLinkTest extends AbstractTest {
         pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
     }
 
+    @Test
+    public void testBuildPceLinkRoadmToRoadmWithoutLinkLatency() {
+        Link link = createRoadmToRoadmWithoutLinkLatency("srcNode",
+                "destNode",
+                "srcTp", "destTp").build();
+
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
+        Node node = node1Builder.build();
+
+        PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
+    }
+
     @Test
     public void testBuildPceLinkOTN() {
         Link link = createOTNLink("srcNode",
@@ -127,6 +141,8 @@ public class PceLinkTest extends AbstractTest {
         Assert.assertNotNull(pceLink.getLinkId());
         Assert.assertNotNull(pceLink.getSourceId());
         Assert.assertNotNull(pceLink.getDestId());
+        pceLink.setClient("specific_client");
+        Assert.assertTrue(pceLink.getClient().equals("specific_client"));
         Assert.assertNotNull(pceLink.getClient());
         Assert.assertNotNull(pceLink.getLatency());
         Assert.assertNotNull(pceLink.getAvailableBandwidth());
@@ -134,23 +150,12 @@ public class PceLinkTest extends AbstractTest {
         Assert.assertNotNull(pceLink.getsourceNetworkSupNodeId());
         Assert.assertNotNull(pceLink.getdestNetworkSupNodeId());
         Assert.assertNotNull(pceLink.getosnr());
-        Assert.assertNull(pceLink.getsourceCLLI());
-        Assert.assertNull(pceLink.getdestCLLI());
-    }
+        Assert.assertNotNull(pceLink.getSourceTP());
+        Assert.assertNotNull(pceLink.getsourceCLLI());
+        Assert.assertNotNull(pceLink.getdestCLLI());
+        Assert.assertTrue(pceLink.toString().equals("PceLink type=" + pceLink.getlinkType()
+                + " ID=" + pceLink.getLinkId().getValue() + " latency=" + pceLink.getLatency().intValue()));
 
-    @Test
-    public void testPceOpticalNode() {
-        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
-        Node node = node1Builder.build();
-
-        PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
-                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
-        pceOpticalNode.initSrgTps();
-        pceOpticalNode.initXndrTps();
-        pceOpticalNode.initWLlist();
-        Assert.assertFalse(pceOpticalNode.isValid());
-        Assert.assertFalse(pceOpticalNode.checkWL(12));
-        Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
     }
 
     @Test(expected = NullPointerException.class)
@@ -162,19 +167,6 @@ public class PceLinkTest extends AbstractTest {
 
         PceOtnNode pceOtnNode = new PceOtnNode(node, OpenroadmNodeType.SRG, node.getNodeId(), "otn", "serviceType");
 
-        //pceOtnNode.validateXponder(anodeId, znodeId);
-        /*
-        PceOtnNode pceOtnNode =
-                new PceOtnNode(node, OpenroadmNodeType.DEGREE,
-                        new NodeId("optical"),
-                        ServiceFormat.OTM.getName(), "test");*/
-        // pceOtnNode.initXndrTps("mode");
-       /* pceOtnNode.initSrgTps();
-        pceOtnNode.initXndrTps();
-        pceOtnNode.initWLlist();
-        Assert.assertFalse(pceOtnNode.isValid());
-        Assert.assertFalse(pceOtnNode.checkWL(12));
-        Assert.assertTrue(pceOtnNode.checkTP("testTP"));*/
     }
 
     private static LinkBuilder createOTNLink(String srcNode, String destNode, String srcTp, String destTp) {
@@ -213,6 +205,7 @@ public class PceLinkTest extends AbstractTest {
                                 .setSpanlossCurrent(new RatioDB(new BigDecimal("55")))
                                 .setLinkConcatenation(Arrays.asList(
                                         new LinkConcatenationBuilder()
+                                                .setSRLGLength(20L)
                                                 .setFiberType(LinkConcatenation.FiberType.Dsf)
                                                 .build()
                                 )).build()).setOppositeLink(oppositeLinkId);
@@ -249,13 +242,21 @@ public class PceLinkTest extends AbstractTest {
 
     }
 
+    private static LinkBuilder createRoadmToRoadmWithoutLinkLatency(
+            String srcNode, String destNode, String srcTp, String destTp) {
+        Link1Builder link1Builder = new Link1Builder()
+                .setLinkType(OpenroadmLinkType.ROADMTOROADM);
+        return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder);
+
+    }
+
     private List<SupportingNode> geSupportingNodes() {
         List<SupportingNode> supportingNodes1 = new ArrayList<>();
-        /* supportingNodes1
+        supportingNodes1
                 .add(new SupportingNodeBuilder()
                         .setNodeRef(new NodeId("node 1"))
                         .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
-                        .build());*/
+                        .build());
 
         supportingNodes1
                 .add(new SupportingNodeBuilder()
@@ -273,7 +274,8 @@ public class PceLinkTest extends AbstractTest {
         TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder();
 
         tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK);
-        xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+        xpdrTpBldr.addAugmentation(
+                TerminationPoint1.class, tp1Bldr.build());
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 =
                 new Node1Builder().setTerminationPoint(ImmutableList.of(xpdrTpBldr.build())).build();
 
index 6ad7f9d8f59c7c1ef44aee35f9557183d2a962b5..6e74fd57cee9d032bd2f1724ba64968f1c6e88ca 100644 (file)
 
 package org.opendaylight.transportpce.pce.networkanalyzer;
 
+import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.test.AbstractTest;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
 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.rev180226.networks.network.node.SupportingNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
+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.node.TerminationPointBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
 
 
 public class PceOpticalNodeTest extends AbstractTest {
 
     private PceOpticalNode pceOpticalNode;
+    private Node node;
 
     @Before
     public void setUp() {
-        List<SupportingNode> supportingNodes = new ArrayList<>();
-        SupportingNode supportingNodeTest = new SupportingNodeBuilder()
-                .setNodeRef(new NodeId("supporting_node_test"))
-                .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
-                .build();
-        SupportingNode clliNodeTest = new SupportingNodeBuilder()
-                .setNodeRef(new NodeId("clli_node_test"))
-                .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
-                .build();
-        supportingNodes.add(supportingNodeTest);
-        supportingNodes.add(clliNodeTest);
-        NodeId nodeId = new NodeId("node_test");
-        Node node = new NodeBuilder()
-                .setNodeId(nodeId)
-                .setSupportingNode(supportingNodes)
-                .build();
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
+        node = node1Builder.build();
+    }
+
+    @Test
+    public void isValidTest() {
         OpenroadmNodeType nodeType = OpenroadmNodeType.ROADM;
         ServiceFormat serviceFormat = ServiceFormat.Ethernet;
         String pceNodeType = "pceNodeType";
-        pceOpticalNode = new PceOpticalNode(node, nodeType, nodeId, serviceFormat, pceNodeType);
+        pceOpticalNode = new PceOpticalNode(node, nodeType, new NodeId("node_test"), serviceFormat, pceNodeType);
+        Assert.assertTrue(pceOpticalNode.isValid());
     }
 
     @Test
-    public void isValidTest() {
-        Assert.assertTrue(pceOpticalNode.isValid());
+    public void testInitSrgTps() {
+
+        pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.initXndrTps();
+        pceOpticalNode.initWLlist();
+        Assert.assertFalse(pceOpticalNode.isValid());
+        Assert.assertFalse(pceOpticalNode.checkWL(12));
+        Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
+        Assert.assertNull(pceOpticalNode.getAvailableTribPorts());
+        Assert.assertNull(pceOpticalNode.getAvailableTribPorts());
+        Assert.assertNull(pceOpticalNode.getXpdrClient("test"));
+    }
+
+    @Test
+    public void testInitXndrTpSrgTypes() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK);
+        Node specificNode = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(specificNode,
+                OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initWLlist();
+    }
+
+    @Test
+    public void testInitXndrTpDegTypes() {
+        pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initWLlist();
+    }
+
+    @Test
+    public void testInitXndrTpXpondrTypes() {
+        pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.XPONDER, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initWLlist();
+    }
+
+    @Test
+    public void testInitWLlist() {
+        pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initXndrTps();
+    }
+
+    @Test
+    public void testGetRdmSrgClient() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
+        Node specificNode = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(specificNode,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.getRdmSrgClient("7");
+    }
+
+    @Test
+    public void testGetRdmSrgClientEmpty() {
+        NodeBuilder node1Builder = getNodeBuilderEmpty(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
+        Node specificNode = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(specificNode,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.initWLlist();
+        pceOpticalNode.initXndrTps();
+        pceOpticalNode.getRdmSrgClient("7");
+    }
+
+    @Test
+    public void testGetRdmSrgClientDeg() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
+        Node specificNode = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(specificNode,
+                OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.getRdmSrgClient("7");
+    }
+
+    @Test
+    public void testGetRdmSrgClientsrgtxcp() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXCP);
+        Node specificNode = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(specificNode,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.getRdmSrgClient("5");
+    }
+
+    @Test
+    public void testGetRdmSrgClientDegreerxtpp() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.DEGREERXTTP);
+        node = node1Builder.build();
+        pceOpticalNode = new PceOpticalNode(node,
+                OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
+        pceOpticalNode.initSrgTps();
+        pceOpticalNode.getRdmSrgClient("2");
+    }
+
+    private List<SupportingNode> geSupportingNodes() {
+        List<SupportingNode> supportingNodes1 = new ArrayList<>();
+        supportingNodes1
+                .add(new SupportingNodeBuilder()
+                        .setNodeRef(new NodeId("node 1"))
+                        .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
+                        .build());
+
+        supportingNodes1
+                .add(new SupportingNodeBuilder()
+                        .setNodeRef(new NodeId("node 2"))
+                        .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
+                        .build());
+        return supportingNodes1;
+    }
+
+    private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+
+        TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
+        TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
+        xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+        xpdrTpBldr.addAugmentation(
+                org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
+                createAnotherTerminationPoint().build());
+        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1();
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
+                new Node1Builder()
+                        .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+                        .build();
+
+
+        return new NodeBuilder()
+                .setNodeId(new NodeId("node_test"))
+                .withKey(new NodeKey(new NodeId("node 1")))
+                .addAugmentation(
+                        Node1.class, node1Rev180226)
+                .addAugmentation(
+                        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
+                        node1)
+                .setSupportingNode(supportingNodes1);
+    }
+
+    private NodeBuilder getNodeBuilderEmpty(List<SupportingNode> supportingNodes1, OpenroadmTpType openroadmTpType) {
+
+        TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
+        TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
+        xpdrTpBldr.addAugmentation(TerminationPoint1.class, tp1Bldr.build());
+        xpdrTpBldr.addAugmentation(
+                org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1.class,
+                createAnotherTerminationPoint().build());
+
+        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty();
+        org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
+                new Node1Builder()
+                        .setTerminationPoint(ImmutableList.of(xpdrTpBldr.build()))
+                        .build();
+
+
+        return new NodeBuilder()
+                .setNodeId(new NodeId("node_test"))
+                .withKey(new NodeKey(new NodeId("node 1")))
+                .addAugmentation(
+                        Node1.class, node1Rev180226)
+                .addAugmentation(
+                        org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1.class,
+                        node1)
+                .setSupportingNode(supportingNodes1);
+    }
+
+    private org.opendaylight
+            .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() {
+        return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder()
+                .setSrgAttributes(getSrgAttributes())
+                .setDegreeAttributes(getDegAttributes())
+                .build();
+    }
+
+    private org.opendaylight
+            .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() {
+        return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder()
+                .setSrgAttributes(getEmptySrgAttributes())
+                .setDegreeAttributes(getEmptyDegAttributes())
+                .build();
+    }
+
+    private DegreeAttributes getDegAttributes() {
+        return (new DegreeAttributesBuilder())
+                .setAvailableWavelengths(
+                        Collections.singletonList(new AvailableWavelengthsBuilder()
+                                .setIndex(20L)
+                                .build()))
+                .build();
+    }
+
+    private SrgAttributes getSrgAttributes() {
+        return new SrgAttributesBuilder().setAvailableWavelengths(create96AvalWaveSrg()).build();
+    }
+
+    private DegreeAttributes getEmptyDegAttributes() {
+        return (new DegreeAttributesBuilder())
+                .setAvailableWavelengths(
+                        new ArrayList<>())
+                .build();
+    }
+
+    private SrgAttributes getEmptySrgAttributes() {
+        List<org.opendaylight.yang.gen
+                .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
+                waveList = new ArrayList<>();
+        return new SrgAttributesBuilder().setAvailableWavelengths(waveList).build();
+    }
+
+    private TerminationPointBuilder getTerminationPointBuilder() {
+        return new TerminationPointBuilder()
+                .setTpId(new TpId("2"));
+    }
+
+    private TerminationPoint1Builder getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) {
+
+        return new TerminationPoint1Builder()
+                .setTpType(openroadmTpType);
+
     }
 
+    private org.opendaylight.yang.gen
+            .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint() {
+        return new org.opendaylight
+                .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder()
+                .setTpType(OpenroadmTpType.XPONDERNETWORK)
+                .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
+                .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
+                .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
+                .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(new ArrayList<>()).build())
+                .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(new ArrayList<>()).build())
+                .setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build())
+                .setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build())
+                .setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder()
+                        .setTailEquipmentId("destNode" + "--" + "destTp").build());
+    }
+
+    private static List<org.opendaylight.yang.gen
+            .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths> create96AvalWaveSrg() {
+
+        List<org.opendaylight.yang.gen
+                .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengths>
+                waveList = new ArrayList<>();
+
+        for (int i = 1; i < 97; i++) {
+            org.opendaylight.yang.gen
+                    .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder
+                    avalBldr = new org.opendaylight.yang.gen
+                    .v1.http.org.openroadm.srg.rev181130.srg.node.attributes.AvailableWavelengthsBuilder()
+                    .setIndex(Uint32.valueOf(i))
+                    .withKey(new org.opendaylight.yang.gen.v1.http.org.openroadm.srg.rev181130.srg.node.attributes
+                            .AvailableWavelengthsKey(Uint32.valueOf(i)));
+            waveList.add(avalBldr.build());
+        }
+        return waveList;
+    }
 }