New version of transportpce-pathDescription
[transportpce.git] / pce / src / test / java / org / opendaylight / transportpce / pce / utils / PceTestData.java
1 /*
2  * Copyright © 2017 AT&T, 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.pce.utils;
9
10 import java.util.Arrays;
11 import java.util.Map;
12 import org.opendaylight.transportpce.common.ResponseCodes;
13 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInput;
14 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestInputBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutput;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.PathComputationRequestOutputBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEnd;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceAEndBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEnd;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev200128.path.computation.request.input.ServiceZEndBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.ConnectionType;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommon;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.configuration.response.common.ConfigurationResponseCommonBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.sdnc.request.header.SdncRequestHeaderBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev190531.service.port.PortBuilder;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev190531.ServiceFormat;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.AToZDirection;
31 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.AToZDirectionBuilder;
32 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.ZToADirection;
33 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201126.path.description.ZToADirectionBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.RoutingConstraintsSp.PceMetric;
35 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.CoRoutingBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.GeneralBuilder;
37 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.DiversityBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.ExcludeBuilder;
39 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.IncludeBuilder;
40 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.LatencyBuilder;
41 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHops;
42 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.constraints.sp.co.routing.or.general.general.include_.OrderedHopsBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicability;
44 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.diversity.existing.service.contraints.sp.ExistingServiceApplicabilityBuilder;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.ordered.constraints.sp.HopTypeBuilder;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraints;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.HardConstraintsBuilder;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraints;
49 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev171017.routing.constraints.sp.SoftConstraintsBuilder;
50 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParameters;
51 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.ResponseParametersBuilder;
52 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescription;
53 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.response.parameters.sp.response.parameters.PathDescriptionBuilder;
54 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.RxDirectionBuilder;
55 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.endpoint.sp.TxDirectionBuilder;
56 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeader;
57 import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev200128.service.handler.header.ServiceHandlerHeaderBuilder;
58 import org.opendaylight.yangtools.yang.common.Uint16;
59 import org.opendaylight.yangtools.yang.common.Uint32;
60
61
62 public final class PceTestData {
63
64     private PceTestData() {
65     }
66
67     public static PathComputationRequestInput getEmptyPCERequest() {
68         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
69                 .setRequestId("request1")
70                 .build();
71         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
72                 .setServiceHandlerHeader(serviceHandlerHeader)
73                 .build();
74         return input;
75     }
76
77     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithRequestId() {
78         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
79                 .setRequestId("request1")
80                 .build();
81         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
82                 .setServiceName("serviceName")
83                 .setServiceHandlerHeader(serviceHandlerHeader)
84                 .build();
85         return input;
86     }
87
88     public static PathComputationRequestInput getEmptyPCERequestServiceNameWithOutRequestId() {
89         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
90                 .build();
91         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
92                 .setServiceName("serviceName")
93                 .setServiceHandlerHeader(serviceHandlerHeader)
94                 .build();
95         return input;
96     }
97
98     public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral2() {
99         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
100                 .setRequestId("request1")
101                 .build();
102         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
103                 .setServiceFormat(ServiceFormat.ODU)
104                 .setServiceRate(Uint32.valueOf(100))
105                 .setClli("clli11")
106                 .setNodeId("XPONDER-2-2")
107                 .setTxDirection(new TxDirectionBuilder().setPort(
108                         new PortBuilder()
109                                 .setPortDeviceName("Some port-device-name")
110                                 .setPortType("Some port-type")
111                                 .setPortName("Some port-name")
112                                 .setPortRack("Some port-rack")
113                                 .setPortShelf("Some port-shelf")
114                                 .setPortSlot("Some port-slot")
115                                 .setPortSubSlot("Some port-sub-slot")
116                                 .build()
117                 ).build())
118                 .setRxDirection(new RxDirectionBuilder().setPort(
119                         new PortBuilder()
120                                 .setPortDeviceName("Some port-device-name")
121                                 .setPortType("Some port-type")
122                                 .setPortName("Some port-name")
123                                 .setPortRack("Some port-rack")
124                                 .setPortShelf("Some port-shelf")
125                                 .setPortSlot("Some port-slot")
126                                 .setPortSubSlot("Some port-sub-slot")
127                                 .build()
128                 ).build())
129                 .build();
130         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
131                 .setServiceFormat(ServiceFormat.ODU)
132                 .setServiceRate(Uint32.valueOf(0))
133                 .setClli("Some clli11")
134                 .setNodeId("XPONDER-1-2")
135                 .setTxDirection(new TxDirectionBuilder().setPort(
136                         new PortBuilder()
137                                 .setPortDeviceName("Some port-device-name")
138                                 .setPortType("Some port-type")
139                                 .setPortName("Some port-name")
140                                 .setPortRack("Some port-rack")
141                                 .setPortShelf("Some port-shelf")
142                                 .setPortSlot("Some port-slot")
143                                 .setPortSubSlot("Some port-sub-slot")
144                                 .build()
145                 ).build())
146                 .setRxDirection(new RxDirectionBuilder().setPort(
147                         new PortBuilder()
148                                 .setPortDeviceName("Some port-device-name")
149                                 .setPortType("Some port-type")
150                                 .setPortName("Some port-name")
151                                 .setPortRack("Some port-rack")
152                                 .setPortShelf("Some port-shelf")
153                                 .setPortSlot("Some port-slot")
154                                 .setPortSubSlot("Some port-sub-slot")
155                                 .build()
156                 ).build())
157                 .build();
158         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
159                 .setServiceName("service1")
160                 .setResourceReserve(true)
161                 .setPceMetric(PceMetric.HopCount)
162                 .setLocallyProtectedLinks(true)
163                 .setServiceHandlerHeader(serviceHandlerHeader)
164                 .setServiceAEnd(serviceAEnd)
165                 .setServiceZEnd(serviceZEnd)
166                 .setHardConstraints(new HardConstraintsBuilder()
167                         .setCustomerCode(Arrays.asList("Some customer-code"))
168                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
169                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
170                                         .transportpce.b.c._interface.routing.constraints.rev171017
171                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
172                                         .setExistingService(Arrays.asList("Some existing-service"))
173
174                                         .build())
175                                 .build())
176                         .build())
177                 .setSoftConstraints(new SoftConstraintsBuilder()
178                         .setCustomerCode(Arrays.asList("Some customer-code"))
179                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
180                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
181                                         .transportpce.b.c._interface.routing.constraints.rev171017
182                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
183                                         .setExistingService(Arrays.asList("Some existing-service"))
184                                         .build())
185                                 .build())
186                         .build())
187                 .build();
188         return input;
189     }
190
191     public static PathComputationRequestInput getPathComputationRequestInputWithCoRoutingOrGeneral() {
192         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
193                 .setRequestId("request1")
194                 .build();
195         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
196                 .setServiceFormat(ServiceFormat.Ethernet)
197                 .setServiceRate(Uint32.valueOf(100))
198                 .setClli("clli11")
199                 .setNodeId("XPONDER-2-2")
200                 .setTxDirection(new TxDirectionBuilder().setPort(
201                         new PortBuilder()
202                                 .setPortDeviceName("Some port-device-name")
203                                 .setPortType("Some port-type")
204                                 .setPortName("Some port-name")
205                                 .setPortRack("Some port-rack")
206                                 .setPortShelf("Some port-shelf")
207                                 .setPortSlot("Some port-slot")
208                                 .setPortSubSlot("Some port-sub-slot")
209                                 .build()
210                 ).build())
211                 .setRxDirection(new RxDirectionBuilder().setPort(
212                         new PortBuilder()
213                                 .setPortDeviceName("Some port-device-name")
214                                 .setPortType("Some port-type")
215                                 .setPortName("Some port-name")
216                                 .setPortRack("Some port-rack")
217                                 .setPortShelf("Some port-shelf")
218                                 .setPortSlot("Some port-slot")
219                                 .setPortSubSlot("Some port-sub-slot")
220                                 .build()
221                 ).build())
222                 .build();
223         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
224                 .setServiceFormat(ServiceFormat.Ethernet)
225                 .setServiceRate(Uint32.valueOf(0))
226                 .setClli("Some clli11")
227                 .setNodeId("XPONDER-1-2")
228                 .setTxDirection(new TxDirectionBuilder().setPort(
229                         new PortBuilder()
230                                 .setPortDeviceName("Some port-device-name")
231                                 .setPortType("Some port-type")
232                                 .setPortName("Some port-name")
233                                 .setPortRack("Some port-rack")
234                                 .setPortShelf("Some port-shelf")
235                                 .setPortSlot("Some port-slot")
236                                 .setPortSubSlot("Some port-sub-slot")
237                                 .build()
238                 ).build())
239                 .setRxDirection(new RxDirectionBuilder().setPort(
240                         new PortBuilder()
241                                 .setPortDeviceName("Some port-device-name")
242                                 .setPortType("Some port-type")
243                                 .setPortName("Some port-name")
244                                 .setPortRack("Some port-rack")
245                                 .setPortShelf("Some port-shelf")
246                                 .setPortSlot("Some port-slot")
247                                 .setPortSubSlot("Some port-sub-slot")
248                                 .build()
249                 ).build())
250                 .build();
251         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
252                 .setServiceName("service1")
253                 .setResourceReserve(true)
254                 .setPceMetric(PceMetric.HopCount)
255                 .setLocallyProtectedLinks(true)
256                 .setServiceHandlerHeader(serviceHandlerHeader)
257                 .setServiceAEnd(serviceAEnd)
258                 .setServiceZEnd(serviceZEnd)
259                 .setHardConstraints(new HardConstraintsBuilder()
260                         .setCustomerCode(Arrays.asList("Some customer-code"))
261                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
262                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
263                                         .transportpce.b.c._interface.routing.constraints.rev171017
264                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
265                                         .setExistingService(Arrays.asList("Some existing-service"))
266
267                                         .build())
268                                 .build())
269                         .build())
270                 .setSoftConstraints(new SoftConstraintsBuilder()
271                         .setCustomerCode(Arrays.asList("Some customer-code"))
272                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
273                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
274                                         .transportpce.b.c._interface.routing.constraints.rev171017
275                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
276                                         .setExistingService(Arrays.asList("Some existing-service"))
277                                         .build())
278                                 .build())
279                         .build())
280                 .build();
281         return input;
282     }
283
284     public static PathComputationRequestInput getPCERequest() {
285         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
286                 .setRequestId("request1")
287                 .build();
288         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
289                 .setServiceFormat(ServiceFormat.Ethernet)
290                 .setServiceRate(Uint32.valueOf(100))
291                 .setClli("clli11")
292                 .setNodeId("XPONDER-2-2")
293                 .setTxDirection(new TxDirectionBuilder().setPort(
294                         new PortBuilder()
295                                 .setPortDeviceName("Some port-device-name")
296                                 .setPortType("Some port-type")
297                                 .setPortName("Some port-name")
298                                 .setPortRack("Some port-rack")
299                                 .setPortShelf("Some port-shelf")
300                                 .setPortSlot("Some port-slot")
301                                 .setPortSubSlot("Some port-sub-slot")
302                                 .build()
303                 ).build())
304                 .setRxDirection(new RxDirectionBuilder().setPort(
305                         new PortBuilder()
306                                 .setPortDeviceName("Some port-device-name")
307                                 .setPortType("Some port-type")
308                                 .setPortName("Some port-name")
309                                 .setPortRack("Some port-rack")
310                                 .setPortShelf("Some port-shelf")
311                                 .setPortSlot("Some port-slot")
312                                 .setPortSubSlot("Some port-sub-slot")
313                                 .build()
314                 ).build())
315                 .build();
316         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
317                 .setServiceFormat(ServiceFormat.Ethernet)
318                 .setServiceRate(Uint32.valueOf(0))
319                 .setClli("Some clli11")
320                 .setNodeId("XPONDER-1-2")
321                 .setTxDirection(new TxDirectionBuilder().setPort(
322                         new PortBuilder()
323                                 .setPortDeviceName("Some port-device-name")
324                                 .setPortType("Some port-type")
325                                 .setPortName("Some port-name")
326                                 .setPortRack("Some port-rack")
327                                 .setPortShelf("Some port-shelf")
328                                 .setPortSlot("Some port-slot")
329                                 .setPortSubSlot("Some port-sub-slot")
330                                 .build()
331                 ).build())
332                 .setRxDirection(new RxDirectionBuilder().setPort(
333                         new PortBuilder()
334                                 .setPortDeviceName("Some port-device-name")
335                                 .setPortType("Some port-type")
336                                 .setPortName("Some port-name")
337                                 .setPortRack("Some port-rack")
338                                 .setPortShelf("Some port-shelf")
339                                 .setPortSlot("Some port-slot")
340                                 .setPortSubSlot("Some port-sub-slot")
341                                 .build()
342                 ).build())
343                 .build();
344         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
345                 .setServiceName("service1")
346                 .setResourceReserve(true)
347                 .setPceMetric(PceMetric.HopCount)
348                 .setLocallyProtectedLinks(true)
349                 .setServiceHandlerHeader(serviceHandlerHeader)
350                 .setServiceAEnd(serviceAEnd)
351                 .setServiceZEnd(serviceZEnd)
352                 .setHardConstraints(new HardConstraintsBuilder()
353                         .setCustomerCode(Arrays.asList("Some customer-code"))
354                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
355                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
356                                         .transportpce.b.c._interface.routing.constraints.rev171017
357                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
358                                         .setExistingService(Arrays.asList("Some existing-service"))
359                                         .build())
360                                 .build())
361                         .build())
362                 .setSoftConstraints(new SoftConstraintsBuilder()
363                         .setCustomerCode(Arrays.asList("Some customer-code"))
364                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
365                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
366                                         .transportpce.b.c._interface.routing.constraints.rev171017
367                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
368                                         .setExistingService(Arrays.asList("Some existing-service"))
369                                         .build())
370                                 .build())
371                         .build())
372                 .build();
373         return input;
374     }
375
376     public static PathComputationRequestOutput getFailedPCEResultYes() {
377         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
378         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
379                 .setAckFinalIndicator("Yes")
380                 .setRequestId("request1")
381                 .setResponseCode("Path not calculated")
382                 .setResponseMessage("Service Name is not set");
383         outputBuilder.setConfigurationResponseCommon(configurationResponseCommon.build())
384                 .setResponseParameters(null);
385         return outputBuilder.build();
386     }
387
388     public static PathComputationRequestOutput getPCEResultOk(Long wl) {
389         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
390         ResponseParameters responseParameters = new ResponseParametersBuilder()
391                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
392                 .build();
393         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
394                 .setResponseParameters(responseParameters);
395         return outputBuilder.build();
396     }
397
398     /**
399      * Generate Data for Test 1 request 5-4.
400      * <code>{
401      * "pce:input": {
402      * "pce:service-name": "service 1",
403      * "pce:resource-reserve": "true",
404      * "pce:service-handler-header": {
405      * "pce:request-id": "request 1"
406      * },
407      * "pce:service-a-end": {
408      * "pce:service-rate": "0",
409      * "pce:node-id": "XPONDER-1-2"
410      * },
411      * "pce:service-z-end": {
412      * "pce:service-rate": "0",
413      * "pce:node-id": "XPONDER-3-2"
414      * },
415      * "pce:pce-metric": "hop-count"
416      * }
417      * }</code>
418      *
419      * @return input PathComputationRequestInput data
420      */
421     public static PathComputationRequestInput getPCE_test1_request_54() {
422         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
423                 .setRequestId("request 1")
424                 .build();
425         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
426                 .setServiceRate(Uint32.valueOf(0))
427                 .setNodeId("XPONDER-1-2")
428                 .build();
429         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
430                 .setServiceRate(Uint32.valueOf(0))
431                 .setNodeId("XPONDER-3-2")
432                 .build();
433         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
434                 .setServiceHandlerHeader(serviceHandlerHeader)
435                 .setServiceName("service 1")
436                 .setResourceReserve(true)
437                 .setPceMetric(PceMetric.HopCount)
438                 .setServiceAEnd(serviceAEnd)
439                 .setServiceZEnd(serviceZEnd)
440                 .build();
441         return input;
442     }
443
444     /**
445      * Generate Data for Test 1 result 5-4.
446      *
447      * @param wl WaveLength
448      * @return output PathComputationRequestOutput data
449      */
450     public static PathComputationRequestOutput getPCE_test_result_54(Long wl) {
451         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
452         ResponseParameters responseParameters = new ResponseParametersBuilder()
453                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
454                 .build();
455         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
456                 .setResponseParameters(responseParameters);
457         return outputBuilder.build();
458     }
459
460     /**
461      * Generate Data for Test 2 request 5-4.
462      * <code>{
463      * "pce:input": {
464      * "pce:service-name": "service 1",
465      * "pce:resource-reserve": "true",
466      * "pce:service-handler-header": {
467      * "pce:request-id": "request 1"
468      * },
469      * "pce:service-a-end": {
470      * "pce:service-rate": "0",
471      * "pce:node-id": "XPONDER-1-2"
472      * },
473      * "pce:service-z-end": {
474      * "pce:service-rate": "0",
475      * "pce:node-id": "XPONDER-3-2"
476      * },
477      * "pce:hard-constraints": {
478      * "pce:exclude_": {
479      * "node-id": [ "OpenROADM-2-2" ]
480      * }
481      * },
482      * "pce:pce-metric": "hop-count"
483      * }
484      * }</code>
485      *
486      * @return input PathComputationRequestInput data
487      */
488     public static PathComputationRequestInput getPCE_test2_request_54() {
489         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
490                 .setRequestId("request 1")
491                 .build();
492         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
493                 .setServiceRate(Uint32.valueOf(0))
494                 .setNodeId("XPONDER-1-2")
495                 .build();
496         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
497                 .setServiceRate(Uint32.valueOf(0))
498                 .setNodeId("XPONDER-3-2")
499                 .build();
500         OrderedHops orderedHops = new OrderedHopsBuilder()
501                 .setHopNumber(Uint16.valueOf(22))
502                 .setHopType(new HopTypeBuilder()
503                         .setHopType(new HopTypeBuilder().getHopType()).build())
504                 .build();
505         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
506                 .setServiceHandlerHeader(serviceHandlerHeader)
507                 .setServiceName("service 1")
508                 .setResourceReserve(true)
509                 .setPceMetric(PceMetric.HopCount)
510                 .setServiceAEnd(serviceAEnd)
511                 .setServiceZEnd(serviceZEnd)
512                 .setHardConstraints(new HardConstraintsBuilder()
513                         .setCoRoutingOrGeneral(new GeneralBuilder()
514                                 .setExclude(new ExcludeBuilder()
515                                         .setNodeId(Arrays.asList("OpenROADM-2-2"))
516                                         .build())
517                                 .setLatency(new LatencyBuilder().setMaxLatency(Uint32.valueOf(3223)).build())
518                                 .setInclude(new IncludeBuilder()
519                                         .setOrderedHops(Map.of(orderedHops.key(),orderedHops))
520                                         .build())
521                                 .build())
522                         .build())
523                 .build();
524         return input;
525     }
526
527     /**
528      * Generate Data for Test 2 result 5-4.
529      *
530      * @return output PathComputationRequestOutput data
531      */
532     public static PathComputationRequestOutput getPCE_test2_result_54() {
533         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
534         ResponseParameters responseParameters = new ResponseParametersBuilder()
535                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
536                 .build();
537         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
538                 .setResponseParameters(responseParameters);
539         return outputBuilder.build();
540     }
541
542     /**
543      * Generate Data for Test 2 request 5-4.
544      * <code>{
545      * "pce:input": {
546      * "pce:service-name": "service 1",
547      * "pce:resource-reserve": "true",
548      * "pce:service-handler-header": {
549      * "pce:request-id": "request 1"
550      * },
551      * "pce:service-a-end": {
552      * "pce:service-rate": "0",
553      * "pce:node-id": "XPONDER-1-2"
554      * },
555      * "pce:service-z-end": {
556      * "pce:service-rate": "0",
557      * "pce:node-id": "XPONDER-3-2"
558      * },
559      * "pce:hard-constraints": {
560      * "pce:exclude_": {
561      * "node-id": [ "OpenROADM-2-1", "OpenROADM-2-2" ]
562      * }
563      * },
564      * "pce:pce-metric": "hop-count"
565      * }
566      * }</code>
567      *
568      * @return input PathComputationRequestInput data
569      */
570     public static PathComputationRequestInput getPCE_test3_request_54() {
571         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
572                 .setRequestId("request 1")
573                 .build();
574         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
575                 .setServiceRate(Uint32.valueOf(0))
576                 .setNodeId("XPONDER-1-2")
577                 .build();
578         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
579                 .setServiceRate(Uint32.valueOf(0))
580                 .setNodeId("XPONDER-3-2")
581                 .build();
582         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
583                 .setServiceHandlerHeader(serviceHandlerHeader)
584                 .setServiceName("service 1")
585                 .setResourceReserve(true)
586                 .setPceMetric(PceMetric.HopCount)
587                 .setServiceAEnd(serviceAEnd)
588                 .setServiceZEnd(serviceZEnd)
589                 .setHardConstraints(new HardConstraintsBuilder()
590                         .setCoRoutingOrGeneral(new GeneralBuilder()
591                                 .setExclude(new ExcludeBuilder()
592                                         .setNodeId(Arrays.asList("OpenROADM-2-1", "OpenROADM-2-2"))
593                                         .build())
594                                 .build())
595                         .build())
596                 .build();
597         return input;
598     }
599
600     /**
601      * Generate Data for Test 3 result 5-4.
602      *
603      * @return output PathComputationRequestOutput data
604      */
605     public static PathComputationRequestOutput getPCE_test3_result_54() {
606         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
607         ResponseParameters responseParameters = new ResponseParametersBuilder()
608                 .setPathDescription(createPathDescription(0L, 9L, 0L, 9L))
609                 .build();
610         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
611                 .setResponseParameters(responseParameters);
612         return outputBuilder.build();
613     }
614
615     public static PathComputationRequestInput getPCE_simpletopology_test1_requestSetHardAndSoftConstrains() {
616         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
617                 .setRequestId("request 1")
618                 .build();
619         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
620                 .setServiceRate(Uint32.valueOf(0))
621                 .setNodeId("XPONDER-1-2")
622                 .build();
623         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
624                 .setServiceRate(Uint32.valueOf(0))
625                 .setNodeId("XPONDER-3-2")
626                 .build();
627         HardConstraints hardConstrains = new HardConstraintsBuilder().build();
628         SoftConstraints softConstraints = new SoftConstraintsBuilder().build();
629         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
630                 .setServiceHandlerHeader(serviceHandlerHeader)
631                 .setServiceName("service 1")
632                 .setResourceReserve(true)
633                 .setPceMetric(PceMetric.HopCount)
634                 .setServiceAEnd(serviceAEnd)
635                 .setServiceZEnd(serviceZEnd)
636                 .setHardConstraints(hardConstrains)
637                 .setSoftConstraints(softConstraints)
638                 .build();
639         return input;
640     }
641
642     public static PathComputationRequestInput getPCE_simpletopology_test1_request() {
643         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
644                 .setRequestId("request 1")
645                 .build();
646         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
647                 .setServiceRate(Uint32.valueOf(0))
648                 .setNodeId("XPONDER-1-2")
649                 .build();
650         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
651                 .setServiceRate(Uint32.valueOf(0))
652                 .setNodeId("XPONDER-3-2")
653                 .build();
654         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
655                 .setServiceHandlerHeader(serviceHandlerHeader)
656                 .setServiceName("service 1")
657                 .setResourceReserve(true)
658                 .setPceMetric(PceMetric.HopCount)
659                 .setServiceAEnd(serviceAEnd)
660                 .setServiceZEnd(serviceZEnd)
661                 .build();
662         return input;
663     }
664
665     public static PathComputationRequestOutput getPCE_simpletopology_test1_result(Long wl) {
666         PathComputationRequestOutputBuilder outputBuilder = new PathComputationRequestOutputBuilder();
667         ResponseParameters responseParameters = new ResponseParametersBuilder()
668                 .setPathDescription(createPathDescription(0L, wl, 0L, wl))
669                 .build();
670         outputBuilder.setConfigurationResponseCommon(createCommonSuccessResponse())
671                 .setResponseParameters(responseParameters);
672         return outputBuilder.build();
673     }
674
675     private static ConfigurationResponseCommon createCommonSuccessResponse() {
676         ConfigurationResponseCommonBuilder configurationResponseCommon = new ConfigurationResponseCommonBuilder()
677                 .setAckFinalIndicator(ResponseCodes.FINAL_ACK_YES)
678                 .setRequestId("request 1")
679                 .setResponseCode(ResponseCodes.RESPONSE_OK)
680                 .setResponseMessage("Path is calculated");
681         return configurationResponseCommon.build();
682     }
683
684     private static PathDescription createPathDescription(long azRate, long azWaveLength, long zaRate,
685                                                          long zaWaveLength) {
686         AToZDirection atozDirection = new AToZDirectionBuilder()
687                 .setRate(Uint32.valueOf(azRate))
688                 .setAToZWavelengthNumber(Uint32.valueOf(azWaveLength))
689                 .build();
690         ZToADirection ztoaDirection = new ZToADirectionBuilder()
691                 .setRate(Uint32.valueOf(zaRate))
692                 .setZToAWavelengthNumber(Uint32.valueOf(zaWaveLength))
693                 .build();
694         PathDescription pathDescription = new PathDescriptionBuilder()
695                 .setAToZDirection(atozDirection)
696                 .setZToADirection(ztoaDirection)
697                 .build();
698         return pathDescription;
699     }
700
701     /**
702      * Generate Data for Test Diversity test 1 request 5-4.
703      * <code>{
704      * "pce:input": {
705      * "pce:service-name": "service 1",
706      * "pce:resource-reserve": "true",
707      * "pce:service-handler-header": {
708      * "pce:request-id": "request 1"
709      * },
710      * "pce:service-a-end": {
711      * "pce:service-rate": "0",
712      * "pce:node-id": "XPONDER-1-1"
713      * },
714      * "pce:service-z-end": {
715      * "pce:service-rate": "0",
716      * "pce:node-id": "XPONDER-3-1"
717      * },
718      * "pce:hard-constraints": {
719      * "pce:diversity": {
720      * "existing-service": ["Path test-1-54"],
721      * "existing-service-applicability": {
722      * "node": "true"
723      * }
724      * }
725      * },
726      * "pce:pce-metric": "hop-count"
727      * }
728      * }</code>
729      *
730      * @param base Path Computation Request Input base
731      * @return input PathComputationRequestInput data
732      */
733     public static PathComputationRequestInput build_diversity_from_request(PathComputationRequestInput base) {
734
735         ExistingServiceApplicability nodeTrue = new ExistingServiceApplicabilityBuilder()
736                 .setNode(true).build();
737
738         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
739                 .setServiceRate(Uint32.valueOf(0))
740                 .setNodeId("XPONDER-1-1")
741                 .build();
742         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
743                 .setServiceRate(Uint32.valueOf(0))
744                 .setNodeId("XPONDER-3-1")
745                 .build();
746
747         PathComputationRequestInput input = new PathComputationRequestInputBuilder(base)
748                 .setServiceName("service 2")
749                 .setServiceAEnd(serviceAEnd)
750                 .setServiceZEnd(serviceZEnd)
751                 .setHardConstraints(new HardConstraintsBuilder()
752                         .setCoRoutingOrGeneral(new GeneralBuilder()
753                                 .setLatency(new LatencyBuilder()
754                                         .setMaxLatency(Uint32.valueOf(3223)).build())
755                                 .setDiversity(new DiversityBuilder()
756                                         .setExistingService(Arrays.asList(base.getServiceName()))
757                                         .setExistingServiceApplicability(nodeTrue)
758                                         .build())
759                                 .build())
760                         .build())
761                 .build();
762         return input;
763     }
764
765     public static ServiceCreateInput buildServiceCreateInput() {
766
767         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceAEnd serviceAEnd =
768                 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
769                         .service.create.input.ServiceAEndBuilder()
770                         .setClli("clli")
771                         .setServiceRate(Uint32.valueOf(0))
772                         .setNodeId(new NodeIdType("XPONDER-1-2"))
773                         .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
774                                 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
775                                 .setPort(new PortBuilder().build())
776                                 .build())
777                         .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
778                                 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
779                                 .setPort(new PortBuilder().build())
780                                 .build())
781                         .build();
782
783         org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.create.input.ServiceZEnd serviceZEnd =
784                 new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531
785                         .service.create.input.ServiceZEndBuilder()
786                         .setClli("clli")
787                         .setServiceRate(Uint32.valueOf(0))
788                         .setNodeId(new NodeIdType("XPONDER-3-2"))
789                         .setTxDirection(new org.opendaylight.yang.gen.v1.http.org
790                                 .openroadm.common.service.types.rev190531.service.endpoint.TxDirectionBuilder()
791                                 .setPort(new PortBuilder().build())
792                                 .build())
793                         .setRxDirection(new org.opendaylight.yang.gen.v1.http.org
794                                 .openroadm.common.service.types.rev190531.service.endpoint.RxDirectionBuilder()
795                                 .setPort(new PortBuilder().build())
796                                 .build())
797                         .build();
798
799         ServiceCreateInputBuilder builtInput = new ServiceCreateInputBuilder()
800                 .setCommonId("commonId")
801                 .setConnectionType(ConnectionType.Service)
802                 .setCustomer("Customer")
803                 .setServiceName("service 1")
804                 .setServiceAEnd(serviceAEnd)
805                 .setServiceZEnd(serviceZEnd)
806                 .setSdncRequestHeader(new SdncRequestHeaderBuilder()
807                         .setRequestId("request 1")
808                         .build());
809
810         return builtInput.build();
811     }
812
813     public static PathComputationRequestInput getGnpyPCERequest(String nodeA, String nodeZ) {
814         ServiceHandlerHeader serviceHandlerHeader = new ServiceHandlerHeaderBuilder()
815                 .setRequestId("request1")
816                 .build();
817         ServiceAEnd serviceAEnd = new ServiceAEndBuilder()
818                 .setServiceFormat(ServiceFormat.Ethernet)
819                 .setServiceRate(Uint32.valueOf(100))
820                 .setClli("clli11")
821                 .setNodeId(nodeA)
822                 .setTxDirection(new TxDirectionBuilder().setPort(
823                         new PortBuilder()
824                                 .setPortDeviceName("Some port-device-name")
825                                 .setPortType("Some port-type")
826                                 .setPortName("Some port-name")
827                                 .setPortRack("Some port-rack")
828                                 .setPortShelf("Some port-shelf")
829                                 .setPortSlot("Some port-slot")
830                                 .setPortSubSlot("Some port-sub-slot")
831                                 .build()
832                 ).build())
833                 .setRxDirection(new RxDirectionBuilder().setPort(
834                         new PortBuilder()
835                                 .setPortDeviceName("Some port-device-name")
836                                 .setPortType("Some port-type")
837                                 .setPortName("Some port-name")
838                                 .setPortRack("Some port-rack")
839                                 .setPortShelf("Some port-shelf")
840                                 .setPortSlot("Some port-slot")
841                                 .setPortSubSlot("Some port-sub-slot")
842                                 .build()
843                 ).build())
844                 .build();
845         ServiceZEnd serviceZEnd = new ServiceZEndBuilder()
846                 .setServiceFormat(ServiceFormat.Ethernet)
847                 .setServiceRate(Uint32.valueOf(0))
848                 .setClli("Some clli11")
849                 .setNodeId(nodeZ)
850                 .setTxDirection(new TxDirectionBuilder().setPort(
851                         new PortBuilder()
852                                 .setPortDeviceName("Some port-device-name")
853                                 .setPortType("Some port-type")
854                                 .setPortName("Some port-name")
855                                 .setPortRack("Some port-rack")
856                                 .setPortShelf("Some port-shelf")
857                                 .setPortSlot("Some port-slot")
858                                 .setPortSubSlot("Some port-sub-slot")
859                                 .build()
860                 ).build())
861                 .setRxDirection(new RxDirectionBuilder().setPort(
862                         new PortBuilder()
863                                 .setPortDeviceName("Some port-device-name")
864                                 .setPortType("Some port-type")
865                                 .setPortName("Some port-name")
866                                 .setPortRack("Some port-rack")
867                                 .setPortShelf("Some port-shelf")
868                                 .setPortSlot("Some port-slot")
869                                 .setPortSubSlot("Some port-sub-slot")
870                                 .build()
871                 ).build())
872                 .build();
873         PathComputationRequestInput input = new PathComputationRequestInputBuilder()
874                 .setServiceName("service1")
875                 .setResourceReserve(true)
876                 .setPceMetric(PceMetric.HopCount)
877                 .setLocallyProtectedLinks(true)
878                 .setServiceHandlerHeader(serviceHandlerHeader)
879                 .setServiceAEnd(serviceAEnd)
880                 .setServiceZEnd(serviceZEnd)
881                 .setHardConstraints(new HardConstraintsBuilder()
882                         .setCustomerCode(Arrays.asList("Some customer-code"))
883                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
884                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
885                                         .transportpce.b.c._interface.routing.constraints.rev171017
886                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
887                                         .setExistingService(Arrays.asList("Some existing-service"))
888                                         .build())
889                                 .build())
890                         .build())
891                 .setSoftConstraints(new SoftConstraintsBuilder()
892                         .setCustomerCode(Arrays.asList("Some customer-code"))
893                         .setCoRoutingOrGeneral(new CoRoutingBuilder()
894                                 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org
895                                         .transportpce.b.c._interface.routing.constraints.rev171017
896                                         .constraints.sp.co.routing.or.general.co.routing.CoRoutingBuilder()
897                                         .setExistingService(Arrays.asList("Some existing-service"))
898                                         .build())
899                                 .build())
900                         .build())
901                 .build();
902         return input;
903     }
904 }