X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=servicehandler%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fservicehandler%2Fimpl%2FServicehandlerImplTest.java;h=63445c36d05fc948e3d13a38e9e550d2996ccc18;hb=e2af857602888e5347f137aac70f73ad02bb6c76;hp=a7e139c21f0129bfc992053247f5ed42f67d8a8b;hpb=2df235e965f3b4ff99f2e7bfc5a2911869c97c03;p=transportpce.git diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImplTest.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImplTest.java index a7e139c21..63445c36d 100644 --- a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImplTest.java +++ b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImplTest.java @@ -8,12 +8,15 @@ package org.opendaylight.transportpce.servicehandler.impl; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; import static org.opendaylight.transportpce.servicehandler.impl.ServicehandlerImpl.LogMessages; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; +import java.util.Map; +import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; @@ -23,45 +26,60 @@ import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.mdsal.binding.api.NotificationPublishService; import org.opendaylight.transportpce.common.ResponseCodes; import org.opendaylight.transportpce.pce.service.PathComputationService; import org.opendaylight.transportpce.renderer.provisiondevice.RendererServiceOperations; +import org.opendaylight.transportpce.servicehandler.ServiceInput; +import org.opendaylight.transportpce.servicehandler.listeners.NetworkModelListenerImpl; import org.opendaylight.transportpce.servicehandler.listeners.PceListenerImpl; import org.opendaylight.transportpce.servicehandler.listeners.RendererListenerImpl; +import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperations; import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOperationsImpl; import org.opendaylight.transportpce.servicehandler.utils.ServiceDataUtils; import org.opendaylight.transportpce.test.AbstractTest; -import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev190531.RpcStatus; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceCreateOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceDeleteOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceFeasibilityCheckOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceReconfigureOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRerouteOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.ServiceRestorationOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceCreateOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteInputBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.TempServiceDeleteOutput; -import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev190531.service.delete.input.ServiceDeleteReqInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutputBuilder; +import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRerouteRequestOutputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommonBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.common.state.types.rev191129.State; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceCreateOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceDeleteOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceFeasibilityCheckOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceReconfigureOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRerouteOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.ServiceRestorationOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteInput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteInputBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceDeleteOutput; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.delete.input.ServiceDeleteReqInfoBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.service.list.ServicesBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirectionBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirectionBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZ; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZKey; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.ResourceBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.resource.TerminationPointBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.ResponseParametersBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev220118.response.parameters.sp.response.parameters.PathDescriptionBuilder; import org.opendaylight.yangtools.yang.common.RpcResult; +import org.opendaylight.yangtools.yang.common.Uint32; -public class ServicehandlerImplTest extends AbstractTest { +public class ServicehandlerImplTest extends AbstractTest { @Mock private PathComputationService pathComputationService; @@ -78,560 +96,444 @@ public class ServicehandlerImplTest extends AbstractTest { @Mock private RendererListenerImpl rendererListenerImpl; + @Mock + private NetworkModelListenerImpl networkModelListenerImpl; + + private ServiceDataStoreOperations serviceDataStoreOperations; + private ServiceCreateInput serviceCreateInput; + private ServiceDeleteInput serviceDeleteInput; + private ServiceReconfigureInput serviceReconfigureInput; + private ServiceRestorationInput serviceRestorationInput; + private ServiceRerouteInput serviceRerouteInput; private ListeningExecutorService executorService; private CountDownLatch endSignal; private static final int NUM_THREADS = 5; - private boolean callbackRan; @Before public void setUp() { executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(NUM_THREADS)); endSignal = new CountDownLatch(1); - callbackRan = false; - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); + this.serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(getNewDataBroker()); + serviceCreateInput = ServiceDataUtils.buildServiceCreateInput(); + serviceDeleteInput = ServiceDataUtils.buildServiceDeleteInput(); + serviceReconfigureInput = ServiceDataUtils.buildServiceReconfigureInput(); + serviceRestorationInput = ServiceDataUtils.buildServiceRestorationInput(); + serviceRerouteInput = ServiceDataUtils.buildServiceRerouteInput(); } @Test public void createServiceShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, + notificationPublishService, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, + serviceDataStoreOperations); ListenableFuture> result = - servicehandlerImpl.serviceCreate(new ServiceCreateInputBuilder().build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + servicehandlerImpl.serviceCreate(new ServiceCreateInputBuilder().build()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test - public void createServiceShouldBeSuccessfulWhenPreformPCESuccessful() - throws ExecutionException, InterruptedException { - ServiceCreateInput input = ServiceDataUtils.buildServiceCreateInput(); - Mockito.when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any())); - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.serviceCreate(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + public void createServiceShouldBeFailedWithServiceAlreadyExist() throws ExecutionException, + InterruptedException { + final ServiceDataStoreOperations serviceDSOperations = mock(ServiceDataStoreOperations.class); + Mockito.when(serviceDSOperations.getService(serviceCreateInput.getServiceName())) + .thenReturn(Optional.of( + new ServicesBuilder() + .setServiceName(serviceCreateInput.getServiceName()) + .build())); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDSOperations); + ListenableFuture> result = servicehandlerImpl.serviceCreate(serviceCreateInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); + } + + @Test + public void createServiceShouldBeSuccessfulWhenPerformPCESuccessful() + throws ExecutionException, InterruptedException { + Mockito.when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any())); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceCreate(serviceCreateInput); + result.addListener(() -> endSignal.countDown(), executorService); - RpcResult rpcResult = result.get(); + endSignal.await(); Assert.assertEquals( - ResponseCodes.RESPONSE_OK, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void deleteServiceShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = - servicehandlerImpl.serviceDelete(new ServiceDeleteInputBuilder() - .setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder().setServiceName("").build()).build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceDelete( + new ServiceDeleteInputBuilder() + .setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder() + .setServiceName("") + .build()) + .build()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void deleteServiceShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException { - ServiceDeleteInput input = ServiceDataUtils.buildServiceDeleteInput(); ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.serviceDelete(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, + notificationPublishService, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, + serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceDelete(serviceDeleteInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void deleteServiceShouldBeSuccessForExistingService() throws ExecutionException, InterruptedException { - DataBroker dataBroker = getNewDataBroker(); Mockito.when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any())); - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(dataBroker, pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ServiceDataStoreOperationsImpl serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker); - ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput(); - serviceDataStoreOperations.createService(createInput); - ServiceDeleteInput input = ServiceDataUtils.buildServiceDeleteInput(); - ListenableFuture> result = servicehandlerImpl.serviceDelete(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + serviceDataStoreOperations.createService(serviceCreateInput); + ListenableFuture> result = servicehandlerImpl.serviceDelete(serviceDeleteInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_OK, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void serviceFeasibilityCheckShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = servicehandlerImpl.serviceFeasibilityCheck(new ServiceFeasibilityCheckInputBuilder().build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test - public void serviceFeasibilityCheckShouldBeSuccessfulWhenPreformPCESuccessful() + public void serviceFeasibilityCheckShouldBeSuccessfulWhenPerformPCESuccessful() throws ExecutionException, InterruptedException { - ServiceFeasibilityCheckInput input = ServiceDataUtils.buildServiceFeasibilityCheckInput(); Mockito.when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any())); - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = - servicehandlerImpl.serviceFeasibilityCheck(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + servicehandlerImpl.serviceFeasibilityCheck(ServiceDataUtils.buildServiceFeasibilityCheckInput()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_OK, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void serviceReconfigureShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = servicehandlerImpl.serviceReconfigure(new ServiceReconfigureInputBuilder().setServiceName("").build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); } @Test public void serviceReconfigureShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException { - ServiceReconfigureInput input = ServiceDataUtils.buildServiceReconfigureInput(); - //action -> service reconfigure - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.serviceReconfigure(input); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceReconfigure( + serviceReconfigureInput); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - //ServiceReconfigureOutput doesn't have ConfigurationResponseCommon but have RpcStatus directly - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); } @Test public void serviceReconfigureShouldBeSuccessForExistingService() throws ExecutionException, InterruptedException { - DataBroker dataBroker = getNewDataBroker(); - - //mocking // serviceReconfigure is calling service delete method in renderer Mockito.when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any())); //create service to reconfigure - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(dataBroker, pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ServiceDataStoreOperationsImpl serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker); - ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput(); - serviceDataStoreOperations.createService(createInput); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + serviceDataStoreOperations.createService(serviceCreateInput); //service reconfigure test action - ServiceReconfigureInput input = ServiceDataUtils.buildServiceReconfigureInput(); //ServiceReconfigureInput is created with the same service information that is created before - ListenableFuture> result = servicehandlerImpl.serviceReconfigure(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ListenableFuture> result = servicehandlerImpl.serviceReconfigure( + serviceReconfigureInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - RpcStatus.Successful, rpcResult.getResult().getStatus()); } @Test public void serviceReRestorationShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = servicehandlerImpl.serviceRestoration(new ServiceRestorationInputBuilder().setServiceName("").build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); } @Test public void serviceRestorationShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException { - ServiceRestorationInput input = ServiceDataUtils.buildServiceRestorationInput(); - //action -> service restore - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.serviceRestoration(input); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceRestoration( + serviceRestorationInput); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - //ServiceRestorationOutput doesn't have ConfigurationResponseCommon but have RpcStatus directly - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); } @Test public void serviceRestorationShouldBeSuccessForExistingService() throws ExecutionException, InterruptedException { - DataBroker dataBroker = getNewDataBroker(); - - //mocking // serviceRestoration is calling service delete method in renderer Mockito.when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any())); //create service to restore - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(dataBroker, pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ServiceDataStoreOperationsImpl serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker); - ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput(); - serviceDataStoreOperations.createService(createInput); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + serviceDataStoreOperations.createService(serviceCreateInput); //service Restoration test action - ServiceRestorationInput input = ServiceDataUtils.buildServiceRestorationInput(); //ServiceRestorationInput is created with the same service information that is created before - ListenableFuture> result = servicehandlerImpl.serviceRestoration(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ListenableFuture> result = servicehandlerImpl.serviceRestoration( + serviceRestorationInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - RpcStatus.Successful, rpcResult.getResult().getStatus()); } @Test public void serviceRerouteShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = servicehandlerImpl.serviceReroute(new ServiceRerouteInputBuilder().setServiceName("").build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - RpcResult rpcResult = result.get(); - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void serviceRerouteShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException { - ServiceRerouteInput input = ServiceDataUtils.buildServiceRerouteInput(); - //action -> service reconfigure - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.serviceReroute(input); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.serviceReroute( + serviceRerouteInput); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - RpcResult rpcResult = result.get(); - //ServiceRerouteOutput doesn't have ConfigurationResponseCommon but have RpcStatus directly - Assert.assertEquals( - RpcStatus.Failed, rpcResult.getResult().getStatus()); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void serviceRerouteShouldBeSuccessForExistingService() throws ExecutionException, InterruptedException { - DataBroker dataBroker = getNewDataBroker(); - - //mocking - // serviceReroute is calling service delete method in renderer - Mockito.when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any())); - //create service to be rerouted later - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(dataBroker, pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ServiceDataStoreOperationsImpl serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker); - ServiceCreateInput createInput = ServiceDataUtils.buildServiceCreateInput(); - serviceDataStoreOperations.createService(createInput); - - //service reroute test action - ServiceRerouteInput input = ServiceDataUtils.buildServiceRerouteInput(); - //ServiceRerouteInput is created with the same service information that is created before - ListenableFuture> result = servicehandlerImpl.serviceReroute(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + Mockito.when(pathComputationService.pathComputationRerouteRequest(any())) + .thenReturn(Futures.immediateFuture(new PathComputationRerouteRequestOutputBuilder() + .setConfigurationResponseCommon(new ConfigurationResponseCommonBuilder() + .setResponseCode(ResponseCodes.RESPONSE_OK) + .build()) + .build())); + Map atoz = Map.of( + new AToZKey("0"), + new AToZBuilder() + .setId("0") + .setResource(new ResourceBuilder() + .setResource(new TerminationPointBuilder() + .setTpNodeId("tpNodeIdC") + .setTpId("TpIdC1") + .build()) + .setState(State.InService) + .build()) + .build(), + new AToZKey("1"), + new AToZBuilder() + .setId("1") + .setResource(new ResourceBuilder() + .setResource(new TerminationPointBuilder() + .setTpNodeId("tpNodeIdD") + .setTpId("TpIdCD") + .build()) + .setState(State.InService) + .build()) + .build(), new AToZKey("2"), + new AToZBuilder() + .setId("2") + .setResource(new ResourceBuilder() + .setResource(new TerminationPointBuilder() + .setTpNodeId("tpNodeIdA") + .setTpId("TpIdA1") + .build()) + .setState(State.InService) + .build()) + .build() + + ); + serviceDataStoreOperations.createServicePath(new ServiceInput(serviceCreateInput), + new PathComputationRequestOutputBuilder() + .setResponseParameters(new ResponseParametersBuilder() + .setPathDescription(new PathDescriptionBuilder() + .setAToZDirection(new AToZDirectionBuilder() + .setAToZ(atoz) + .setRate(Uint32.valueOf(1)) + .build()) + .setZToADirection(new ZToADirectionBuilder() + .setRate(Uint32.valueOf(1)) + .build()) + .build()) + .build()) + .build()); + + serviceDataStoreOperations.createService(serviceCreateInput); + ListenableFuture> result = new ServicehandlerImpl(getNewDataBroker(), + pathComputationService, rendererServiceOperations, notificationPublishService, pceListenerImpl, + rendererListenerImpl, networkModelListenerImpl, serviceDataStoreOperations) + .serviceReroute(serviceRerouteInput); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - RpcResult rpcResult = result.get(); Assert.assertEquals( - RpcStatus.Successful, rpcResult.getResult().getStatus()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void tempServiceDeleteShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = - servicehandlerImpl.tempServiceDelete(new TempServiceDeleteInputBuilder() - .setCommonId("").build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + servicehandlerImpl.tempServiceDelete(new TempServiceDeleteInputBuilder().setCommonId("").build()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_FAILED, + rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); Assert.assertEquals( - LogMessages.SERVICE_NON_COMPLIANT, - rpcResult.getResult().getConfigurationResponseCommon().getResponseMessage()); + LogMessages.SERVICE_NON_COMPLIANT, + rpcResult.getResult().getConfigurationResponseCommon().getResponseMessage()); } @Test public void tempServiceDeleteShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException { - TempServiceDeleteInput input = ServiceDataUtils.buildTempServiceDeleteInput(); - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ListenableFuture> result = servicehandlerImpl.tempServiceDelete(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); + ListenableFuture> result = servicehandlerImpl.tempServiceDelete( + ServiceDataUtils.buildTempServiceDeleteInput()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void tempServiceDeleteShouldBeSuccessForExistingService() throws ExecutionException, InterruptedException { - DataBroker dataBroker = getNewDataBroker(); Mockito.when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any())); //create temp service to delete in the temp delete action ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(dataBroker, pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); - ServiceDataStoreOperationsImpl serviceDataStoreOperations = new ServiceDataStoreOperationsImpl(dataBroker); + new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, + notificationPublishService, pceListenerImpl, rendererListenerImpl, networkModelListenerImpl, + serviceDataStoreOperations); TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput(); serviceDataStoreOperations.createTempService(createInput); - TempServiceDeleteInput input = ServiceDataUtils.buildTempServiceDeleteInput(createInput.getCommonId()); ListenableFuture> result = servicehandlerImpl.tempServiceDelete(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); Assert.assertEquals( - ResponseCodes.RESPONSE_OK, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test public void tempServiceCreateShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException { - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); ListenableFuture> result = servicehandlerImpl.tempServiceCreate(new TempServiceCreateInputBuilder().build()); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - ResponseCodes.RESPONSE_FAILED, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + Assert.assertEquals(ResponseCodes.RESPONSE_FAILED, + result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } @Test - public void tempServiceCreateShouldBeSuccessfulWhenPreformPCESuccessful() + public void tempServiceCreateShouldBeSuccessfulWhenPerformPCESuccessful() throws ExecutionException, InterruptedException { - TempServiceCreateInput input = ServiceDataUtils.buildTempServiceCreateInput(); Mockito.when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any())); - ServicehandlerImpl servicehandlerImpl = - new ServicehandlerImpl(getNewDataBroker(), pathComputationService, rendererServiceOperations, - notificationPublishService, pceListenerImpl, rendererListenerImpl, null); + ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(getNewDataBroker(), pathComputationService, + rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl, + networkModelListenerImpl, serviceDataStoreOperations); - ListenableFuture> result = servicehandlerImpl.tempServiceCreate(input); - result.addListener(new Runnable() { - @Override - public void run() { - callbackRan = true; - endSignal.countDown(); - } - }, executorService); + ListenableFuture> result = servicehandlerImpl.tempServiceCreate( + ServiceDataUtils.buildTempServiceCreateInput()); + result.addListener(() -> endSignal.countDown(), executorService); endSignal.await(); - - RpcResult rpcResult = result.get(); - Assert.assertEquals( - ResponseCodes.RESPONSE_OK, rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()); + ResponseCodes.RESPONSE_OK, result.get().getResult().getConfigurationResponseCommon().getResponseCode()); } }