Junit tests for network model
[transportpce.git] / networkmodel / src / test / java / org / opendaylight / transportpce / networkmodel / util / test / NetworkmodelTestUtil.java
diff --git a/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java b/networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/util/test/NetworkmodelTestUtil.java
new file mode 100644 (file)
index 0000000..90e7d38
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ * Copyright © 2020 Orange Labs, 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.networkmodel.util.test;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.Nodes;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.NodesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.Mapping;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.MappingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev200429.network.nodes.NodeInfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.NodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.PortQual;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.XpdrNodeTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.If100GE;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.IfOCH;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.port.types.rev181019.SupportedIfCapability;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public final class NetworkmodelTestUtil {
+
+    private static final Logger LOG = LoggerFactory.getLogger(NetworkmodelTestUtil.class);
+
+    public static Nodes createMappingForRdm(String nodeId, String clli, int degNb, int srgNb) {
+        List<Mapping> mappingList = new ArrayList<>();
+        createDegreeMappings(mappingList, 1, degNb);
+        createSrgMappings(mappingList, 1, srgNb);
+        Nodes mappingNode = new NodesBuilder()
+            .setNodeId(nodeId)
+            .setNodeInfo(new NodeInfoBuilder().setNodeType(NodeTypes.Rdm).setNodeClli(clli).build())
+            .setMapping(mappingList)
+            .build();
+        return mappingNode;
+    }
+
+    public static Nodes createMappingForXpdr(String nodeId, String clli, int networkPortNb, int clientPortNb,
+        XpdrNodeTypes xpdrNodeType) {
+        List<Mapping> mappingList = new ArrayList<>();
+        createXpdrMappings(mappingList, networkPortNb, clientPortNb, xpdrNodeType);
+        Nodes mappingNode = new NodesBuilder()
+            .setNodeId(nodeId)
+            .setNodeInfo(new NodeInfoBuilder().setNodeType(NodeTypes.Xpdr).setNodeClli(clli).build())
+            .setMapping(mappingList)
+            .build();
+        LOG.info("mapping = {}", mappingNode.toString());
+        return mappingNode;
+    }
+
+    private static List<Mapping> createDegreeMappings(List<Mapping> mappingList, int degNbStart, int degNbStop) {
+        for (int i = degNbStart; i <= degNbStop; i++) {
+            Mapping mapping = new MappingBuilder()
+                .setLogicalConnectionPoint("DEG" + i + "-TTP-TXRX")
+                .setPortDirection("bidirectional")
+                .setSupportingPort("L1")
+                .setSupportingCircuitPackName(i + "/0")
+                .setSupportingOts("OTS-DEG" + i + "-TTP-TXRX")
+                .setSupportingOms("OMS-DEG" + i + "-TTP-TXRX")
+                .build();
+            mappingList.add(mapping);
+        }
+        return mappingList;
+    }
+
+    private static List<Mapping> createSrgMappings(List<Mapping> mappingList, int srgNbStart, int srgNbStop) {
+        for (int i = srgNbStart; i <= srgNbStop; i++) {
+            for (int j = 1; j <= 4; j++) {
+                Mapping mapping = new MappingBuilder()
+                    .setLogicalConnectionPoint("SRG" + i + "-PP" + j + "-TXRX")
+                    .setPortDirection("bidirectional")
+                    .setSupportingPort("C" + j)
+                    .setSupportingCircuitPackName(3 + i + "/0")
+                    .build();
+                mappingList.add(mapping);
+            }
+        }
+        return mappingList;
+    }
+
+    private static List<Mapping> createXpdrMappings(List<Mapping> mappingList, int networkPortNb, int clientPortNb,
+        XpdrNodeTypes xpdrNodeType) {
+        for (int i = 1; i <= networkPortNb; i++) {
+            List<Class<? extends SupportedIfCapability>> supportedIntf = new ArrayList<>();
+            supportedIntf.add(IfOCH.class);
+            MappingBuilder mappingBldr = new MappingBuilder()
+                .setLogicalConnectionPoint("XPDR1-NETWORK" + i)
+                .setPortDirection("bidirectional")
+                .setSupportingPort("1")
+                .setSupportedInterfaceCapability(supportedIntf)
+                .setConnectionMapLcp("XPDR1-CLIENT" + i)
+                .setPortQual(PortQual.XpdrNetwork.getName())
+                .setSupportingCircuitPackName("1/0/" + i + "-PLUG-NET");
+            if (xpdrNodeType != null) {
+                mappingBldr.setXponderType(xpdrNodeType);
+            }
+            mappingList.add(mappingBldr.build());
+        }
+        for (int i = 1; i <= clientPortNb; i++) {
+            List<Class<? extends SupportedIfCapability>> supportedIntf = new ArrayList<>();
+            supportedIntf.add(If100GE.class);
+            Mapping mapping = new MappingBuilder()
+                .setLogicalConnectionPoint("XPDR1-CLIENT" + i)
+                .setPortDirection("bidirectional")
+                .setSupportingPort("C1")
+                .setSupportedInterfaceCapability(supportedIntf)
+                .setConnectionMapLcp("XPDR1-NETWORK" + i)
+                .setPortQual(PortQual.XpdrClient.getName())
+                .setSupportingCircuitPackName("1/0/" + i + "-PLUG-CLIENT")
+                .build();
+            mappingList.add(mapping);
+        }
+        return mappingList;
+    }
+
+    private NetworkmodelTestUtil() {
+    }
+}