Migrate tapi module to JUnit5
[transportpce.git] / tapi / src / test / java / org / opendaylight / transportpce / tapi / utils / TapiConnectivityDataUtils.java
1 /*
2  * Copyright © 2021 Nokia, 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.tapi.utils;
9
10 import java.nio.charset.StandardCharsets;
11 import java.util.HashMap;
12 import java.util.Map;
13 import java.util.UUID;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev210528.NodeIdType;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ConnectionType;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.RpcActions;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.sdnc.request.header.SdncRequestHeaderBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirection;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.RxDirectionKey;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirection;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.endpoint.TxDirectionKey;
24 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.lgx.LgxBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.service.port.PortBuilder;
26 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.format.rev191129.ServiceFormat;
27 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput;
28 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder;
29 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceAEndBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.create.input.ServiceZEndBuilder;
31 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.AdministrativeState;
32 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.CapacityUnit;
33 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.ForwardingDirection;
34 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LayerProtocolName;
35 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.LifecycleState;
36 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.OperationalState;
37 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.PortDirection;
38 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.PortRole;
39 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.Uuid;
40 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.capacity.TotalSizeBuilder;
41 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.Name;
42 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.local._class.NameBuilder;
43 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.CreateConnectivityServiceInput;
44 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.CreateConnectivityServiceInputBuilder;
45 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.DeleteConnectivityServiceInput;
46 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.DeleteConnectivityServiceInputBuilder;
47 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.ProtectionRole;
48 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.ServiceType;
49 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.constraint.RequestedCapacityBuilder;
50 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectivityService;
51 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectivityServiceBuilder;
52 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.context.ConnectivityServiceKey;
53 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.Connection;
54 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.ConnectionBuilder;
55 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.ConnectionKey;
56 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.end.point.ServiceInterfacePointBuilder;
57 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.create.connectivity.service.input.ConnectivityConstraintBuilder;
58 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.create.connectivity.service.input.EndPoint;
59 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.create.connectivity.service.input.EndPointBuilder;
60 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.create.connectivity.service.input.EndPointKey;
61 import org.opendaylight.yangtools.yang.common.Uint32;
62 import org.opendaylight.yangtools.yang.common.Uint64;
63 import org.opendaylight.yangtools.yang.common.Uint8;
64
65 public final class TapiConnectivityDataUtils {
66     public static CreateConnectivityServiceInput buildConnServiceCreateInput() {
67
68         EndPoint endPoint1 = getEndPoint1Builder().build();
69         EndPoint endPoint2 = getEndPoint2Builder().build();
70         Map<EndPointKey, EndPoint> endPointMap = new HashMap<>();
71         endPointMap.put(endPoint1.key(), endPoint1);
72         endPointMap.put(endPoint2.key(), endPoint2);
73
74         return new CreateConnectivityServiceInputBuilder()
75             .setEndPoint(endPointMap)
76             .setConnectivityConstraint(new ConnectivityConstraintBuilder().setServiceLayer(LayerProtocolName.DSR)
77                 .setServiceType(ServiceType.POINTTOPOINTCONNECTIVITY).setServiceLevel("some service-level")
78                 .setRequestedCapacity(new RequestedCapacityBuilder()
79                     .setTotalSize(new TotalSizeBuilder().setUnit(CapacityUnit.GBPS)
80                         .setValue(Uint64.valueOf(10)).build()).build()).build())
81             .setState("some state")
82             .build();
83     }
84
85     public static DeleteConnectivityServiceInput buildConnServiceDeleteInput() {
86         return new DeleteConnectivityServiceInputBuilder()
87             .setServiceIdOrName(UUID.nameUUIDFromBytes("service 1".getBytes(StandardCharsets.UTF_8)).toString())
88             .build();
89     }
90
91     private static EndPointBuilder getEndPoint2Builder() {
92         Name name = new NameBuilder().setValueName("OpenROADM node id").setValue("SPDR-SC1-XPDR1").build();
93         return new EndPointBuilder().setLayerProtocolName(LayerProtocolName.DSR)
94             .setAdministrativeState(AdministrativeState.UNLOCKED)
95             .setOperationalState(OperationalState.ENABLED)
96             .setDirection(PortDirection.BIDIRECTIONAL)
97             .setRole(PortRole.SYMMETRIC)
98             .setProtectionRole(ProtectionRole.NA)
99             .setLocalId("SPDR-SC1-XPDR1")
100             .setName(Map.of(name.key(), name))
101             .setServiceInterfacePoint(new ServiceInterfacePointBuilder().setServiceInterfacePointUuid(
102                 new Uuid("25812ef2-625d-3bf8-af55-5e93946d1c22")).build());
103     }
104
105     private static EndPointBuilder getEndPoint1Builder() {
106         Name name = new NameBuilder().setValueName("OpenROADM node id").setValue("SPDR-SA1-XPDR1").build();
107         return new EndPointBuilder().setLayerProtocolName(LayerProtocolName.DSR)
108             .setAdministrativeState(AdministrativeState.UNLOCKED)
109             .setOperationalState(OperationalState.ENABLED)
110             .setDirection(PortDirection.BIDIRECTIONAL)
111             .setRole(PortRole.SYMMETRIC)
112             .setProtectionRole(ProtectionRole.NA)
113             .setLocalId("SPDR-SA1-XPDR1")
114             .setName(Map.of(name.key(), name))
115             .setServiceInterfacePoint(new ServiceInterfacePointBuilder().setServiceInterfacePointUuid(
116                 new Uuid("c14797a0-adcc-3875-a1fe-df8949d1a2d7")).build());
117     }
118
119     public static ServiceCreateInput buildServiceCreateInput() {
120         return new ServiceCreateInputBuilder()
121             .setCommonId("commonId")
122             .setConnectionType(ConnectionType.Service)
123             .setCustomer("Customer")
124             .setServiceName(UUID.nameUUIDFromBytes("service 1".getBytes(StandardCharsets.UTF_8)).toString())
125             .setServiceAEnd(getServiceAEndBuild().build())
126             .setServiceZEnd(getServiceZEndBuild().build())
127             .setSdncRequestHeader(new SdncRequestHeaderBuilder().setRequestId("request 1")
128                 .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build())
129             .build();
130     }
131
132     public static ServiceAEndBuilder getServiceAEndBuild() {
133         return new ServiceAEndBuilder()
134             .setClli("NodeSA").setServiceFormat(ServiceFormat.Ethernet).setServiceRate(Uint32.valueOf(10))
135             .setNodeId(new NodeIdType("SPDR-SA1"))
136             .setTxDirection(getTxDirection())
137             .setRxDirection(getRxDirection());
138     }
139
140     public static ServiceZEndBuilder getServiceZEndBuild() {
141         return new ServiceZEndBuilder()
142             .setClli("NodeSC").setServiceFormat(ServiceFormat.Ethernet).setServiceRate(Uint32.valueOf(10))
143             .setNodeId(new NodeIdType("SPDR-SC1"))
144             .setTxDirection(getTxDirection())
145             .setRxDirection(getRxDirection());
146     }
147
148     private static Map<TxDirectionKey, TxDirection> getTxDirection() {
149         return Map.of(new TxDirectionKey(Uint8.ZERO), new TxDirectionBuilder()
150             .setPort(new PortBuilder().setPortDeviceName("device name")
151             .setPortName("port name").setPortRack("port rack").setPortShelf("port shelf")
152             .setPortSlot("port slot").setPortSubSlot("port subslot").setPortType("port type").build())
153             .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name").setLgxPortName("lgx port name")
154                 .setLgxPortRack("lgx port rack").setLgxPortShelf("lgx port shelf").build())
155             .setIndex(Uint8.ZERO)
156             .build());
157     }
158
159     private static Map<RxDirectionKey, RxDirection> getRxDirection() {
160         return Map.of(new RxDirectionKey(Uint8.ZERO), new RxDirectionBuilder()
161             .setPort(new PortBuilder().setPortDeviceName("device name").setPortName("port name")
162                 .setPortRack("port rack").setPortShelf("port shelf").setPortSlot("port slot")
163                 .setPortSubSlot("port subslot").setPortType("port type").build())
164             .setLgx(new LgxBuilder().setLgxDeviceName("lgx device name")
165                 .setLgxPortName("lgx port name").setLgxPortRack("lgx port rack")
166                 .setLgxPortShelf("lgx port shelf").build())
167             .setIndex(Uint8.ZERO)
168             .build());
169     }
170
171     public static Map<ConnectivityServiceKey, ConnectivityService> createConnService() {
172         EndPoint endPoint1 = getEndPoint1Builder().build();
173         EndPoint endPoint2 = getEndPoint2Builder().build();
174
175         org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPoint
176             endPoint11 = new org.opendaylight.yang.gen.v1.urn
177                 .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPointBuilder(endPoint1).build();
178
179         org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPoint
180             endPoint12 = new org.opendaylight.yang.gen.v1.urn
181                 .onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPointBuilder(endPoint2).build();
182
183         Map<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPointKey,
184             org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210.connectivity.service.EndPoint>
185                 endPointMap = new HashMap<>();
186         endPointMap.put(endPoint11.key(), endPoint11);
187         endPointMap.put(endPoint12.key(), endPoint12);
188
189         Map<ConnectionKey, Connection> connectionMap = new HashMap<>();
190         Connection connection = new ConnectionBuilder().setConnectionUuid(new Uuid(UUID.randomUUID().toString()))
191             .build();
192         connectionMap.put(connection.key(), connection);
193
194         org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.Name name =
195             new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev181210.global._class.NameBuilder()
196                 .setValueName("Connectivity Service Name").setValue("service 1")
197                 .build();
198         ConnectivityService connServ = new ConnectivityServiceBuilder()
199             .setAdministrativeState(AdministrativeState.LOCKED)
200             .setOperationalState(OperationalState.DISABLED)
201             .setLifecycleState(LifecycleState.PLANNED)
202             .setUuid(new Uuid(UUID.nameUUIDFromBytes("service 1".getBytes(StandardCharsets.UTF_8)).toString()))
203             .setServiceLayer(LayerProtocolName.DSR)
204             .setServiceType(ServiceType.POINTTOPOINTCONNECTIVITY)
205             .setConnectivityDirection(ForwardingDirection.BIDIRECTIONAL)
206             .setName(Map.of(name.key(), name))
207             .setConnection(connectionMap)
208             .setEndPoint(endPointMap)
209             .build();
210         Map<ConnectivityServiceKey, ConnectivityService> connMap = new HashMap<>();
211         connMap.put(connServ.key(), connServ);
212         return connMap;
213     }
214
215     public static DeleteConnectivityServiceInput buildConnServiceDeleteInput1() {
216         return new DeleteConnectivityServiceInputBuilder()
217             .setServiceIdOrName("random-service").build();
218     }
219
220     private TapiConnectivityDataUtils() {
221     }
222 }