package org.opendaylight.transportpce.pce.graph;
-import static org.junit.Assert.fail;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.fail;
import com.google.common.collect.ImmutableMap;
import com.google.gson.stream.JsonReader;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import org.mockito.MockitoAnnotations;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.MountPoint;
import org.opendaylight.transportpce.common.mapping.PortMappingVersion710;
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.common.network.NetworkTransactionService;
-import org.opendaylight.transportpce.common.network.RequestProcessor;
import org.opendaylight.transportpce.pce.constraints.PceConstraints;
import org.opendaylight.transportpce.pce.networkanalyzer.PceCalculation;
import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
import org.opendaylight.transportpce.pce.networkanalyzer.PceNode;
-//import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
import org.opendaylight.transportpce.pce.networkanalyzer.PceOtnNode;
import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
import org.opendaylight.transportpce.pce.utils.JsonUtil;
private PortMappingVersion221 portMappingVersion22;
private PortMappingVersion121 portMappingVersion121;
private PortMapping portMapping;
- private RequestProcessor reqProc;
private NetworkTransactionService netTransServ;
// Test of integration for PceGraph
- @Before
- public void setUp() throws InterruptedException, ExecutionException {
+ @BeforeEach
+ void setUp() throws InterruptedException, ExecutionException {
// PortMapping is instantiated to create the mapping of the different nodes in the topology
this.dataBroker = getNewDataBroker();
this.mountPoint = new MountPointStub(dataBroker);
.createWithDataStoreUtil(getDataStoreContextUtil());
try (Reader reader = new FileReader(CATALOG_FILE, StandardCharsets.UTF_8)) {
NormalizedNode normalizedNode = dataObjectConverter
- .transformIntoNormalizedNode(reader).get();
+ .transformIntoNormalizedNode(reader)
+ .get();
omCatalog = (OperationalModeCatalog) getDataStoreContextUtil()
- .getBindingDOMCodecServices().fromNormalizedNode(YangInstanceIdentifier
- .of(OperationalModeCatalog.QNAME), normalizedNode)
+ .getBindingDOMCodecServices()
+ .fromNormalizedNode(
+ YangInstanceIdentifier.of(OperationalModeCatalog.QNAME), normalizedNode)
.getValue();
@NonNull
WriteTransaction newWriteOnlyTransaction = dataBroker.newWriteOnlyTransaction();
}
// The mapping corresponding to the topology is directly populated from a file in the Dta Store
try (Reader reader = new FileReader(MAPPING_FILE, StandardCharsets.UTF_8)) {
- NormalizedNode normalizedNode = dataObjectConverter
- .transformIntoNormalizedNode(reader).get();
+ NormalizedNode normalizedNode = dataObjectConverter.transformIntoNormalizedNode(reader).get();
networkNode = (org.opendaylight.yang.gen.v1.http.org.opendaylight
- .transportpce.portmapping.rev220316.Network) getDataStoreContextUtil()
- .getBindingDOMCodecServices().fromNormalizedNode(YangInstanceIdentifier
- .of(org.opendaylight.yang.gen.v1.http.org.opendaylight
+ .transportpce.portmapping.rev220316.Network) getDataStoreContextUtil()
+ .getBindingDOMCodecServices()
+ .fromNormalizedNode(
+ YangInstanceIdentifier.of(org.opendaylight.yang.gen.v1.http.org.opendaylight
.transportpce.portmapping.rev220316.Network.QNAME), normalizedNode)
.getValue();
@NonNull
// The topology (openROADM-Network and openROADM-topology layers) is loaded from a file
JsonReader networkReader = null;
JsonReader topoReader = null;
-
try {
// load openroadm-network
- Reader gnpyNetwork = new FileReader("src/test/resources/gnpy/gnpy_network.json",
- StandardCharsets.UTF_8);
+ Reader gnpyNetwork = new FileReader("src/test/resources/gnpy/gnpy_network.json", StandardCharsets.UTF_8);
networkReader = new JsonReader(gnpyNetwork);
Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader,
QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.UNDERLAY_NETWORK_ID);
// load openroadm-topology
- Reader gnpyTopo = new FileReader("src/test/resources/topologyData/or-base-topology.json",
- StandardCharsets.UTF_8);
+ Reader gnpyTopo =
+ new FileReader("src/test/resources/topologyData/or-base-topology.json", StandardCharsets.UTF_8);
topoReader = new JsonReader(gnpyTopo);
- networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
+ networks = (Networks) JsonUtil
+ .getInstance()
+ .getDataObjectFromJson(
+ topoReader,
QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
saveOpenRoadmNetwork(networks.getNetwork().values().iterator().next(), NetworkUtils.OVERLAY_NETWORK_ID);
} catch (IOException | InterruptedException | ExecutionException e) {
LOG.error("Cannot init test ", e);
fail("Cannot init test ");
-
} finally {
try {
if (networkReader != null) {
LOG.warn("Cannot close reader ", e);
}
}
-
// init PceHardContraints
pceHardConstraints = new PceConstraints();
-
this.rc = new PceResult();
- this.reqProc = new RequestProcessor(dataBroker);
- this.netTransServ = new NetworkTransactionImpl(reqProc);
-
+ this.netTransServ = new NetworkTransactionImpl(dataBroker);
LOG.info("The value of the mapping is {}", portMapping);
-
}
// TOPOLOGY ON WHICH TEST ARE BASED
// |_____| |_____|
//
@Test
- public void clacPath100GE() {
-
+ void clacPath100GE() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(100), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "Client-1", "XPONDER-3", "Node3", "Client-1"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(3.0919881995992924));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(3.0919881995992924));
}
@Test
- public void clacPathOTUC2() {
-
+ void clacPathOTUC2() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(200), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "XPDR-NW1-TX", "XPONDER-4", "Node4", "XPDR-NW1-RX"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_OTUC2, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(1.1559963686478447));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(1.1559963686478447));
}
@Test
- public void clacPathOTUC3() {
-
+ void clacPathOTUC3() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(300), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "XPDR-NW1-TX", "XPONDER-3", "Node3", "XPDR-NW1-RX"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_OTUC3, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(0.3351048800367167));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(0.3351048800367167));
}
@Test
- public void clacUnfeasiblePath400GE() {
-
+ void clacUnfeasiblePath400GE() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(400), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "Client-1", "XPONDER-3", "Node3", "Client-1"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_400GE, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), false);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(0.0));
+ assertEquals(pceGraph.calcPath(), false);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(0.0));
}
@Test
- public void clacPath400GE() {
-
+ void clacPath400GE() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(400), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "Client-1", "XPONDER-5", "Node5", "Client-1"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_400GE, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(1.4432381874659086));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(1.4432381874659086));
}
@Test
- public void clacPathOTUC4() {
-
+ void clacPathOTUC4() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(400), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "XPDR-NW1-TX", "XPONDER-5", "Node5", "XPDR-NW1-RX"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_OTUC4, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(1.4432381874659086));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(1.4432381874659086));
}
@Test
- public void clacOpticalTunnelOTUC4() {
-
+ void clacOpticalTunnelOTUC4() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(400), ServiceFormat.OC,
"OpenROADM-1", "Node1", "DEG1-PP-TX", "OpenROADM-5", "Node5", "DEG3-PP-TX"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_OTUC4, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(0.0));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(0.0));
}
@Test
- public void clacPath100GEnoPort() {
-
+ void clacPath100GEnoPort() {
PceCalculation pceCalc = new PceCalculation(getPCE2Request(Uint32.valueOf(100), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "Client-1", "XPONDER-3", "Node3", "Client-1"),
netTransServ, pceHardConstraints, null, rc, portMapping);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
null, rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getmargin()),
- Optional.ofNullable(3.0919881995992924));
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getmargin()), Optional.ofNullable(3.0919881995992924));
}
@Test
- public void clacPathPropagationDelay() {
+ void clacPathPropagationDelay() {
PceCalculation pceCalc = new PceCalculation(getPCE1Request(Uint32.valueOf(100), ServiceFormat.Ethernet,
"XPONDER-1", "Node1", "Client-1", "XPONDER-3", "Node3", "Client-1"),
netTransServ, pceHardConstraints, null, rc, portMapping);
null, rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ);
pceGraph.setConstrains(pceHardConstraints, null);
- Assert.assertEquals(pceGraph.calcPath(), true);
- Assert.assertEquals(Optional.ofNullable(pceGraph.getPathAtoZ().get(2).getLatency()),
+ assertEquals(pceGraph.calcPath(), true);
+ assertEquals(Optional.ofNullable(pceGraph.getPathAtoZ().get(2).getLatency()),
Optional.ofNullable(1.0));
- Assert.assertEquals(pceGraph.getReturnStructure().getRate(), 100);
+ assertEquals(pceGraph.getReturnStructure().getRate(), 100);
}
- @Test(expected = Exception.class)
- public void clacPath10GE2() {
- pceGraph = getOtnPceGraph(StringConstants.SERVICE_TYPE_10GE);
- Assert.assertEquals(pceGraph.calcPath(), false);
+ //FIXME: Review this test. Getting NPE is never normal!
+ @Test
+ void clacPath10GE2() {
+ assertThrows(NullPointerException.class, () -> {
+ getOtnPceGraph(StringConstants.SERVICE_TYPE_10GE);
+ });
+// assertEquals(pceGraph.calcPath(), false);
}
- @Test(expected = Exception.class)
- public void clacPath1GE() {
- pceGraph = getOtnPceGraph(StringConstants.SERVICE_TYPE_1GE);
- Assert.assertEquals(pceGraph.calcPath(), false);
+ //FIXME: Review this test. Getting NPE is never normal!
+ @Test
+ void clacPath1GE() {
+ assertThrows(NullPointerException.class, () -> {
+ getOtnPceGraph(StringConstants.SERVICE_TYPE_1GE);
+ });
+// assertEquals(pceGraph.calcPath(), false);
}
private PceGraph getOtnPceGraph(String type) {
// Build Link
- link1 = NodeUtils.createRoadmToRoadm("optical",
- "optical2",
- "DEG1-TTP-TX", "DEG1-TTP-RX").build();
+ link1 = NodeUtils.createRoadmToRoadm("optical", "optical2", "DEG1-TTP-TX", "DEG1-TTP-RX").build();
node = NodeUtils.getOTNNodeBuilder(NodeUtils.geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK).build();
// init PceHardContraints
pceHardConstraints = new PceConstraints();
// pceHardConstraints.setp
- allPceNodes = Map.of(new NodeId("optical"), pceOtnNode,
+ allPceNodes = Map.of(
+ new NodeId("optical"), pceOtnNode,
new NodeId("optical2"), pceOtnNode2);
- rc = new PceResult();
- PceGraph otnPceGraph = new PceGraph(pceOtnNode, pceOtnNode2, allPceNodes,
- allPceLinks, pceHardConstraints,
- null, rc,
- type, null);
-
- return otnPceGraph;
+ return new PceGraph(pceOtnNode, pceOtnNode2, allPceNodes, allPceLinks, pceHardConstraints, null,
+ new PceResult(), type, null);
}
private void saveOpenRoadmNetwork(Network network, String networkId)
}
public static Node createNetworkNode(String nodeId, OpenroadmNodeType nodeType) {
-
- Node1Builder node1Bldr = new Node1Builder()
- .setOpenroadmVersion(OpenroadmVersionType._221);
- var node2Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
- .setNodeType(nodeType);
SupportingNode supportingNode = new SupportingNodeBuilder()
.setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
.setNodeRef(new NodeId("node1"))
.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID),
new NodeId("node1")))
.build();
-
return new NodeBuilder()
.setNodeId(new NodeId(nodeId))
.withKey(new NodeKey(new NodeId(nodeId)))
.setSupportingNode(ImmutableMap.of(supportingNode.key(), supportingNode))
- .addAugmentation(node1Bldr.build())
- .addAugmentation(node2Bldr.build())
+ .addAugmentation(
+ new Node1Builder().setOpenroadmVersion(OpenroadmVersionType._221).build())
+ .addAugmentation(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
+ .setNodeType(nodeType).build())
.build();
}
}
public static Node createTopologyNode(String nodeId, OpenroadmNodeType nodeType) {
-
- var node1Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1Builder()
- .setXpdrAttributes(null);
- var node2Bldr = new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
- .setNodeType(nodeType);
SupportingNode supportingNode = new SupportingNodeBuilder()
.setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
.setNodeRef(new NodeId("node1"))
.withKey(new SupportingNodeKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID),
new NodeId("node1")))
.build();
-
return new NodeBuilder()
.setNodeId(new NodeId(nodeId))
.withKey(new NodeKey(new NodeId(nodeId)))
.setSupportingNode(ImmutableMap.of(supportingNode.key(), supportingNode))
- .addAugmentation(node1Bldr.build())
- .addAugmentation(node2Bldr.build())
+ .addAugmentation(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1Builder()
+ .setXpdrAttributes(null).build())
+ .addAugmentation(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder()
+ .setNodeType(nodeType).build())
.build();
}
public static PathComputationRequestInput getPCE1Request(Uint32 rate, ServiceFormat serviceFormat, String aaNodeId,
- String aaClliId, String aaPortName, String zzNodeId, String zzClliId, String zzPortName) {
-
+ String aaClliId, String aaPortName, String zzNodeId, String zzClliId, String zzPortName) {
return new PathComputationRequestInputBuilder()
.setServiceName("service1")
.setResourceReserve(true)
}
public static PathComputationRequestInput getPCE2Request(Uint32 rate, ServiceFormat serviceFormat, String aaNodeId,
- String aaClliId, String aaPortName, String zzNodeId, String zzClliId, String zzPortName) {
-
+ String aaClliId, String aaPortName, String zzNodeId, String zzClliId, String zzPortName) {
return new PathComputationRequestInputBuilder()
.setServiceName("service1")
.setResourceReserve(true)
.build())
.build();
}
-
}