Device Renderer to support transponder for B100G
[transportpce.git] / renderer / src / test / java / org / opendaylight / transportpce / renderer / provisiondevice / RendererServiceOperationsImplTest.java
1 /*
2  * Copyright © 2018 Orange Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.transportpce.renderer.provisiondevice;
9
10 import java.util.ArrayList;
11 import java.util.List;
12 import java.util.concurrent.ExecutionException;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Ignore;
16 import org.junit.Test;
17 import org.mockito.Mockito;
18 import org.opendaylight.mdsal.binding.api.MountPoint;
19 import org.opendaylight.mdsal.binding.api.MountPointService;
20 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
21 import org.opendaylight.transportpce.common.ResponseCodes;
22 import org.opendaylight.transportpce.common.StringConstants;
23 import org.opendaylight.transportpce.common.crossconnect.CrossConnect;
24 import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl;
25 import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl121;
26 import org.opendaylight.transportpce.common.crossconnect.CrossConnectImpl221;
27 import org.opendaylight.transportpce.common.device.DeviceTransactionManager;
28 import org.opendaylight.transportpce.common.device.DeviceTransactionManagerImpl;
29 import org.opendaylight.transportpce.common.mapping.MappingUtils;
30 import org.opendaylight.transportpce.common.mapping.MappingUtilsImpl;
31 import org.opendaylight.transportpce.common.mapping.PortMapping;
32 import org.opendaylight.transportpce.common.mapping.PortMappingImpl;
33 import org.opendaylight.transportpce.common.mapping.PortMappingVersion121;
34 import org.opendaylight.transportpce.common.mapping.PortMappingVersion221;
35 import org.opendaylight.transportpce.common.mapping.PortMappingVersion710;
36 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaceException;
37 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfaces;
38 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl;
39 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl121;
40 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl221;
41 import org.opendaylight.transportpce.common.openroadminterfaces.OpenRoadmInterfacesImpl710;
42 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface121;
43 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface221;
44 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterface710;
45 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmInterfaceFactory;
46 import org.opendaylight.transportpce.renderer.openroadminterface.OpenRoadmOtnInterface221;
47 import org.opendaylight.transportpce.renderer.stub.OlmServiceStub;
48 import org.opendaylight.transportpce.renderer.utils.MountPointUtils;
49 import org.opendaylight.transportpce.renderer.utils.NotificationPublishServiceMock;
50 import org.opendaylight.transportpce.renderer.utils.ServiceDataUtils;
51 import org.opendaylight.transportpce.test.AbstractTest;
52 import org.opendaylight.transportpce.test.stub.MountPointServiceStub;
53 import org.opendaylight.transportpce.test.stub.MountPointStub;
54 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.device.renderer.rev200128.ServicePathOutputBuilder;
55 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInput;
56 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmInputBuilder;
57 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmOutput;
58 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.GetPmOutputBuilder;
59 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.TransportpceOlmService;
60 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.get.pm.output.Measurements;
61 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev170418.get.pm.output.MeasurementsBuilder;
62 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestInput;
63 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev201125.ServiceImplementationRequestOutput;
64 import org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev161014.PmGranularity;
65 import org.opendaylight.yang.gen.v1.http.org.openroadm.resource.types.rev161014.ResourceTypeEnum;
66 import org.opendaylight.yang.gen.v1.http.org.transportpce.common.types.rev201211.olm.get.pm.input.ResourceIdentifierBuilder;
67 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
68
69 @Ignore
70 public class RendererServiceOperationsImplTest extends AbstractTest {
71
72     private MountPointService mountPointService;
73     private DeviceTransactionManager deviceTransactionManager;
74     private RendererServiceOperationsImpl rendererServiceOperations;
75     private OpenRoadmInterfaces openRoadmInterfaces;
76     private DeviceRendererService deviceRenderer;
77     private OtnDeviceRendererService otnDeviceRendererService;
78     private PortMapping portMapping;
79     private OpenRoadmInterfaceFactory openRoadmInterfaceFactory;
80     private CrossConnect crossConnect;
81     private TransportpceOlmService olmService;
82     private MappingUtils mappingUtils;
83     private OpenRoadmInterfacesImpl121 openRoadmInterfacesImpl121;
84     private OpenRoadmInterfacesImpl221 openRoadmInterfacesImpl221;
85     private OpenRoadmInterfacesImpl710 openRoadmInterfacesImpl710;
86     private PortMappingVersion710 portMappingVersion710;
87     private PortMappingVersion221 portMappingVersion22;
88     private PortMappingVersion121 portMappingVersion121;
89     private CrossConnectImpl121 crossConnectImpl121;
90     private CrossConnectImpl221 crossConnectImpl221;
91
92     private void setMountPoint(MountPoint mountPoint) {
93         this.mountPointService = new MountPointServiceStub(mountPoint);
94         this.deviceTransactionManager = new DeviceTransactionManagerImpl(this.mountPointService, 3000);
95         this.openRoadmInterfacesImpl121 = new OpenRoadmInterfacesImpl121(deviceTransactionManager);
96         this.openRoadmInterfacesImpl221 = new OpenRoadmInterfacesImpl221(deviceTransactionManager);
97         this.openRoadmInterfacesImpl710 = new OpenRoadmInterfacesImpl710(deviceTransactionManager);
98         this.mappingUtils = new MappingUtilsImpl(getDataBroker());
99         this.openRoadmInterfaces = new OpenRoadmInterfacesImpl(deviceTransactionManager, mappingUtils,
100             openRoadmInterfacesImpl121, openRoadmInterfacesImpl221, openRoadmInterfacesImpl710);
101         this.openRoadmInterfaces = Mockito.spy(this.openRoadmInterfaces);
102         this.portMappingVersion22 =
103             new PortMappingVersion221(getDataBroker(), deviceTransactionManager, this.openRoadmInterfaces);
104         this.portMappingVersion121 =
105             new PortMappingVersion121(getDataBroker(), deviceTransactionManager, this.openRoadmInterfaces);
106         this.portMappingVersion710 =
107             new PortMappingVersion710(getDataBroker(), deviceTransactionManager, this.openRoadmInterfaces);
108         this.portMapping = new PortMappingImpl(getDataBroker(), this.portMappingVersion710, this.portMappingVersion22,
109             this.portMappingVersion121);
110         OpenRoadmInterface121 openRoadmInterface121 = new OpenRoadmInterface121(portMapping,openRoadmInterfaces);
111         OpenRoadmInterface221 openRoadmInterface221 = new OpenRoadmInterface221(portMapping,openRoadmInterfaces);
112         OpenRoadmInterface710 openRoadmInterface710 = new OpenRoadmInterface710(portMapping,openRoadmInterfaces);
113         OpenRoadmOtnInterface221 openRoadmOTNInterface = new OpenRoadmOtnInterface221(portMapping, openRoadmInterfaces);
114         this.openRoadmInterfaceFactory = new OpenRoadmInterfaceFactory(this.mappingUtils,openRoadmInterface121,
115             openRoadmInterface221, openRoadmInterface710, openRoadmOTNInterface);
116         this.crossConnectImpl121 = new CrossConnectImpl121(deviceTransactionManager);
117         this.crossConnectImpl221 = new CrossConnectImpl221(deviceTransactionManager);
118         this.crossConnect = new CrossConnectImpl(deviceTransactionManager, this.mappingUtils, this.crossConnectImpl121,
119             this.crossConnectImpl221);
120     }
121
122     @Before
123     public void setUp() throws OpenRoadmInterfaceException {
124         setMountPoint(new MountPointStub(getDataBroker()));
125         this.olmService = new OlmServiceStub();
126         this.deviceRenderer = new DeviceRendererServiceImpl(this.getDataBroker(), this.deviceTransactionManager,
127             openRoadmInterfaceFactory, openRoadmInterfaces, crossConnect, portMapping, null);
128         this.otnDeviceRendererService = new OtnDeviceRendererServiceImpl(openRoadmInterfaceFactory, this.crossConnect,
129             openRoadmInterfaces, this.deviceTransactionManager, null);
130         Mockito.doNothing().when(this.openRoadmInterfaces).postEquipmentState(Mockito.anyString(),
131             Mockito.anyString(), Mockito.anyBoolean());
132         NotificationPublishService notificationPublishService = new NotificationPublishServiceMock();
133         this.olmService = Mockito.spy(this.olmService);
134         this.deviceRenderer = Mockito.spy(this.deviceRenderer);
135         this.rendererServiceOperations =  new RendererServiceOperationsImpl(this.deviceRenderer,
136             this.otnDeviceRendererService, this.olmService, getDataBroker(), notificationPublishService);
137
138         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
139             .setSuccess(true);
140         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
141             Mockito.any());
142     }
143
144     @Test
145     public void serviceImplementationTerminationPointAsResourceTtp() throws InterruptedException, ExecutionException {
146
147         ServiceImplementationRequestInput input = ServiceDataUtils
148             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.TTP_TOKEN);
149         writePortMapping(input, StringConstants.TTP_TOKEN);
150         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
151             .setSuccess(true);
152         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
153             Mockito.any());
154         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
155         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
156
157     }
158
159     @Test
160     public void serviceImplementationTerminationPointAsResourceTtp2() throws InterruptedException, ExecutionException {
161
162         ServiceImplementationRequestInput input = ServiceDataUtils
163             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.TTP_TOKEN);
164         writePortMapping(input, StringConstants.TTP_TOKEN);
165         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
166             .setSuccess(true);
167         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
168             Mockito.any());
169         Mockito.doReturn(RpcResultBuilder.failed().buildFuture()).when(this.olmService)
170             .servicePowerSetup(Mockito.any());
171         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
172         Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, result.getConfigurationResponseCommon().getResponseCode());
173
174     }
175
176     @Test
177     public void serviceImplementationTerminationPointAsResourcePp() throws InterruptedException, ExecutionException {
178
179         ServiceImplementationRequestInput input = ServiceDataUtils
180             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.PP_TOKEN);
181         writePortMapping(input, StringConstants.PP_TOKEN);
182         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
183             .setSuccess(true);
184         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
185             Mockito.any());
186         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
187         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
188
189     }
190
191     @Test
192     public void serviceImplementationTerminationPointAsResourceNetwork()
193         throws InterruptedException, ExecutionException {
194
195         ServiceImplementationRequestInput input = ServiceDataUtils
196             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
197         writePortMapping(input, StringConstants.NETWORK_TOKEN);
198         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
199             .setSuccess(true);
200         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
201             Mockito.any());
202         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
203         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
204
205     }
206
207     @Test
208     public void serviceImplementationTerminationPointAsResourceClient()
209         throws InterruptedException, ExecutionException {
210
211         ServiceImplementationRequestInput input = ServiceDataUtils
212      //       .buildServiceImplementationRequestInputTerminationPointResource(OpenRoadmInterfacesImpl.CLIENT_TOKEN);
213             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.CLIENT_TOKEN);
214      //   writePortMapping(input, OpenRoadmInterfacesImpl.CLIENT_TOKEN);
215         writePortMapping(input, StringConstants.CLIENT_TOKEN);
216         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
217         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
218     }
219
220     @Test
221     public void serviceImplementationTerminationPointAsResourceNoMapping()
222         throws InterruptedException, ExecutionException {
223
224         String[] interfaceTokens = {
225             StringConstants.NETWORK_TOKEN,
226             StringConstants.CLIENT_TOKEN,
227             StringConstants.TTP_TOKEN,
228             StringConstants.PP_TOKEN
229         };
230
231         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("failed")
232             .setSuccess(false);
233         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
234             Mockito.any());
235
236         for (String tpToken : interfaceTokens) {
237             ServiceImplementationRequestInput input = ServiceDataUtils
238                 .buildServiceImplementationRequestInputTerminationPointResource(tpToken);
239             ServiceImplementationRequestOutput result =
240                 this.rendererServiceOperations.serviceImplementation(input).get();
241             Assert.assertEquals(ResponseCodes.RESPONSE_FAILED,
242                 result.getConfigurationResponseCommon().getResponseCode());
243         }
244     }
245
246     private void writePortMapping(ServiceImplementationRequestInput input, String tpToken) {
247         MountPointUtils.writeMapping(
248             input.getServiceAEnd().getNodeId(),
249             input.getServiceAEnd().getNodeId() + "-" + tpToken,
250             this.deviceTransactionManager
251         );
252         MountPointUtils.writeMapping(
253             input.getServiceZEnd().getNodeId(),
254             input.getServiceZEnd().getNodeId() + "-"
255                 + input.getServiceAEnd().getNodeId() + "-" + tpToken,
256             this.deviceTransactionManager
257         );
258         MountPointUtils.writeMapping(
259             input.getServiceAEnd().getNodeId(),
260             input.getServiceAEnd().getNodeId() + "-"
261                 + input.getServiceZEnd().getNodeId() + "-" + tpToken,
262             this.deviceTransactionManager
263         );
264         MountPointUtils.writeMapping(
265             input.getServiceZEnd().getNodeId(),
266             input.getServiceZEnd().getNodeId() + "-" + tpToken,
267             this.deviceTransactionManager
268         );
269     }
270
271     @Test
272     public void serviceImplementationRollbackAllNecessary() throws InterruptedException, ExecutionException {
273
274         ServiceImplementationRequestInput input = ServiceDataUtils
275             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
276         writePortMapping(input, StringConstants.NETWORK_TOKEN);
277         Mockito.doReturn(RpcResultBuilder.failed().buildFuture()).when(this.olmService)
278             .servicePowerSetup(Mockito.any());
279         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
280         Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, result.getConfigurationResponseCommon().getResponseCode());
281
282     }
283
284     private GetPmInput createGetPmInput(String nodeId, String tp) {
285         GetPmInputBuilder getPmIpBldr = new GetPmInputBuilder();
286         getPmIpBldr.setNodeId(nodeId);
287         getPmIpBldr.setGranularity(PmGranularity._15min);
288         ResourceIdentifierBuilder rsrcBldr = new ResourceIdentifierBuilder();
289         rsrcBldr.setResourceName(tp + "-OTU");
290         getPmIpBldr.setResourceIdentifier(rsrcBldr.build());
291         getPmIpBldr.setResourceType(ResourceTypeEnum.Interface);
292         return getPmIpBldr.build();
293     }
294
295     @Test
296     public void serviceImplementationServiceInActive() throws InterruptedException, ExecutionException {
297
298         ServiceImplementationRequestInput input = ServiceDataUtils
299             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
300         writePortMapping(input, StringConstants.NETWORK_TOKEN);
301         Measurements measurements = new MeasurementsBuilder().setPmparameterName("FECUncorrectableBlocks")
302             .setPmparameterValue("1").build();
303         List<Measurements> measurementsList = new ArrayList<Measurements>();
304         measurementsList.add(measurements);
305         GetPmOutput getPmOutput = new GetPmOutputBuilder()
306             .setNodeId("node1").setMeasurements(measurementsList).build();
307         Mockito.doReturn(RpcResultBuilder.success(getPmOutput).buildFuture()).when(this.olmService)
308             .getPm(Mockito.any());
309         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
310         Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, result.getConfigurationResponseCommon().getResponseCode());
311
312     }
313
314     @Test
315     public void serviceImplementationServiceInActive2() throws InterruptedException, ExecutionException {
316
317         ServiceImplementationRequestInput input = ServiceDataUtils
318             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
319         writePortMapping(input, StringConstants.NETWORK_TOKEN);
320         Measurements measurements = new MeasurementsBuilder().setPmparameterName("FECUncorrectableBlocks")
321             .setPmparameterValue("1").build();
322         List<Measurements> measurementsList = new ArrayList<Measurements>();
323         measurementsList.add(measurements);
324         GetPmOutput getPmOutput = new GetPmOutputBuilder()
325             .setNodeId("node1").setMeasurements(measurementsList).build();
326         GetPmOutput getPmOutput2 = new GetPmOutputBuilder()
327             .setNodeId("node1").setMeasurements(new ArrayList<>()).build();
328
329         Mockito.when(this.olmService.getPm(Mockito.any()))
330             .thenReturn(RpcResultBuilder.success(getPmOutput).buildFuture());
331         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
332         Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, result.getConfigurationResponseCommon().getResponseCode());
333
334     }
335
336     @Test
337     public void serviceImplementationServiceInActive3() throws InterruptedException, ExecutionException {
338
339         ServiceImplementationRequestInput input = ServiceDataUtils
340             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
341         writePortMapping(input, StringConstants.NETWORK_TOKEN);
342         Measurements measurements = new MeasurementsBuilder().setPmparameterName("FECUncorrectableBlocks")
343             .setPmparameterValue("1").build();
344         List<Measurements> measurementsList = new ArrayList<Measurements>();
345         measurementsList.add(measurements);
346         GetPmOutput getPmOutput = new GetPmOutputBuilder()
347             .setNodeId("node1").setMeasurements(measurementsList).build();
348         GetPmOutput getPmOutput2 = new GetPmOutputBuilder()
349             .setNodeId("node1").setMeasurements(new ArrayList<>()).build();
350
351         GetPmInput getPmInputZ = createGetPmInput("XPONDER-2-3",
352             StringConstants.NETWORK_TOKEN);
353         GetPmInput getPmInputA = createGetPmInput("XPONDER-1-2",
354             StringConstants.NETWORK_TOKEN);
355
356         Mockito.when(this.olmService.getPm(Mockito.eq(getPmInputZ)))
357             .thenReturn(RpcResultBuilder.success(getPmOutput2).buildFuture());
358         Mockito.when(this.olmService.getPm(Mockito.eq(getPmInputA)))
359             .thenReturn(RpcResultBuilder.success(getPmOutput).buildFuture());
360         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
361         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
362
363     }
364
365     @Test
366     public void serviceImplementationServiceActive() throws InterruptedException, ExecutionException {
367
368         ServiceImplementationRequestInput input = ServiceDataUtils
369             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
370         writePortMapping(input, StringConstants.NETWORK_TOKEN);
371         GetPmOutput getPmOutput = new GetPmOutputBuilder()
372             .setNodeId("node1").setMeasurements(new ArrayList<>()).build();
373         GetPmOutput getPmOutput1 = null;
374         Mockito.when(this.olmService.getPm(Mockito.any())).thenReturn(RpcResultBuilder.success(getPmOutput1)
375             .buildFuture());
376         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
377             .setSuccess(true);
378         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
379             Mockito.any());
380         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
381         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
382
383     }
384
385     @Test
386     public void serviceImplementationServiceActive2() throws InterruptedException, ExecutionException {
387
388         ServiceImplementationRequestInput input = ServiceDataUtils
389             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
390         writePortMapping(input, StringConstants.NETWORK_TOKEN);
391         GetPmOutput getPmOutput = new GetPmOutputBuilder().setMeasurements(new ArrayList<>()).build();
392         Mockito.when(this.olmService.getPm(Mockito.any())).thenReturn(RpcResultBuilder.success(getPmOutput)
393             .buildFuture());
394         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
395             .setSuccess(true);
396         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
397             Mockito.any());
398         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
399         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
400
401     }
402
403     @Test
404     public void serviceImplementationServiceInActive4() throws InterruptedException, ExecutionException {
405
406         ServiceImplementationRequestInput input = ServiceDataUtils
407             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
408         writePortMapping(input, StringConstants.NETWORK_TOKEN);
409         Measurements measurements = new MeasurementsBuilder().setPmparameterName("preFECCorrectedErrors")
410             .setPmparameterValue("1").build();
411         List<Measurements> measurementsList = new ArrayList<Measurements>();
412         measurementsList.add(measurements);
413         GetPmOutput getPmOutput = new GetPmOutputBuilder()
414             .setNodeId("node1").setMeasurements(measurementsList).build();
415
416         Mockito.doReturn(RpcResultBuilder.success(getPmOutput).buildFuture()).when(this.olmService)
417             .getPm(Mockito.any());
418         ServicePathOutputBuilder mockOutputBuilder = new ServicePathOutputBuilder().setResult("success")
419             .setSuccess(true);
420         Mockito.doReturn(mockOutputBuilder.build()).when(this.deviceRenderer).setupServicePath(Mockito.any(),
421             Mockito.any());
422         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
423         Assert.assertEquals(ResponseCodes.RESPONSE_OK, result.getConfigurationResponseCommon().getResponseCode());
424
425     }
426
427     @Test
428     public void serviceImplementationServiceInActive5() throws InterruptedException, ExecutionException {
429
430         ServiceImplementationRequestInput input = ServiceDataUtils
431             .buildServiceImplementationRequestInputTerminationPointResource(StringConstants.NETWORK_TOKEN);
432         writePortMapping(input, StringConstants.NETWORK_TOKEN);
433         Measurements measurements = new MeasurementsBuilder().setPmparameterName("preFECCorrectedErrors")
434             .setPmparameterValue("112000000000d").build();
435         List<Measurements> measurementsList = new ArrayList<Measurements>();
436         measurementsList.add(measurements);
437         GetPmOutput getPmOutput = new GetPmOutputBuilder()
438             .setNodeId("node1").setMeasurements(measurementsList).build();
439
440         Mockito.doReturn(RpcResultBuilder.success(getPmOutput).buildFuture()).when(this.olmService)
441             .getPm(Mockito.any());
442         ServiceImplementationRequestOutput result = this.rendererServiceOperations.serviceImplementation(input).get();
443         Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, result.getConfigurationResponseCommon().getResponseCode());
444
445     }
446 }