Update unit testing - Renderer
[transportpce.git] / renderer / src / test / java / org / opendaylight / transportpce / renderer / utils / ServiceImplementationDataUtils.java
1 /*
2  * Copyright © 2018 Orange Systems, 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 package org.opendaylight.transportpce.renderer.utils;
9
10 import java.util.ArrayList;
11 import java.util.List;
12 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.ServiceFormat;
13 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.port.PortBuilder;
14 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirection;
15 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.AToZDirectionBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirection;
17 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ZToADirectionBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZ;
19 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.atoz.direction.AToZKey;
21 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToA;
22 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToABuilder;
23 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.path.description.ztoa.direction.ZToAKey;
24 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.ResourceBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.Link;
26 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.LinkBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.NodeBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPoint;
29 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.TerminationPointBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.link.LinkIdentifierBuilder;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.node.NodeIdentifierBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource.resource.resource.termination.point.TerminationPointIdentifierBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirectionBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.TxDirectionBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.handler.header.ServiceHandlerHeaderBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInput;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceImplementationRequestInputBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescription;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.PathDescriptionBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceAEndBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.implementation.request.input.ServiceZEndBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.Nodes;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev170907.olm.renderer.input.NodesKey;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.RendererRollbackInput;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.RendererRollbackInputBuilder;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.ServicePathInput;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.renderer.rev170228.ServicePathInputBuilder;
49
50
51 public final class ServiceImplementationDataUtils {
52
53     private ServiceImplementationDataUtils() {
54
55     }
56
57     public static Nodes createNode(String nodeId, String srcTp, String dstTp) {
58         return new NodesBuilder().setNodeId(nodeId).withKey(new NodesKey(nodeId)).setSrcTp(srcTp)
59                 .setDestTp(dstTp).build();
60     }
61
62     public static ServicePathInput buildServicePathInputs(List<Nodes> nodes) {
63         ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
64         servicePathInputBuilder.setNodes(nodes);
65         servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
66         return servicePathInputBuilder.build();
67     }
68
69     public static ServicePathInput buildServicePathInputs() {
70         ServicePathInputBuilder servicePathInputBuilder = new ServicePathInputBuilder();
71         List<Nodes> nodes = new ArrayList<>();
72         nodes.add(ServiceImplementationDataUtils.createNode("node1", "src", "dst"));
73         servicePathInputBuilder.setNodes(nodes);
74         servicePathInputBuilder.setServiceName("Service 1").setWaveNumber(20L);
75         return servicePathInputBuilder.build();
76     }
77
78     public static RendererRollbackInput buildRendererRollbackInput() {
79         RendererRollbackInputBuilder rendererRollbackInputBuilder = new RendererRollbackInputBuilder();
80         rendererRollbackInputBuilder.setNodeInterface(new ArrayList<>());
81         return rendererRollbackInputBuilder.build();
82     }
83
84     public static ServiceImplementationRequestInput buildServiceImplementationRequestInputTerminationPointResource(
85         String tpId) {
86         ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
87             .setServiceName("service 1").setPathDescription(createPathDescriptionTerminationPointResource(tpId))
88             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
89             .setServiceAEnd(getServiceAEndBuild().build())
90             .setServiceZEnd(getServiceZEndBuild().build());
91         return builder.build();
92     }
93
94     public static ServiceImplementationRequestInput buildServiceImplementationRequestInputInvalidResource() {
95         ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
96             .setServiceName("service 1").setPathDescription(createPathDescriptionInvalidResource())
97             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
98             .setServiceAEnd(getServiceAEndBuild().build())
99             .setServiceZEnd(getServiceZEndBuild().build());
100         return builder.build();
101     }
102
103     public static ServiceImplementationRequestInput buildServiceImplementationRequestInputLinkResource() {
104         ServiceImplementationRequestInputBuilder builder = new ServiceImplementationRequestInputBuilder()
105             .setServiceName("service 1").setPathDescription(createPathDescriptionLinkResource())
106             .setServiceHandlerHeader(new ServiceHandlerHeaderBuilder().setRequestId("Request 1").build())
107             .setServiceAEnd(getServiceAEndBuild().build())
108             .setServiceZEnd(getServiceZEndBuild().build());
109         return builder.build();
110     }
111
112     private static PathDescription createPathDescriptionInvalidResource() {
113         List<AToZ> atoZList = new ArrayList<AToZ>();
114         org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
115             .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
116         org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
117             .resource.resource.Node node1 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
118             .setNodeId("XPONDER-1-2").build()).build();
119         org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
120             .resource.resource.Node node2 = nodesBuilder.setNodeIdentifier(new NodeIdentifierBuilder()
121             .setNodeId("XPONDER-1-2").build()).build();
122         AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
123             .setResource(node1).build()).build();
124         AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
125             .setResource(node2).build()).build();
126         atoZList.add(atoZ);
127         atoZList.add(atoZ2);
128         AToZDirection atozDirection = new AToZDirectionBuilder()
129             .setRate(20L)
130             .setAToZWavelengthNumber(20L)
131             .setAToZ(atoZList)
132             .build();
133         List<ZToA> ztoAList = new ArrayList<ZToA>();
134         ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
135             .setResource(node1).build()).build();
136         ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
137             .setResource(node2).build()).build();
138         ztoAList.add(ztoA);
139         ztoAList.add(ztoA2);
140         ZToADirection ztoaDirection = new ZToADirectionBuilder()
141             .setRate(20L)
142             .setZToAWavelengthNumber(20L)
143             .setZToA(ztoAList)
144             .build();
145         PathDescriptionBuilder builder = new PathDescriptionBuilder()
146             .setAToZDirection(atozDirection)
147             .setZToADirection(ztoaDirection);
148         return builder.build();
149     }
150
151     public static PathDescription createPathDescriptionTerminationPointResource(String tpId) {
152         List<AToZ> atoZList = new ArrayList<AToZ>();
153         TerminationPointBuilder terminationPointBuilder = new TerminationPointBuilder();
154         TerminationPoint terminationPoint = terminationPointBuilder
155             .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
156                 .setTpId("XPONDER-1-2-" + tpId).build()).build();
157         TerminationPoint terminationPoint2 = terminationPointBuilder
158             .setTerminationPointIdentifier(new TerminationPointIdentifierBuilder().setNodeId("XPONDER-1-2")
159                 .setTpId("XPONDER-1-2-" + tpId).build()).build();
160         AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
161             .setResource(terminationPoint).build()).build();
162         AToZ atoZ2 = new AToZBuilder().setId("2").withKey(new AToZKey("2")).setResource(new ResourceBuilder()
163             .setResource(terminationPoint2).build()).build();
164         atoZList.add(atoZ);
165         atoZList.add(atoZ2);
166         AToZDirection atozDirection = new AToZDirectionBuilder()
167             .setRate(20L)
168             .setAToZWavelengthNumber(20L)
169             .setAToZ(atoZList)
170             .build();
171         List<ZToA> ztoAList = new ArrayList<ZToA>();
172         ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
173             .setResource(terminationPoint).build()).build();
174         ZToA ztoA2 = new ZToABuilder().setId("2").withKey(new ZToAKey("2")).setResource(new ResourceBuilder()
175             .setResource(terminationPoint).build()).build();
176         ztoAList.add(ztoA);
177         ztoAList.add(ztoA2);
178         ZToADirection ztoaDirection = new ZToADirectionBuilder()
179             .setRate(20L)
180             .setZToAWavelengthNumber(20L)
181             .setZToA(ztoAList)
182             .build();
183         PathDescriptionBuilder builder = new PathDescriptionBuilder()
184             .setAToZDirection(atozDirection)
185             .setZToADirection(ztoaDirection);
186         return builder.build();
187     }
188
189     private static PathDescription createPathDescriptionLinkResource() {
190         List<AToZ> atoZList = new ArrayList<AToZ>();
191         org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev170426.pce.resource
192             .resource.resource.NodeBuilder nodesBuilder = new NodeBuilder();
193         Link link1 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 1").build())
194             .build();
195         Link link2 = new LinkBuilder().setLinkIdentifier(new LinkIdentifierBuilder().setLinkId("link 2").build())
196             .build();
197         AToZ atoZ = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
198             .setResource(link1).build()).build();
199         AToZ atoZ2 = new AToZBuilder().setId("1").withKey(new AToZKey("1")).setResource(new ResourceBuilder()
200             .setResource(link2).build()).build();
201         atoZList.add(atoZ);
202         atoZList.add(atoZ2);
203         AToZDirection atozDirection = new AToZDirectionBuilder()
204             .setRate(20L)
205             .setAToZWavelengthNumber(20L)
206             .setAToZ(atoZList)
207             .build();
208         List<ZToA> ztoAList = new ArrayList<ZToA>();
209         ZToA ztoA = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
210             .setResource(link1).build()).build();
211         ZToA ztoA2 = new ZToABuilder().setId("1").withKey(new ZToAKey("1")).setResource(new ResourceBuilder()
212             .setResource(link2).build()).build();
213         ztoAList.add(ztoA);
214         ztoAList.add(ztoA2);
215         ZToADirection ztoaDirection = new ZToADirectionBuilder()
216             .setRate(20L)
217             .setZToAWavelengthNumber(20L)
218             .setZToA(ztoAList)
219             .build();
220         PathDescriptionBuilder builder = new PathDescriptionBuilder()
221             .setAToZDirection(atozDirection)
222             .setZToADirection(ztoaDirection);
223         return builder.build();
224     }
225
226     public static ServiceAEndBuilder getServiceAEndBuild() {
227         return new ServiceAEndBuilder()
228             .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
229             .setTxDirection(
230                 new TxDirectionBuilder()
231                     .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
232                         .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
233                         .setPortSubSlot("port subslot").setPortType("port type").build())
234                     .build())
235             .setRxDirection(
236                 new RxDirectionBuilder()
237                     .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
238                         .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
239                         .setPortSubSlot("port subslot").setPortType("port type").build())
240                     .build());
241     }
242
243     public static ServiceZEndBuilder getServiceZEndBuild() {
244         return new ServiceZEndBuilder()
245             .setClli("clli").setServiceFormat(ServiceFormat.OC).setServiceRate((long) 1).setNodeId("XPONDER-1-2")
246             .setTxDirection(
247                 new TxDirectionBuilder()
248                     .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
249                         .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
250                         .setPortSubSlot("port subslot").setPortType("port type").build())
251                     .build())
252             .setRxDirection(
253                 new RxDirectionBuilder()
254                     .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
255                         .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
256                         .setPortSubSlot("port subslot").setPortType("port type").build())
257                     .build());
258     }
259
260 }