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;
import org.opendaylight.transportpce.test.converter.JSONDataObjectConverter;
import org.opendaylight.transportpce.test.stub.MountPointServiceStub;
import org.opendaylight.transportpce.test.stub.MountPointStub;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.request.input.ServiceAEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.path.computation.request.input.ServiceZEndBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.PathComputationRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.PathComputationRequestInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.PceConstraintMode;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceAEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev240205.path.computation.request.input.ServiceZEndBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev230526.service.port.PortBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev211210.OpenroadmVersionType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev211210.Node1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.TerminationPoint1Builder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.XpdrNetworkAttributesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmNodeType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmTpType;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.CoRoutingBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co.routing.ServiceIdentifierListBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.HardConstraintsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.routing.constraints.SoftConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev230526.OpenroadmVersionType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.rev230526.Node1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.TerminationPoint1Builder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev230526.networks.network.node.termination.point.XpdrNetworkAttributesBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.OpenroadmNodeType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev230526.OpenroadmTpType;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.constraints.CoRoutingBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.constraints.co.routing.ServiceIdentifierListBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.routing.constraints.HardConstraintsBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209.routing.constraints.SoftConstraintsBuilder;
import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.OperationalModeCatalog;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.OperationalModeCatalog;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.PceMetric;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.RxDirectionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.service.endpoint.sp.TxDirectionBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
private PceResult rc = null;
private Map<NodeId, PceNode> allPceNodes = null;
private Map<LinkId, PceLink> allPceLinks = null;
- private static final String CATALOG_FILE = "src/test/resources/apidocCatalog10_1OptSpecV5_1.json";
+ private static final String CATALOG_FILE = "src/test/resources/apidocCatalog12_0-OptSpecV5_1.json";
private static final String MAPPING_FILE = "src/test/resources/topologyData/portMapping2.json";
private static OperationalModeCatalog omCatalog;
private static org.opendaylight.yang.gen.v1.http.org.opendaylight
- .transportpce.portmapping.rev220316.Network networkNode;
+ .transportpce.portmapping.rev231221.Network networkNode;
private DataBroker dataBroker;
private MountPoint mountPoint;
private MountPointService mountPointService;
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)
+ .orElseThrow();
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).orElseThrow();
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.QNAME), normalizedNode)
+ .transportpce.portmapping.rev231221.Network) getDataStoreContextUtil()
+ .getBindingDOMCodecServices()
+ .fromNormalizedNode(
+ YangInstanceIdentifier.of(org.opendaylight.yang.gen.v1.http.org.opendaylight
+ .transportpce.portmapping.rev231221.Network.QNAME), normalizedNode)
.getValue();
@NonNull
WriteTransaction newWriteOnlyTransaction = dataBroker.newWriteOnlyTransaction();
newWriteOnlyTransaction
.put(LogicalDatastoreType.CONFIGURATION,
InstanceIdentifier.create(org.opendaylight.yang.gen.v1.http.org.opendaylight
- .transportpce.portmapping.rev220316.Network.class),
+ .transportpce.portmapping.rev231221.Network.class),
networkNode);
newWriteOnlyTransaction.commit().get();
} catch (IOException e) {
// 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"));
+ Networks networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(networkReader, Networks.QNAME);
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);
topoReader = new JsonReader(gnpyTopo);
- networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader,
- QName.create("urn:ietf:params:xml:ns:yang:ietf-network", "2018-02-26", "networks"));
+ networks = (Networks) JsonUtil.getInstance().getDataObjectFromJson(topoReader, Networks.QNAME);
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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_OTUC2, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_OTUC3, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_400GE, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_400GE, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_OTUC4, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_OTUC4, netTransServ, PceConstraintMode.Loose);
+ 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);
pceCalc.retrievePceNetwork();
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));
+ rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ, PceConstraintMode.Loose);
+ 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);
pceHardConstraints.setPceMetrics(PceMetric.PropagationDelay);
pceGraph = new PceGraph(pceCalc.getaendPceNode(), pceCalc.getzendPceNode(),
pceCalc.getAllPceNodes(), pceCalc.getAllPceLinks(), pceHardConstraints,
- null, rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ);
- pceGraph.setConstrains(pceHardConstraints, null);
+ rc, StringConstants.SERVICE_TYPE_100GE_T, netTransServ, PceConstraintMode.Loose);
+ pceGraph.setConstrains(pceHardConstraints);
- 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();
pceOtnNode2.checkAvailableTribSlot();
pceLink1 = new PceLink(link1, pceOtnNode, pceOtnNode2);
- pceLink1.setClient("XPONDER-CLIENT");
+ pceLink1.setClientA("XPONDER-CLIENT");
pceLink1.getDestId();
pceOtnNode.addOutgoingLink(pceLink1);
// 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,
+ new PceResult(), type, null, PceConstraintMode.Loose);
}
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.rev230526.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.rev230526.Node1Builder()
+ .setXpdrAttributes(null).build())
+ .addAugmentation(
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev230526.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)
.setCustomerCode(Set.of("Some customer-code"))
.setCoRouting(new CoRoutingBuilder()
.setServiceIdentifierList(Map.of(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
- .routing.ServiceIdentifierListKey("Some existing-service"),
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
.build())
.build())
.setCustomerCode(Set.of("Some customer-code"))
.setCoRouting(new CoRoutingBuilder()
.setServiceIdentifierList(Map.of(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
- .routing.ServiceIdentifierListKey("Some existing-service"),
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
.build())
.build())
}
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)
.setCustomerCode(Set.of("Some customer-code"))
.setCoRouting(new CoRoutingBuilder()
.setServiceIdentifierList(Map.of(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
- .routing.ServiceIdentifierListKey("Some existing-service"),
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
.build())
.build())
.setCustomerCode(Set.of("Some customer-code"))
.setCoRouting(new CoRoutingBuilder()
.setServiceIdentifierList(Map.of(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.constraints.co
- .routing.ServiceIdentifierListKey("Some existing-service"),
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev221209
+ .constraints.co.routing.ServiceIdentifierListKey("Some existing-service"),
new ServiceIdentifierListBuilder().setServiceIdentifier("Some existing-service").build()))
.build())
.build())
.build();
}
-
}