import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.opendaylight.transportpce.servicehandler.impl.ServicehandlerImpl.LogMessages;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.transportpce.common.ResponseCodes;
import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
import org.opendaylight.transportpce.pce.service.PathComputationService;
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.opendaylight.transportpce.pce.rev220808.service.path.rpc.result.PathDescription;
-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.service.types.rev230526.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.AddOpenroadmOperationalModesToCatalogInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddOpenroadmOperationalModesToCatalogOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddSpecificOperationalModesToCatalogInputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.AddSpecificOperationalModesToCatalogOutput;
-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.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.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalogInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddOpenroadmOperationalModesToCatalogOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalogInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.AddSpecificOperationalModesToCatalogOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceDeleteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheckInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceFeasibilityCheckOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceReconfigureOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRerouteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.ServiceRestorationOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceCreateOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDeleteInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.TempServiceDeleteOutput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.delete.input.ServiceDeleteReqInfoBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.service.list.ServicesBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.AToZDirectionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.ZToADirectionBuilder;
import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev230501.path.description.atoz.direction.AToZ;
@ExtendWith(MockitoExtension.class)
public class ServicehandlerImplTest extends AbstractTest {
+ @Mock
+ private RpcProviderService rpcProviderService;
@Mock
private PathComputationService pathComputationService;
@Mock
pathDescription = ServiceDataUtils.createPathDescription(0,1,0,1);
}
+ @Test
+ void testRpcRegistration() {
+ new ServicehandlerImpl(rpcProviderService,
+ pathComputationService, rendererServiceOperations, notificationPublishService,
+ pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
+ serviceDataStoreOperations, catalogDataStoreOperations);
+ verify(rpcProviderService, times(1)).registerRpcImplementations(any());
+ }
+
@Test
void createServiceShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
.setServiceName(serviceCreateInput.getServiceName())
.build()));
ListenableFuture<RpcResult<ServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDSOperations, catalogDataStoreOperations)
void createServiceShouldBeSuccessfulWhenPerformPCESuccessful() throws ExecutionException, InterruptedException {
when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any()));
ListenableFuture<RpcResult<ServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void deleteServiceShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void deleteServiceShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
when(rendererServiceOperations.serviceDelete(any(), any())).thenReturn(Futures.immediateFuture(any()));
serviceDataStoreOperations.createService(serviceCreateInput);
ListenableFuture<RpcResult<ServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void serviceFeasibilityCheckShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
- ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(pathComputationService,
+ ServicehandlerImpl servicehandlerImpl = new ServicehandlerImpl(rpcProviderService, pathComputationService,
rendererServiceOperations, notificationPublishService, pceListenerImpl, rendererListenerImpl,
networkModelListenerImpl, serviceDataStoreOperations, catalogDataStoreOperations);
ListenableFuture<RpcResult<ServiceFeasibilityCheckOutput>> result =
throws ExecutionException, InterruptedException {
when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any()));
ListenableFuture<RpcResult<ServiceFeasibilityCheckOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void serviceReconfigureShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceReconfigureOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
void serviceReconfigureShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException {
//action -> service reconfigure
ListenableFuture<RpcResult<ServiceReconfigureOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
//service reconfigure test action
//ServiceReconfigureInput is created with the same service information that is created before
ListenableFuture<RpcResult<ServiceReconfigureOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void serviceReRestorationShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceRestorationOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
void serviceRestorationShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException {
//action -> service restore
ListenableFuture<RpcResult<ServiceRestorationOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
//service Restoration test action
//ServiceRestorationInput is created with the same service information that is created before
ListenableFuture<RpcResult<ServiceRestorationOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void serviceRerouteShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<ServiceRerouteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
void serviceRerouteShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException {
//action -> service reconfigure
ListenableFuture<RpcResult<ServiceRerouteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
.build());
serviceDataStoreOperations.createService(serviceCreateInput);
ListenableFuture<RpcResult<ServiceRerouteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void tempServiceDeleteShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<TempServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void tempServiceDeleteShouldBeFailedWithNonExistService() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<TempServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
TempServiceCreateInput createInput = ServiceDataUtils.buildTempServiceCreateInput();
serviceDataStoreOperations.createTempService(createInput, pathDescription);
ListenableFuture<RpcResult<TempServiceDeleteOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
@Test
void tempServiceCreateShouldBeFailedWithEmptyInput() throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<TempServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
final ServiceDataStoreOperations serviceDSOperations = mock(ServiceDataStoreOperations.class);
when(serviceDSOperations.getTempService(any()))
.thenReturn(Optional.of(
- new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.temp.service.list
+ new org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev230526.temp.service.list
.ServicesBuilder()
.setCommonId("bad_commonId")
.build()));
ListenableFuture<RpcResult<TempServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDSOperations, catalogDataStoreOperations)
throws ExecutionException, InterruptedException {
when(pathComputationService.pathComputationRequest(any())).thenReturn(Futures.immediateFuture(any()));
ListenableFuture<RpcResult<TempServiceCreateOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
public void addOpenroadmOperationalModesToCatalogShouldBeFailedWithEmptyInput()
throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<AddOpenroadmOperationalModesToCatalogOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
public void addSpecificOperationalModesToCatalogShouldBeFailedWithEmptyInput()
throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<AddSpecificOperationalModesToCatalogOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
public void addOpenroadmOperationalModesToCatalogShouldBeSuccessfulWhenAddORToCatalog()
throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<AddOpenroadmOperationalModesToCatalogOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)
public void addSpecificOperationalModesToCatalogShouldBeSuccessfulWhenAddSpecificToCatalog()
throws ExecutionException, InterruptedException {
ListenableFuture<RpcResult<AddSpecificOperationalModesToCatalogOutput>> result =
- new ServicehandlerImpl(
+ new ServicehandlerImpl(rpcProviderService,
pathComputationService, rendererServiceOperations, notificationPublishService,
pceListenerImpl, rendererListenerImpl, networkModelListenerImpl,
serviceDataStoreOperations, catalogDataStoreOperations)