fbd6c270f85980f0a481cbe3b13601e395513bf6
[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
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;
38
39
40
41 public class PcePathDescriptionTest extends AbstractTest {
42
43     private List<PceLink> pathAtoZ = null;
44     private List<PceLink> pathZtoA = null;
45     private PceResult rc;
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;
50
51     @Before
52     public void setup() {
53
54         Link link = createLink("srcNode", "destNode", "srcTp", "destTp").build();
55
56
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();
61
62         pcePathDescription = new PcePathDescription(List.of(pceLink), new HashMap<>(), rc);*/
63     }
64
65
66     @Test
67     public void buildPceOpticalNodeRoadmTest() {
68         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes());
69         Node node = node1Builder.build();
70
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"));
79     }
80
81     private List<SupportingNode> geSupportingNodes() {
82         List<SupportingNode> supportingNodes1 = new ArrayList<>();
83
84         supportingNodes1
85                 .add(new SupportingNodeBuilder()
86                         .setNodeRef(new NodeId("node 2"))
87                         .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
88                         .build());
89         return supportingNodes1;
90     }
91
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);
97     }
98
99     private static LinkBuilder createLink(String srcNode, String destNode, String srcTp, String destTp) {
100         //create source link
101         SourceBuilder ietfSrcLinkBldr = new SourceBuilder().setSourceNode(new NodeId(srcNode)).setSourceTp(srcTp);
102         //create destination link
103         DestinationBuilder ietfDestLinkBldr = new DestinationBuilder().setDestNode(new NodeId(destNode))
104                 .setDestTp(destTp);
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())
109                 .setLinkId(linkId)
110                 .withKey(new LinkKey(linkId));
111     }
112 }