6b04f1a3382425637d54c4fce8410a50559c2e66
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / PcePathDescriptionTest.java
1 /*
2  * Copyright © 2020 Orange, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.transportpce.pce;
10
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.Map;
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;
37
38
39
40 public class PcePathDescriptionTest extends AbstractTest {
41
42     private List<PceLink> pathAtoZ = null;
43     private List<PceLink> pathZtoA = null;
44     private PceResult rc;
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;
49
50     @Before
51     public void setup() {
52
53         Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
54
55
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();
60
61         pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
62     }
63
64
65     @Test
66     public void buildPceOpticalNodeRoadmTest() {
67         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
68         Node node = node1Builder.build();
69
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"));
78     }
79
80     private List<SupportingNode> geSupportingNodes() {
81         List<SupportingNode> supportingNodes1 = new ArrayList<>();
82
83         supportingNodes1
84                 .add(new SupportingNodeBuilder()
85                         .setNodeRef(new NodeId("node 2"))
86                         .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
87                         .build());
88         return supportingNodes1;
89     }
90
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);
96     }
97
98     private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
99         //create source link
100         SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
101         //create destination link
102         DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
103                 .setDestTp(destTp);
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())
108                 .setLinkId(linkId)
109                 .withKey(new LinkKey(linkId));
110     }
111 }