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