Ignore Junit failures after dom.codec.impl removal
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / networkanalyzer / PceOpticalNodeTest.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.networkanalyzer;
10
11 import java.util.HashMap;
12 import java.util.Map;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Ignore;
16 import org.junit.Test;
17 import org.opendaylight.transportpce.common.NetworkUtils;
18 import org.opendaylight.transportpce.pce.utils.TransactionUtils;
19 import org.opendaylight.transportpce.test.AbstractTest;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev181130.TerminationPoint1Builder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengths;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.degree.rev181130.degree.node.attributes.AvailableWavelengthsBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributes;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.DegreeAttributesBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributes;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.SrgAttributesBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CpAttributesBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.CtpAttributesBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.PpAttributesBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.RxTtpAttributesBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.TxTtpAttributesBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrClientAttributesBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrNetworkAttributesBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.networks.network.node.termination.point.XpdrPortAttributesBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmNodeType;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev181130.OpenroadmTpType;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
38 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NetworkId;
39 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.NodeId;
40 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.Node;
41 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeBuilder;
42 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.NodeKey;
43 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNode;
44 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeBuilder;
45 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.rev180226.networks.network.node.SupportingNodeKey;
46 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1Builder;
47 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
48 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointBuilder;
50 import org.opendaylight.yangtools.yang.common.Uint32;
51
52 @Ignore
53 public class PceOpticalNodeTest extends AbstractTest {
54
55     private PceOpticalNode pceOpticalNode;
56     private Node node;
57
58     @Before
59     public void setUp() {
60         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
61         node = node1Builder.build();
62     }
63
64     @Test
65     public void isValidTest() {
66         OpenroadmNodeType nodeType = OpenroadmNodeType.ROADM;
67         ServiceFormat serviceFormat = ServiceFormat.Ethernet;
68         String pceNodeType = "pceNodeType";
69         pceOpticalNode = new PceOpticalNode(node, nodeType, new NodeId("node_test"), serviceFormat, pceNodeType);
70         Assert.assertTrue(pceOpticalNode.isValid());
71     }
72
73     @Test
74     public void testInitSrgTps() {
75
76         pceOpticalNode = new PceOpticalNode(node,
77                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
78         pceOpticalNode.initSrgTps();
79         pceOpticalNode.initXndrTps();
80         pceOpticalNode.initWLlist();
81         Assert.assertFalse(pceOpticalNode.isValid());
82         Assert.assertFalse(pceOpticalNode.checkWL(12));
83         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
84         Assert.assertNull(pceOpticalNode.getAvailableTribPorts());
85         Assert.assertNull(pceOpticalNode.getAvailableTribPorts());
86         Assert.assertNull(pceOpticalNode.getXpdrClient("test"));
87     }
88
89     @Test
90     public void testInitXndrTpSrgTypes() {
91         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.XPONDERNETWORK);
92         Node specificNode = node1Builder.build();
93         pceOpticalNode = new PceOpticalNode(specificNode,
94                 OpenroadmNodeType.SRG, new NodeId("optical"), ServiceFormat.OMS, "test");
95         pceOpticalNode.initWLlist();
96         Assert.assertTrue(pceOpticalNode.isValid());
97         Assert.assertTrue(pceOpticalNode.checkWL(12));
98         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
99     }
100
101     @Test
102     public void testInitXndrTpDegTypes() {
103         pceOpticalNode = new PceOpticalNode(node,
104                 OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OMS, "test");
105         pceOpticalNode.initWLlist();
106         Assert.assertTrue(pceOpticalNode.isValid());
107         Assert.assertFalse(pceOpticalNode.checkWL(12));
108         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
109     }
110
111     @Test
112     public void testInitXndrTpXpondrTypes() {
113         pceOpticalNode = new PceOpticalNode(node,
114                 OpenroadmNodeType.XPONDER, new NodeId("optical"), ServiceFormat.OMS, "test");
115         pceOpticalNode.initWLlist();
116         Assert.assertTrue(pceOpticalNode.isValid());
117         Assert.assertTrue(pceOpticalNode.checkWL(12));
118         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
119     }
120
121     @Test
122     public void testInitWLlist() {
123         pceOpticalNode = new PceOpticalNode(node,
124                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
125         pceOpticalNode.initXndrTps();
126         pceOpticalNode.initWLlist();
127         Assert.assertFalse(pceOpticalNode.isValid());
128         Assert.assertFalse(pceOpticalNode.checkWL(12));
129         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
130     }
131
132     @Test
133     public void testGetRdmSrgClient() {
134         pceOpticalNode = new PceOpticalNode(node,
135                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
136         pceOpticalNode.initSrgTps();
137         Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
138         Assert.assertFalse(pceOpticalNode.isValid());
139         Assert.assertFalse(pceOpticalNode.checkWL(12));
140         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
141     }
142
143     @Test
144     public void testGetRdmSrgClientEmpty() {
145         NodeBuilder node1Builder = getNodeBuilderEmpty(geSupportingNodes(), OpenroadmTpType.SRGTXRXPP);
146         Node specificNode = node1Builder.build();
147         pceOpticalNode = new PceOpticalNode(specificNode,
148                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
149         pceOpticalNode.initSrgTps();
150         pceOpticalNode.initWLlist();
151         pceOpticalNode.initXndrTps();
152         Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
153         Assert.assertFalse(pceOpticalNode.isValid());
154         Assert.assertFalse(pceOpticalNode.checkWL(12));
155         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
156     }
157
158     @Test
159     public void testGetRdmSrgClientDeg() {
160         pceOpticalNode = new PceOpticalNode(node,
161                 OpenroadmNodeType.DEGREE, new NodeId("optical"), ServiceFormat.OMS, "test");
162         pceOpticalNode.initSrgTps();
163         Assert.assertNull(pceOpticalNode.getRdmSrgClient("7"));
164         Assert.assertFalse(pceOpticalNode.isValid());
165         Assert.assertFalse(pceOpticalNode.checkWL(12));
166         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
167     }
168
169     @Test
170     public void testGetRdmSrgClientsrgtxcp() {
171         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.SRGTXCP);
172         Node specificNode = node1Builder.build();
173         pceOpticalNode = new PceOpticalNode(specificNode,
174                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
175         pceOpticalNode.initSrgTps();
176         Assert.assertFalse(pceOpticalNode.isValid());
177         Assert.assertFalse(pceOpticalNode.checkWL(12));
178         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
179         Assert.assertNull(pceOpticalNode.getRdmSrgClient("5"));
180     }
181
182     @Test
183     public void testGetRdmSrgClientDegreerxtpp() {
184         NodeBuilder node1Builder = getNodeBuilder(geSupportingNodes(), OpenroadmTpType.DEGREERXTTP);
185         node = node1Builder.build();
186         pceOpticalNode = new PceOpticalNode(node,
187                 OpenroadmNodeType.ROADM, new NodeId("optical"), ServiceFormat.OMS, "test");
188         pceOpticalNode.initSrgTps();
189         Assert.assertNull(pceOpticalNode.getRdmSrgClient("2"));
190         Assert.assertFalse(pceOpticalNode.isValid());
191         Assert.assertFalse(pceOpticalNode.checkWL(12));
192         Assert.assertTrue(pceOpticalNode.checkTP("testTP"));
193     }
194
195     private Map<SupportingNodeKey,SupportingNode> geSupportingNodes() {
196         Map<SupportingNodeKey,SupportingNode> supportingNodes1 = new HashMap<>();
197         SupportingNode supportingNode1 = new SupportingNodeBuilder()
198                 .setNodeRef(new NodeId("node 1"))
199                 .setNetworkRef(new NetworkId(NetworkUtils.CLLI_NETWORK_ID))
200                 .build();
201         supportingNodes1
202                 .put(supportingNode1.key(),supportingNode1);
203
204         SupportingNode supportingNode2 = new SupportingNodeBuilder()
205                 .setNodeRef(new NodeId("node 2"))
206                 .setNetworkRef(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID))
207                 .build();
208         supportingNodes1
209                 .put(supportingNode2.key(),supportingNode2);
210         return supportingNodes1;
211     }
212
213     private NodeBuilder getNodeBuilder(Map<SupportingNodeKey,SupportingNode> supportingNodes1,
214             OpenroadmTpType openroadmTpType) {
215
216         TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
217         TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
218         xpdrTpBldr.addAugmentation(tp1Bldr.build());
219         xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build());
220         org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1();
221         TerminationPoint xpdr = xpdrTpBldr.build();
222         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
223                 new Node1Builder()
224                         .setTerminationPoint(Map.of(xpdr.key(),xpdr))
225                         .build();
226
227
228         return new NodeBuilder()
229                 .setNodeId(new NodeId("node_test"))
230                 .withKey(new NodeKey(new NodeId("node 1")))
231                 .addAugmentation(node1Rev180226)
232                 .addAugmentation(node1)
233                 .setSupportingNode(supportingNodes1);
234     }
235
236     private NodeBuilder getNodeBuilderEmpty(Map<SupportingNodeKey,SupportingNode>  supportingNodes1,
237             OpenroadmTpType openroadmTpType) {
238
239         TerminationPoint1Builder tp1Bldr = getTerminationPoint1Builder(openroadmTpType);
240         TerminationPointBuilder xpdrTpBldr = getTerminationPointBuilder();
241         xpdrTpBldr.addAugmentation(tp1Bldr.build());
242         xpdrTpBldr.addAugmentation(createAnotherTerminationPoint().build());
243
244         org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 node1 = getNode1Empty();
245         TerminationPoint xpdr = xpdrTpBldr.build();
246         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.Node1 node1Rev180226 =
247                 new Node1Builder()
248                         .setTerminationPoint(Map.of(xpdr.key(),xpdr))
249                         .build();
250
251
252         return new NodeBuilder()
253                 .setNodeId(new NodeId("node_test"))
254                 .withKey(new NodeKey(new NodeId("node 1")))
255                 .addAugmentation(node1Rev180226)
256                 .addAugmentation(node1)
257                 .setSupportingNode(supportingNodes1);
258     }
259
260     private org.opendaylight
261             .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1() {
262         return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder()
263                 .setSrgAttributes(getSrgAttributes())
264                 .setDegreeAttributes(getDegAttributes())
265                 .build();
266     }
267
268     private org.opendaylight
269             .yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1 getNode1Empty() {
270         return new org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev181130.Node1Builder()
271                 .setSrgAttributes(getEmptySrgAttributes())
272                 .setDegreeAttributes(getEmptyDegAttributes())
273                 .build();
274     }
275
276     private DegreeAttributes getDegAttributes() {
277         AvailableWavelengths aval = new AvailableWavelengthsBuilder().setIndex(Uint32.valueOf(20)).build();
278         return (new DegreeAttributesBuilder())
279                 .setAvailableWavelengths(Map.of(aval.key(),aval))
280                 .build();
281     }
282
283     private SrgAttributes getSrgAttributes() {
284         return new SrgAttributesBuilder().setAvailableWavelengths(TransactionUtils.create96AvalWaveSrg()).build();
285     }
286
287     private DegreeAttributes getEmptyDegAttributes() {
288         return (new DegreeAttributesBuilder())
289                 .setAvailableWavelengths(Map.of())
290                 .build();
291     }
292
293     private SrgAttributes getEmptySrgAttributes() {
294         return new SrgAttributesBuilder().setAvailableWavelengths(Map.of()).build();
295     }
296
297     private TerminationPointBuilder getTerminationPointBuilder() {
298         return new TerminationPointBuilder().setTpId(new TpId("2"));
299     }
300
301     private TerminationPoint1Builder getTerminationPoint1Builder(OpenroadmTpType openroadmTpType) {
302
303         return new TerminationPoint1Builder().setTpType(openroadmTpType);
304
305     }
306
307     private org.opendaylight.yang.gen
308             .v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder createAnotherTerminationPoint() {
309         return new org.opendaylight
310                 .yang.gen.v1.http.org.openroadm.network.topology.rev181130.TerminationPoint1Builder()
311                 .setTpType(OpenroadmTpType.XPONDERNETWORK)
312                 .setCtpAttributes((new CtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
313                 .setCpAttributes((new CpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
314                 .setTxTtpAttributes((new TxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
315                 .setRxTtpAttributes((new RxTtpAttributesBuilder()).setUsedWavelengths(Map.of()).build())
316                 .setPpAttributes((new PpAttributesBuilder()).setUsedWavelength(Map.of()).build())
317                 .setXpdrClientAttributes((new XpdrClientAttributesBuilder()).build())
318                 .setXpdrPortAttributes((new XpdrPortAttributesBuilder()).build())
319                 .setXpdrNetworkAttributes(new XpdrNetworkAttributesBuilder()
320                         .setTailEquipmentId("destNode" + "--" + "destTp").build());
321     }
322
323 }