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;
14 import org.junit.Assert;
15 import org.junit.Before;
16 import org.junit.Test;
17 import org.opendaylight.transportpce.common.NetworkUtils;
18 import org.opendaylight.transportpce.pce.networkanalyzer.PceLink;
19 import org.opendaylight.transportpce.pce.networkanalyzer.PceOpticalNode;
20 import org.opendaylight.transportpce.pce.networkanalyzer.PceResult;
21 import org.opendaylight.transportpce.test.AbstractTest;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
27 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
28 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
29 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
30 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
31 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
32 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.Link;
33 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkBuilder;
34 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.LinkKey;
35 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.DestinationBuilder;
36 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.link.SourceBuilder;
40 public class PcePathDescriptionTest extends AbstractTest {
42 private List<PceLink> pathAtoZ = null;
43 private List<PceLink> pathZtoA = null;
45 private Map<LinkId, PceLink> allPceLinks = null;
46 private static PcePathDescription pcePathDescription = null;
47 private static final String LINK_ID_FORMAT = "%1$s-%2$sto%3$s-%4$s";
48 private PceSendingPceRPCs pceSendingPceRPCs;
53 Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
56 /*PceOtnNode pceOtnNode =
57 new PceOtnNode(node, OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OTM.getName(), "test");*/
58 //PceLink pceLink = new PceLink(link, pceOpticalNode, pceOpticalNode);
59 /* rc = new PceResult();
61 pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
66 public void buildPceOpticalNodeRoadmTest() {
67 NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
68 Node node = node1Builder.build();
70 PceOpticalNode pceOpticalNode = new PceOpticalNode(node,
71 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
72 pceOpticalNode.initSrgTps();
73 pceOpticalNode.initXndrTps();
74 pceOpticalNode.initWLlist();
75 Assert.assertFalse(pceOpticalNode.isValid());
76 Assert.assertFalse(pceOpticalNode.checkWL(12));
77 Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
80 private List<SupportingNode> geSupportingNodes() {
81 List<SupportingNode> supportingNodes1 = new ArrayList<>();
84 .add(new SupportingNodeBuilder()
85 .setNodeRef(new NodeId("node 2"))
86 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
88 return supportingNodes1;
91 private NodeBuilder getNodeBuilder(List<SupportingNode> supportingNodes1) {
92 return new NodeBuilder()
93 .setNodeId(new NodeId("node 1"))
94 .withKey(new NodeKey(new NodeId("node 1")))
95 .setSupportingNode(supportingNodes1);
98 private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
100 SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
101 //create destination link
102 DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
104 LinkId linkId = new LinkId(String.format(LINK_ID_FORMAT, srcNode, srcTp, destNode, destTp));
105 return new LinkBuilder()
106 .setSource(ietfSrcLinkBldr.build())
107 .setDestination(ietfDestLinkBldr.build())
109 .withKey(new LinkKey(linkId));