X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=pce%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fpce%2Fnetworkanalyzer%2FPceLinkTest.java;h=db285a0480e91c2bca7d9d876ce6bf864101e412;hb=57441c8d894a071c1e9ce787df2ab02a271d61ed;hp=5f9145f3b7e16a4488c0511a0fbd49de4b7ec351;hpb=2df235e965f3b4ff99f2e7bfc5a2911869c97c03;p=transportpce.git diff --git a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java index 5f9145f3b..db285a048 100644 --- a/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java +++ b/pce/src/test/java/org/opendaylight/transportpce/pce/networkanalyzer/PceLinkTest.java @@ -14,19 +14,28 @@ import java.util.Map; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; import org.opendaylight.transportpce.common.NetworkUtils; +import org.opendaylight.transportpce.common.StringConstants; +import org.opendaylight.transportpce.common.fixedflex.GridConstant; +import org.opendaylight.transportpce.common.mapping.PortMapping; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.link.types.rev181130.RatioDB; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.Link1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenation; -import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev181130.span.attributes.LinkConcatenationBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.OMSAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.link.oms.attributes.SpanBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmLinkType; -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.http.org.openroadm.common.link.types.rev191129.RatioDB; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Link1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.equipment.states.types.rev191129.AdminStates; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev211210.span.attributes.LinkConcatenation1.FiberType; +import org.opendaylight.yang.gen.v1.http.org.openroadm.link.rev211210.span.attributes.LinkConcatenation1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.link.OMSAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.link.oms.attributes.SpanBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.OpenroadmLinkType; +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.network.types.rev211210.link.concatenation.LinkConcatenation; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenationBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.link.concatenation.LinkConcatenationKey; 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; @@ -36,8 +45,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev 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.rev180226.networks.network.node.SupportingNodeKey; 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.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.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; @@ -45,6 +54,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint; 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.common.Uint32; @@ -52,10 +62,14 @@ public class PceLinkTest extends AbstractTest { private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s"; private PceLink pceLink = null; + private String deviceNodeId = "device node"; + private String serviceType = "100GE"; + @Mock + private PortMapping portMapping; @Before public void setup() { - + MockitoAnnotations.openMocks(this); } @Test @@ -63,12 +77,11 @@ public class PceLinkTest extends AbstractTest { Link link = createRoadmToRoadm("srcNode", "destNode", "srcTp", "destTp").build(); - NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test"); + Node node = node1Builder.setNodeId(new NodeId("test")).build(); + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -79,10 +92,10 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test"); + Node node = node1Builder.setNodeId(new NodeId("test")).build(); + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -93,12 +106,11 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test"); + Node node = node1Builder.setNodeId(new NodeId("test")).build(); + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); - } @Test @@ -108,10 +120,10 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test"); + Node node = node1Builder.setNodeId(new NodeId("test")).build(); + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); } @@ -122,14 +134,14 @@ public class PceLinkTest extends AbstractTest { "srcTp", "destTp").build(); NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - - PceOpticalNode pceOpticalNode = new PceOpticalNode(node, - OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test"); + Node node = node1Builder.setNodeId(new NodeId("test")).build(); + PceOpticalNode pceOpticalNode = new PceOpticalNode(deviceNodeId, serviceType, portMapping, node, + OpenroadmNodeType.SRG, StringConstants.OPENROADM_DEVICE_VERSION_2_2_1, + GridConstant.SLOT_WIDTH_50, GridConstant.SLOT_WIDTH_50); pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode); Assert.assertNotNull(MapUtils.getOmsAttributesSpan(link)); Assert.assertNotNull(pceLink.calcSpanOSNR()); - Assert.assertEquals(0, pceLink.getsrlgList().size()); + Assert.assertEquals(1, pceLink.getsrlgList().size()); Assert.assertTrue(7.857119000000001 == pceLink.calcSpanOSNR()); Assert.assertNull(pceLink.getOppositeLink()); Assert.assertNull(pceLink.getOppositeLink()); @@ -152,53 +164,43 @@ public class PceLinkTest extends AbstractTest { Assert.assertNotNull(pceLink.getdestCLLI()); Assert.assertTrue(pceLink.toString().equals("PceLink type=" + pceLink.getlinkType() + " ID=" + pceLink.getLinkId().getValue() + " latency=" + pceLink.getLatency().intValue())); - - } - - @Test(expected = NullPointerException.class) - public void testPceOTNNode() { - NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes()); - Node node = node1Builder.build(); - Assert.assertNotNull(node.augmentation(Node1.class)); - // OpenroadmNodeType nodeType = node.augmentation(Node1.class).; - - PceOtnNode pceOtnNode = new PceOtnNode(node, OpenroadmNodeType.SRG, node.getNodeId(), "otn", "serviceType"); - } private static LinkBuilder createOTNLink(String srcNode, String destNode, String srcTp, String destTp) { Link1Builder link1Builder = new Link1Builder() - .setLinkType(OpenroadmLinkType.OTNLINK); - + .setLinkType(OpenroadmLinkType.OTNLINK) + .setOperationalState(State.InService) + .setAdministrativeState(AdminStates.InService); //create source link return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder); - } private static LinkBuilder createXponderLink(String srcNode, String destNode, String srcTp, String destTp) { Link1Builder link1Builder = new Link1Builder() - .setLinkType(OpenroadmLinkType.XPONDERINPUT); - + .setLinkType(OpenroadmLinkType.XPONDERINPUT) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService); //create source link return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder); - } private static LinkBuilder createLinkBuilder( String srcNode, String destNode, String srcTp, String destTp, Link1Builder link1Builder) { SourceBuilder ietfSrcLinkBldr = - new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp); + new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(new TpId(srcTp)); //create destination link DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode)) - .setDestTp(destTp); + .setDestTp(new TpId(destTp)); LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp)); - LinkId oppositeLinkId = new LinkId("opposite"); //For setting up attributes for openRoadm augment LinkConcatenation linkConcatenation = new LinkConcatenationBuilder() - .setSRLGLength(Uint32.valueOf(20)) - .setFiberType(LinkConcatenation.FiberType.Dsf) + .withKey(new LinkConcatenationKey(Uint32.valueOf(1))) + .setSRLGLength(BigDecimal.valueOf(20)) + .addAugmentation(new LinkConcatenation1Builder() + .setFiberType(FiberType.Dsf) + .build()) .build(); OMSAttributesBuilder omsAttributesBuilder = new OMSAttributesBuilder() @@ -206,7 +208,7 @@ public class PceLinkTest extends AbstractTest { .setSpanlossCurrent(new RatioDB(new BigDecimal("55"))) .setLinkConcatenation(Map.of(linkConcatenation.key(), linkConcatenation - )).build()).setOppositeLink(oppositeLinkId); + )).build()); LinkBuilder linkBuilder = new LinkBuilder() @@ -217,23 +219,22 @@ public class PceLinkTest extends AbstractTest { linkBuilder.addAugmentation(link1Builder.build()); - org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder linkBuilderNetworkLink - = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Link1Builder() + org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1Builder linkBuilderNetworkLink + = new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Link1Builder() .setOMSAttributes(omsAttributesBuilder .build()); - linkBuilder.addAugmentation(linkBuilderNetworkLink.build()); - return linkBuilder; } private static LinkBuilder createRoadmToRoadm(String srcNode, String destNode, String srcTp, String destTp) { Link1Builder link1Builder = new Link1Builder() .setLinkLatency(Uint32.valueOf(100)) + .setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService) .setLinkType(OpenroadmLinkType.ROADMTOROADM); return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder); - } private static LinkBuilder createRoadmToRoadmWithoutLinkLatency( @@ -241,7 +242,6 @@ public class PceLinkTest extends AbstractTest { Link1Builder link1Builder = new Link1Builder() .setLinkType(OpenroadmLinkType.ROADMTOROADM); return createLinkBuilder(srcNode, destNode, srcTp, destTp, link1Builder); - } private Map geSupportingNodes() { @@ -263,23 +263,25 @@ public class PceLinkTest extends AbstractTest { } private NodeBuilder getNodeBuilder(Map supportingNodes1) { - - //update tp of nodes - TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder(); + TerminationPointBuilder xpdrTpBldr = new TerminationPointBuilder() + .withKey(new TerminationPointKey(new TpId("xpdr"))); TerminationPoint1Builder tp1Bldr = new TerminationPoint1Builder(); - tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK); + tp1Bldr.setTpType(OpenroadmTpType.XPONDERNETWORK).setAdministrativeState(AdminStates.InService) + .setOperationalState(State.InService); xpdrTpBldr.addAugmentation(tp1Bldr.build()); TerminationPoint xpdr = xpdrTpBldr.build(); org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1 = - new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build(); - - + new Node1Builder().setTerminationPoint(Map.of(xpdr.key(),xpdr)).build(); + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1 node11 = + new org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1Builder() + .setOperationalState(State.InService).setAdministrativeState(AdminStates.InService).build(); return new NodeBuilder() .setNodeId(new NodeId("node 1")) .withKey(new NodeKey(new NodeId("node 1"))) .addAugmentation(node1) + .addAugmentation(node11) .setSupportingNode(supportingNodes1); }