Rewrite JUnit tests of OlmPowerServiceImplTest
[transportpce.git] / olm / src / test / java / org / opendaylight / transportpce / olm / util / OlmPowerServiceRpcImplUtil.java
1 /*
2  * Copyright © 2018 Orange, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.transportpce.olm.util;
10
11 import java.util.ArrayList;
12 import java.util.HashMap;
13 import java.util.List;
14 import java.util.Map;
15 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossBaseInput;
16 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossBaseInputBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.GetPmInput;
18 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.GetPmInputBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerResetInput;
20 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerResetInputBuilder;
21 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerSetupInput;
22 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerSetupInputBuilder;
23 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownInput;
24 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownInputBuilder;
25 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.OpenroadmNodeVersion;
26 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping;
27 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.MappingBuilder;
28 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.MappingKey;
29 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network.nodes.NodeInfoBuilder;
30 import org.opendaylight.yang.gen.v1.http.org.openroadm.device.types.rev191129.NodeTypes;
31 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlist;
32 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.CurrentPmlistBuilder;
33 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.MeasurementsBuilder;
34 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.ResourceBuilder;
35 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.current.pm.measurements.MeasurementBuilder;
36 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.currentpmlist.CurrentPm;
37 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.currentpmlist.CurrentPmBuilder;
38 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.rev161014.currentpmlist.CurrentPmKey;
39 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmDataType;
40 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmNamesEnum;
41 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.pm.measurement.PmParameterNameBuilder;
42 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.ResourceTypeBuilder;
43 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource.resource.resource.InterfaceBuilder;
44 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
45 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.PmGranularity;
46 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.olm.get.pm.input.ResourceIdentifierBuilder;
47 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.Nodes;
48 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev220926.optical.renderer.nodes.NodesBuilder;
49 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.LinkId;
50 import org.opendaylight.yangtools.yang.common.Decimal64;
51 import org.opendaylight.yangtools.yang.common.Uint32;
52
53 public final class OlmPowerServiceRpcImplUtil {
54
55     private OlmPowerServiceRpcImplUtil() {
56     }
57
58     public static GetPmInput  getGetPmInput() {
59         GetPmInput input = new GetPmInputBuilder()
60                 .setNodeId("node1")
61                 .setGranularity(PmGranularity._15min)
62                 .setResourceIdentifier(new ResourceIdentifierBuilder()
63                         .setResourceName("ots-deg1").build())
64                 .setResourceType(ResourceTypeEnum.Interface).build();
65         return input;
66     }
67
68     public static CurrentPmlist getCurrentPmList121() {
69         CurrentPm currentPm = new CurrentPmBuilder()
70                 .setId("id")
71                 .setGranularity(org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity._15min)
72                 .setResource(new ResourceBuilder()
73                         .setResourceType(new ResourceTypeBuilder()
74                                 .setType(ResourceTypeEnum.Interface)
75                                 .build())
76                         .setResource(new org.opendaylight.yang.gen.v1.http.org.openroadm.resource.rev161014.resource
77                                 .ResourceBuilder()
78                                 .setResource(new InterfaceBuilder()
79                                         .setInterfaceName("ots-deg1")
80                                         .build())
81                                 .build())
82                         .build())
83                 .setMeasurements(List.of(
84                         new MeasurementsBuilder()
85                                 .setMeasurement(new MeasurementBuilder()
86                                         .setPmParameterName(new PmParameterNameBuilder()
87                                                 .setType(PmNamesEnum.OpticalPowerInput)
88                                                 .build())
89                                         .setPmParameterValue(new PmDataType(Decimal64.valueOf("3")))
90                                         .build())
91                                 .build()))
92                 .build();
93         Map<CurrentPmKey, CurrentPm> currentPmMap = new HashMap<>();
94         currentPmMap.put(currentPm.key(), currentPm);
95         return new CurrentPmlistBuilder()
96                 .setCurrentPm(currentPmMap)
97                 .build();
98     }
99
100     public static ServicePowerSetupInput getServicePowerSetupInputForTransponder() {
101         return new ServicePowerSetupInputBuilder()
102                 .setNodes(List.of(
103                         new NodesBuilder().setNodeId("xpdr-A").setSrcTp("client-A").setDestTp("network-A").build(),
104                         new NodesBuilder().setNodeId("roadm-A").setSrcTp("srg1-A").setDestTp("deg2-A").build()))
105                 .setServiceName("service 1")
106                 .setWaveNumber(Uint32.valueOf("1"))
107                 .setLowerSpectralSlotNumber(Uint32.valueOf(761))
108                 .setHigherSpectralSlotNumber(Uint32.valueOf(768))
109                 .build();
110     }
111
112     public static ServicePowerSetupInput getServicePowerSetupInputForOneNode(String nodeId, String srcTp,
113             String destTp) {
114         return new ServicePowerSetupInputBuilder()
115                 .setNodes(List.of(
116                         new NodesBuilder().setNodeId(nodeId).setSrcTp(srcTp).setDestTp(destTp).build()))
117                 .setServiceName("service 1")
118                 .setWaveNumber(Uint32.valueOf("1"))
119                 .setLowerSpectralSlotNumber(Uint32.valueOf(761))
120                 .setHigherSpectralSlotNumber(Uint32.valueOf(768))
121                 .build();
122     }
123
124     public static ServicePowerSetupInput getServicePowerSetupInputWthoutNode() {
125         return new ServicePowerSetupInputBuilder()
126                 .setNodes(List.of())
127                 .setServiceName("service 1")
128                 .setWaveNumber(Uint32.valueOf("1"))
129                 .setLowerSpectralSlotNumber(Uint32.valueOf(761))
130                 .setHigherSpectralSlotNumber(Uint32.valueOf(768))
131                 .build();
132     }
133
134     public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
135             .Nodes getMappingNodeTpdr(String nodeId, OpenroadmNodeVersion nodeVersion, List<String> lcps) {
136         Map<MappingKey, Mapping> mappings = new HashMap();
137         for (String lcp:lcps) {
138             Mapping mapping = new MappingBuilder()
139                     .setLogicalConnectionPoint(lcp)
140                     .setSupportingCircuitPackName("circuit pack")
141                     .setSupportingPort("port")
142                     .build();
143             mappings.put(mapping.key(), mapping);
144         }
145         return new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
146                 .NodesBuilder()
147             .setNodeId(nodeId)
148             .setNodeInfo(new NodeInfoBuilder()
149                 .setNodeType(NodeTypes.Xpdr)
150                 .setOpenroadmVersion(nodeVersion)
151                 .build())
152             .setMapping(mappings)
153             .build();
154     }
155
156     public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
157             .Nodes getMappingNodeRdm(String nodeId, OpenroadmNodeVersion nodeVersion, List<String> lcps) {
158         Map<MappingKey, Mapping> mappings = new HashMap();
159         for (String lcp:lcps) {
160             MappingBuilder mappingBldr = new MappingBuilder()
161                     .setLogicalConnectionPoint(lcp)
162                     .setSupportingCircuitPackName("circuit pack")
163                     .setSupportingPort("port");
164             if (lcp.contains("deg")) {
165                 mappingBldr.setSupportingOts("interface ots")
166                         .setSupportingOms("interface oms");
167             }
168             mappings.put(mappingBldr.build().key(), mappingBldr.build());
169         }
170         return new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
171                     .NodesBuilder()
172                 .setNodeId(nodeId)
173                 .setNodeInfo(new NodeInfoBuilder()
174                         .setNodeType(NodeTypes.Rdm)
175                         .setOpenroadmVersion(nodeVersion)
176                         .build())
177                 .setMapping(mappings)
178                 .build();
179     }
180
181     public static org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
182             .Nodes getMappingNodeIla() {
183         return new org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.network
184                     .NodesBuilder()
185                 .setNodeId("ila node")
186                 .setNodeInfo(new NodeInfoBuilder()
187                         .setNodeType(NodeTypes.Ila)
188                         .setOpenroadmVersion(OpenroadmNodeVersion._121)
189                         .build())
190                 .build();
191     }
192
193     public static ServicePowerSetupInput getServicePowerSetupInput() {
194         Nodes node1 = new NodesBuilder().setDestTp("dest").setSrcTp("src").setNodeId("node 1").build();
195         Nodes node2 = new NodesBuilder().setDestTp("dest").setSrcTp("src").setNodeId("node 2").build();
196         List<Nodes> nodes = new ArrayList<>();
197         nodes.add(node1);
198         nodes.add(node2);
199         ServicePowerSetupInput input = new ServicePowerSetupInputBuilder().setNodes(nodes)
200             .setServiceName("service 1")
201             .setWaveNumber(Uint32.valueOf("1"))
202             .setLowerSpectralSlotNumber(Uint32.valueOf(761))
203             .setHigherSpectralSlotNumber(Uint32.valueOf(768))
204             .build();
205         return input;
206     }
207
208     public static ServicePowerSetupInput getServicePowerSetupInput2() {
209         Nodes node1 = new NodesBuilder().setDestTp("network").setSrcTp("src").setNodeId("node 1").build();
210         Nodes node2 = new NodesBuilder().setDestTp("network").setSrcTp("src").setNodeId("node 2").build();
211         List<Nodes> nodes = new ArrayList<>();
212         nodes.add(node1);
213         nodes.add(node2);
214         ServicePowerSetupInput input = new ServicePowerSetupInputBuilder().setNodes(nodes)
215             .setServiceName("service 1")
216             .setWaveNumber(Uint32.valueOf("1"))
217             .setLowerSpectralSlotNumber(Uint32.valueOf(761))
218             .setHigherSpectralSlotNumber(Uint32.valueOf(768)).build();
219         return input;
220     }
221
222     public static ServicePowerSetupInput getServicePowerSetupInput3() {
223         Nodes node1 = new NodesBuilder().setDestTp("deg").setSrcTp("src").setNodeId("node 1").build();
224         Nodes node2 = new NodesBuilder().setDestTp("deg").setSrcTp("src").setNodeId("node 2").build();
225         List<Nodes> nodes = new ArrayList<>();
226         nodes.add(node1);
227         nodes.add(node2);
228         ServicePowerSetupInput input = new ServicePowerSetupInputBuilder().setNodes(nodes)
229             .setServiceName("service 1")
230             .setWaveNumber(Uint32.valueOf("1"))
231             .setLowerSpectralSlotNumber(Uint32.valueOf(761))
232             .setHigherSpectralSlotNumber(Uint32.valueOf(768)).build();
233         return input;
234     }
235
236     public static ServicePowerTurndownInput getServicePowerTurndownInput() {
237         return new ServicePowerTurndownInputBuilder()
238                 .setNodes(List.of(
239                         new NodesBuilder().setNodeId("roadm-A").setSrcTp("srg1-A").setDestTp("deg2-A").build(),
240                         new NodesBuilder().setNodeId("roadm-C").setSrcTp("deg1-C").setDestTp("srg1-C").build())
241                         )
242                 .setServiceName("service 1")
243                 .setWaveNumber(Uint32.valueOf("1"))
244                 .setLowerSpectralSlotNumber(Uint32.valueOf(761))
245                 .setHigherSpectralSlotNumber(Uint32.valueOf(768))
246                 .build();
247     }
248
249     public static CalculateSpanlossBaseInput getCalculateSpanlossBaseInputLink() {
250         CalculateSpanlossBaseInput input = new CalculateSpanlossBaseInputBuilder()
251                 .setLinkId(new LinkId("ROADM-A1-to-ROADM-C1"))
252                 .setSrcType(CalculateSpanlossBaseInput.SrcType.Link)
253                 .build();
254         return input;
255     }
256
257     public static CalculateSpanlossBaseInput getCalculateSpanlossBaseInputAll() {
258         CalculateSpanlossBaseInput input = new CalculateSpanlossBaseInputBuilder()
259                 .setSrcType(CalculateSpanlossBaseInput.SrcType.All)
260                 .build();
261         return input;
262     }
263
264     public static ServicePowerResetInput getServicePowerResetInput() {
265         ServicePowerResetInput input = new ServicePowerResetInputBuilder()
266             .setServiceName("service 1").build();
267         return input;
268     }
269 }