add pceOtnNodeTest class 55/89555/1
authorShaabanEltanany <shaaban.eltanany.ext@orange.com>
Sun, 3 May 2020 13:27:03 +0000 (15:27 +0200)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Mon, 4 May 2020 07:03:13 +0000 (07:03 +0000)
JIRA: TRNSPRTPCE-209
Signed-off-by: ShaabanEltanany <shaaban.eltanany.ext@orange.com>
Change-Id: I72860d61cd9a453982cd7634631652fc3950bc9b
(cherry picked from commit 9f2b937eb5fb01c7a2c94495037d9c1621366b9d)

pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java [new file with mode: 0644]

diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceOtnNodeTest.java
new file mode 100644 (file)
index 0000000..052d44b
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+ * Copyright © 2020 Orange, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+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.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 PceOtnNodeTest extends AbstractTest {
+
+    private PceOtnNode pceOtnNode;
+    private Node node;
+
+    @Before
+    public void setUp() {
+        NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
+        node = node1Builder.build();
+        pceOtnNode =
+                new PceOtnNode(node, OpenroadmNodeType.ROADM,
+                        new NodeId("optical"), ServiceFormat.OMS.getName(), "test");
+
+    }
+
+    @Test
+    public void test() {
+        pceOtnNode.initXndrTps("mode");
+    }
+
+    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;
+    }
+
+}