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