2 * Copyright © 2020 Orange, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.transportpce.pce;
11 import java.util.ArrayList;
12 import java.util.List;
15 import org.junit.Assert;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.opendaylight.transportpce.common.NetworkUtils;
19 import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
20 import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
21 import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
22 import org.opendaylight.transportpce.test.AbstractTest;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
37 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
41 public class PcePathDescriptionTest extends AbstractTest {
43 private List<PceLink> pathAtoZ = null;
44 private List<PceLink> pathZtoA = null;
46 private Map<LinkId, PceLink> allPceLinks = null;
47 private static PcePathDescription pcePathDescription = null;
48 private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
49 private PceSendingPceRPCs pceSendingPceRPCs;
54 Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
57 /*PceOtnNode pceOtnNode =
58 new PceOtnNode(node, OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OTM.getName(), "test");*/
59 //PceLink pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
60 /* rc = new PceResult();
62 pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
67 public void buildPceOpticalNodeRoadmTest() {
68 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
69 Node node = node1Builder.build();
71 PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
72 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
73 pceOpticalNode.initSrgTps();
74 pceOpticalNode.initXndrTps();
75 pceOpticalNode.initWLlist();
76 Assert.assertFalse(pceOpticalNode.isValid());
77 Assert.assertFalse(pceOpticalNode.checkWL(12));
78 Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
81 private List<SupportingNode> geSupportingNodes() {
82 List<SupportingNode> supportingNodes1 = new ArrayList<>();
85 .add(new SupportingNodeBuilder()
86 .setNodeRef(new NodeId("node 2"))
87 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
89 return supportingNodes1;
92 private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
93 return new NodeBuilder()
94 .setNodeId(new NodeId("node 1"))
95 .withKey(new NodeKey(new NodeId("node 1")))
96 .setSupportingNode(supportingNodes1);
99 private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
101 SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
102 //create destination link
103 DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
105 LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
106 return new LinkBuilder()
107 .setSource(ietfSrcLinkBldr.build())
108 .setDestination(ietfDestLinkBldr.build())
110 .withKey(new LinkKey(linkId));