From 43a4ee16c3edd94339947da89a1a7c7c730a0185 Mon Sep 17 00:00:00 2001 From: AhmedEldeeb50 Date: Wed, 13 May 2020 15:30:56 +0200 Subject: [PATCH] improve test cases in PCE contraints JIRA: TRNSPRTPCE-209 Signed-off-by: AhmedEldeeb50 Change-Id: I338e6ff0ab31f8ee0889a1a9958d30aefe11ad1a --- .../pce/PcePathDescriptionTest.java | 111 ------------------ .../constraints/PceConstraintsCalcTest.java | 33 +++++- .../transportpce/pce/graph/PceGraphTest.java | 25 +++- .../networkanalyzer/PceCalculationTest.java | 33 +++++- .../transportpce/pce/utils/PceTestData.java | 30 ++--- 5 files changed, 94 insertions(+), 138 deletions(-) delete mode 100644 pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTest.java diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTest.java deleted file mode 100644 index 6b04f1a33..000000000 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/PcePathDescriptionTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * 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; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.opendaylight.transportpce.common.NetworkUtils; -import org.opendaylight.transportpce.pce.networkanalyzer.PceLink; -import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode; -import org.opendaylight.transportpce.pce.networkanalyzer.PceResult; -import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; -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.LinkId; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder; - - - -public class PcePathDescriptionTest extends AbstractTest { - - private List pathAtoZ = null; - private List pathZtoA = null; - private PceResult rc; - private Map allPceLinks = null; - private static PcePathDescription pcePathDescription = null; - private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s"; - private PceSendingPceRPCs pceSendingPceRPCs; - - @Before - public void setup() { - - Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build(); - - - /*PceOtnNode pceOtnNode = - new PceOtnNode(node, OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OTM.getName(), "test");*/ - //PceLink pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); - /* rc = new PceResult(); - - pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/ - } - - - @Test - public void buildPceOpticalNodeRoadmTest() { - 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")); - } - - private List geSupportingNodes() { - List supportingNodes1 = new ArrayList<>(); - - supportingNodes1 - .add(new SupportingNodeBuilder() - .setNodeRef(new NodeId("node 2")) - .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)) - .build()); - return supportingNodes1; - } - - private NodeBuilder getNodeBuilder(List supportingNodes1) { - return new NodeBuilder() - .setNodeId(new NodeId("node 1")) - .withKey(new NodeKey(new NodeId("node 1"))) - .setSupportingNode(supportingNodes1); - } - - private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) { - //create source link - SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp); - //create destination link - DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode)) - .setDestTp(destTp); - LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp)); - return new LinkBuilder() - .setSource(ietfSrcLinkBldr.build()) - .setDestination(ietfDestLinkBldr.build()) - .setLinkId(linkId) - .withKey(new LinkKey(linkId)); - } -} diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsCalcTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsCalcTest.java index b6881c131..49f241a34 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsCalcTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/constraints/PceConstraintsCalcTest.java @@ -29,21 +29,30 @@ public class PceConstraintsCalcTest extends AbstractTest { @Before public void setup() throws Exception { // networkTransactionService = Mockito.mock(NetworkTransactionService.class); + PceTestUtils.writeNetworkIntoDataStore(dataBroker, this.getDataStoreContextUtil(), + TransactionUtils.getNetworkForSpanLoss()); networkTransactionService = new NetworkTransactionImpl(new RequestProcessor(dataBroker)); - PceTestUtils.writeNetworkIntoDataStore(dataBroker, dataStoreContext, TransactionUtils.getNetworkForSpanLoss()); + } @Test public void testNoHardOrSoftConstrainsExists() { + PceTestData.getPCE_test2_request_54().getSoftConstraints(); pceConstraintsCalc = new PceConstraintsCalc(PceTestData .getEmptyPCERequest(), networkTransactionService); } - @Test(expected = NullPointerException.class) + @Test() public void testHardConstrainsExists() { pceConstraintsCalc = new PceConstraintsCalc(PceTestData - .getPCE_test2_request_54(), networkTransactionService); + .getPCE_simpletopology_test1_requestSetHardAndSoftConstrains(), networkTransactionService); + } + + @Test() + public void testHardConstrainsExists1() { + pceConstraintsCalc = new PceConstraintsCalc(PceTestData + .getPathComputationRequestInputWithCoRoutingOrGeneral(), networkTransactionService); } @Test @@ -52,4 +61,22 @@ public class PceConstraintsCalcTest extends AbstractTest { .getPCERequest(), networkTransactionService); } + @Test(expected = Exception.class) + public void testHardConstrainsExists2() { + pceConstraintsCalc = new PceConstraintsCalc(PceTestData + .build_diversity_from_request(PceTestData.getPCERequest()), networkTransactionService); + } + + @Test() + public void testHardConstrainsExists3() { + pceConstraintsCalc = new PceConstraintsCalc(PceTestData + .getEmptyPCERequestServiceNameWithRequestId(), networkTransactionService); + } + + @Test(expected = Exception.class) + public void testHardConstrainsExists4() { + pceConstraintsCalc = new PceConstraintsCalc(PceTestData + .getPCE_test2_request_54(), networkTransactionService); + } + } diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java index 5eb93435a..85a956c23 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/graph/PceGraphTest.java @@ -9,6 +9,7 @@ package org.opendaylight.transportpce.pce.graph; import java.util.Map; +import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -22,6 +23,7 @@ import org.opendaylight.transportpce.pce.utils.PceTestData; import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput; import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType; import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp; 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.topology.rev180226.networks.network.Link; @@ -47,16 +49,19 @@ public class PceGraphTest { "OpenROADM-3-1-DEG1", "DEG1-TTP-TX", "DEG1-TTP-RX").build(); - node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build(); + node = NodeUtils.getNodeBuilder(NodeUtils.geSupportingNodes()).build(); pceOpticalNode = new PceOpticalNode(node, OpenroadmNodeType.SRG, new NodeId("OpenROADM-3-2-DEG1"), ServiceFormat.Ethernet, "DEGREE"); + pceOpticalNode.checkWL(1); + pceOpticalNode.checkWL(2); pceOpticalNode2 = new PceOpticalNode(node, OpenroadmNodeType.SRG, new NodeId("OpenROADM-3-1-DEG1"), ServiceFormat.Ethernet, "DEGREE"); - + pceOpticalNode2.checkWL(1); + pceOpticalNode2.checkWL(2); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode2); pceLink.setClient("XPONDER-CLIENT"); @@ -82,7 +87,19 @@ public class PceGraphTest { } @Test - public void clacPathFalse() { + public void clacPathPropagationDelay() { + pceHardConstraints.setPceMetrics(RoutingConstraintsSp.PceMetric.PropagationDelay); + pceGraph.setConstrains(pceHardConstraints, null); + + Assert.assertEquals(pceGraph.calcPath(), true); + Assert.assertEquals(Optional.ofNullable(pceGraph.getPathAtoZ().get(0).getLatency()), + Optional.ofNullable(30.0)); + Assert.assertEquals(pceGraph.getReturnStructure().getRate(), -1); + } + + @Test + public void clacPath100GE() { + pceOpticalNode.checkWL(1); pceGraph = new PceGraph(pceOpticalNode, pceOpticalNode2, allPceNodes, pceHardConstraints, null, rc, @@ -92,7 +109,7 @@ public class PceGraphTest { } @Test(expected = Exception.class) - public void clacPath1GE() { + public void clacPath10GE() { pceGraph = new PceGraph(pceOpticalNode, pceOpticalNode2, allPceNodes, pceHardConstraints, null, rc, diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java index 39f0e7096..74cfbab5b 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculationTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.transportpce.pce.networkanalyzer; +import java.util.concurrent.ExecutionException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -14,33 +15,55 @@ import org.opendaylight.transportpce.common.network.NetworkTransactionImpl; import org.opendaylight.transportpce.common.network.RequestProcessor; import org.opendaylight.transportpce.pce.constraints.PceConstraintsCalc; import org.opendaylight.transportpce.pce.utils.PceTestData; +import org.opendaylight.transportpce.pce.utils.PceTestUtils; +import org.opendaylight.transportpce.pce.utils.TransactionUtils; import org.opendaylight.transportpce.test.AbstractTest; + public class PceCalculationTest extends AbstractTest { private PceCalculation pceCalculation; + private PceConstraintsCalc pceConstraintsCalc; + private PceResult pceResult = new PceResult(); // setup object @Before - public void setUp() { - PceResult pceResult = new PceResult(); + public void setUp() throws ExecutionException, InterruptedException { pceResult.setRC("200"); + PceTestUtils.writeNetworkIntoDataStore(this.getDataBroker(), this.getDataStoreContextUtil(), + TransactionUtils.getNetworkForSpanLoss()); + pceConstraintsCalc = new PceConstraintsCalc(PceTestData.getPCERequest(), + new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker()))); - PceConstraintsCalc pceConstraintsCalc = new PceConstraintsCalc(PceTestData - .getPCERequest(), new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker()))); pceCalculation = new PceCalculation( PceTestData.getPCERequest(), new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())), pceConstraintsCalc.getPceHardConstraints(), pceConstraintsCalc.getPceSoftConstraints(), pceResult); + } + @Test + public void testPceCalculationValues() { + pceCalculation.retrievePceNetwork(); + Assert.assertEquals("100GE", pceCalculation.getServiceType()); + Assert.assertNotNull(pceCalculation.getReturnStructure()); + + Assert.assertNull(pceCalculation.getaendPceNode()); + Assert.assertNull(pceCalculation.getzendPceNode()); } + @Test - public void testPceCalculationValues() { + public void testPceCalculationValues2() { + pceCalculation = new PceCalculation( + PceTestData.getPathComputationRequestInputWithCoRoutingOrGeneral(), + new NetworkTransactionImpl(new RequestProcessor(this.getDataBroker())), + pceConstraintsCalc.getPceHardConstraints(), + pceConstraintsCalc.getPceSoftConstraints(), + pceResult); pceCalculation.retrievePceNetwork(); Assert.assertEquals("100GE", pceCalculation.getServiceType()); Assert.assertNotNull(pceCalculation.getReturnStructure()); diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestData.java b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestData.java index 3c78abc58..8aa64753e 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestData.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/utils/PceTestData.java @@ -40,6 +40,7 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.ordered.constraints.sp.HopTypeBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder; import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints; @@ -54,7 +55,6 @@ import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder; - public final class PceTestData { private PceTestData() { @@ -409,20 +409,18 @@ public final class PceTestData { .setServiceZEnd(serviceZEnd) .setHardConstraints(new HardConstraintsBuilder() .setCoRoutingOrGeneral(new GeneralBuilder() - .setExclude(new ExcludeBuilder() - .setNodeId(Arrays.asList("OpenROADM-2-2")) - .build()) - .setLatency(new LatencyBuilder() - .setMaxLatency(3223L).build()) - .setInclude(new IncludeBuilder() - .setOrderedHops( - Arrays.asList(new OrderedHopsBuilder() - .setHopNumber(22) - // .setHopType(new HopTypeBuilder() - // .setHopType(new ClliBuilder().getClli()) - .build())) - .build()) - .build()) + .setExclude(new ExcludeBuilder() + .setNodeId(Arrays.asList("OpenROADM-2-2")) + .build()) + .setLatency(new LatencyBuilder().setMaxLatency(3223L).build()) + .setInclude(new IncludeBuilder() + .setOrderedHops(Arrays.asList(new OrderedHopsBuilder() + .setHopNumber(22) + .setHopType(new HopTypeBuilder() + .setHopType(new HopTypeBuilder().getHopType()).build()) + .build())) + .build()) + .build()) .build()) .build(); return input; @@ -656,6 +654,8 @@ public final class PceTestData { .setServiceZEnd(serviceZEnd) .setHardConstraints(new HardConstraintsBuilder() .setCoRoutingOrGeneral(new GeneralBuilder() + .setLatency(new LatencyBuilder() + .setMaxLatency(3223L).build()) .setDiversity(new DiversityBuilder() .setExistingService(Arrays.asList(base.getServiceName())) .setExistingServiceApplicability(nodeTrue) -- 2.36.6