*/
package org.opendaylight.transportpce.servicehandler.service;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
+import com.google.common.util.concurrent.ListenableFuture;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.transportpce.common.ResponseCodes;
import org.opendaylight.transportpce.pce.service.PathComputationService;
-import org.opendaylight.transportpce.pce.service.PathComputationServiceImpl;
-import org.opendaylight.transportpce.pce.utils.NotificationPublishServiceMock;
import org.opendaylight.transportpce.servicehandler.utils.ServiceDataUtils;
import org.opendaylight.transportpce.test.AbstractTest;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.CancelResourceReserveInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.RpcActions;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeader;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInput;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceCreateInputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.CancelResourceReserveInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.CancelResourceReserveOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.CancelResourceReserveOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestInput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev220808.PathComputationRequestOutputBuilder;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.ServiceNotificationTypes;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev211210.configuration.response.common.ConfigurationResponseCommon;
+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.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.TempServiceCreateInput;
+import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev211210.TempServiceCreateInputBuilder;
+@ExtendWith(MockitoExtension.class)
public class PCEServiceWrapperTest extends AbstractTest {
- private PathComputationService pathComputationService;
- private PCEServiceWrapper pceServiceWrapper;
- private Method method;
- private static String METHOD_NAME = "mappingCancelResourceReserve";
- private Class[] parameterTypes;
- private Object[] parameters;
+ @Mock
+ private PathComputationService pathComputationServiceMock;
+ @Mock
+ private NotificationPublishService notificationPublishServiceMock;
+ @InjectMocks
+ private PCEServiceWrapper pceServiceWrapperMock;
+ @Test
+ void performPCENullSdncRequestHeader() {
+ ServiceCreateInput input = ServiceDataUtils.buildServiceCreateInput();
+ input = new ServiceCreateInputBuilder(input).setSdncRequestHeader(null).build();
+ PathComputationRequestOutput pceResponse = this.pceServiceWrapperMock.performPCE(input, true);
+ assertEquals(ResponseCodes.FINAL_ACK_YES, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_FAILED, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ verifyNoInteractions(this.pathComputationServiceMock);
+ }
- public PCEServiceWrapperTest() {
- NotificationPublishService notificationPublishService = new NotificationPublishServiceMock();
- this.pathComputationService = new PathComputationServiceImpl(getDataBroker(), notificationPublishService);
+ @Test
+ void performPCENullServiceName() {
+ ServiceCreateInput input = ServiceDataUtils.buildServiceCreateInput();
+ input = new ServiceCreateInputBuilder(input).setServiceName(null).build();
+ PathComputationRequestOutput pceResponse = this.pceServiceWrapperMock.performPCE(input, true);
+ assertEquals(ResponseCodes.FINAL_ACK_YES, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_FAILED, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ verifyNoInteractions(this.pathComputationServiceMock);
}
- @Before
- public void init() throws NoSuchMethodException {
- this.pceServiceWrapper = new PCEServiceWrapper(this.pathComputationService);
- this.parameterTypes = new Class[2];
- this.parameterTypes[0] = java.lang.String.class;
- this.parameterTypes[1] = SdncRequestHeader.class;
- this.method = this.pceServiceWrapper.getClass().getDeclaredMethod(METHOD_NAME, this.parameterTypes);
- this.method.setAccessible(true);
- this.parameters = new Object[2];
+ @Test
+ void performPCENullCommonId() {
+ TempServiceCreateInput input = ServiceDataUtils.buildTempServiceCreateInput();
+ input = new TempServiceCreateInputBuilder(input).setCommonId(null).build();
+ PathComputationRequestOutput pceResponse = this.pceServiceWrapperMock.performPCE(input, true);
+ assertEquals(ResponseCodes.FINAL_ACK_YES, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_FAILED, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ verifyNoInteractions(this.pathComputationServiceMock);
}
+
@Test
- public void performPCENullSdncRequestHeader() {
- ServiceCreateInput input = ServiceDataUtils.buildServiceCreateInput();
- input = new ServiceCreateInputBuilder(input).setSdncRequestHeader(null).build();
- PathComputationRequestOutput pceResponse = this.pceServiceWrapper.performPCE(input, true);
- Assert.assertEquals(ResponseCodes.FINAL_ACK_YES, pceResponse.getConfigurationResponseCommon()
- .getAckFinalIndicator());
+ void cancelPCEResourceNullServiceName() {
+ CancelResourceReserveOutput pceResponse =
+ this.pceServiceWrapperMock.cancelPCEResource(null, ServiceNotificationTypes.ServiceDeleteResult);
+ assertEquals(ResponseCodes.FINAL_ACK_YES, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_FAILED, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ verifyNoInteractions(this.pathComputationServiceMock);
}
@Test
- public void mappingCancelResourceReserveNullSdncRequestHeader()
- throws InvocationTargetException, IllegalAccessException {
- this.parameters[0] = "service 1";
- this.parameters[1] = null;
- CancelResourceReserveInput result = (CancelResourceReserveInput)this.method.invoke(this.pceServiceWrapper,
- this.parameters);
- Assert.assertEquals("service 1", result.getServiceName());
+ void cancelPCEResourceValid() {
+ ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
+ .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
+ .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
+ CancelResourceReserveOutput output = new CancelResourceReserveOutputBuilder()
+ .setConfigurationResponseCommon(configurationResponseCommon).build();
+ ListenableFuture<CancelResourceReserveOutput> response = ServiceDataUtils.returnFuture(output);
+ when(this.pathComputationServiceMock.cancelResourceReserve(any(CancelResourceReserveInput.class)))
+ .thenReturn(response);
+ CancelResourceReserveOutput pceResponse = this.pceServiceWrapperMock
+ .cancelPCEResource("service 1", ServiceNotificationTypes.ServiceDeleteResult);
+ assertEquals(ResponseCodes.FINAL_ACK_NO, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_OK, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ assertEquals("PCE calculation in progress", pceResponse.getConfigurationResponseCommon().getResponseMessage());
+ verify(this.pathComputationServiceMock).cancelResourceReserve(any(CancelResourceReserveInput.class));
+ }
+
+ @Test
+ void performPCEValid() {
+ ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
+ .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
+ .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
+ PathComputationRequestOutput output = new PathComputationRequestOutputBuilder()
+ .setConfigurationResponseCommon(configurationResponseCommon).build();
+ ListenableFuture<PathComputationRequestOutput> response = ServiceDataUtils.returnFuture(output);
+ when(this.pathComputationServiceMock.pathComputationRequest(any(PathComputationRequestInput.class)))
+ .thenReturn(response);
+ ServiceCreateInput input = ServiceDataUtils.buildServiceCreateInput();
+ PathComputationRequestOutput pceResponse = this.pceServiceWrapperMock.performPCE(input, true);
+ assertEquals(ResponseCodes.FINAL_ACK_NO, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_OK, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ assertEquals("PCE calculation in progress", pceResponse.getConfigurationResponseCommon().getResponseMessage());
+ verify(this.pathComputationServiceMock).pathComputationRequest((any(PathComputationRequestInput.class)));
}
@Test
- public void mappingCancelResourceReserveValidSdncRequestHeader()
- throws InvocationTargetException, IllegalAccessException {
- this.parameters[0] = "service 1";
- this.parameters[1] = new SdncRequestHeaderBuilder().setRequestId("request 1")
- .setRpcAction(RpcActions.ServiceCreate).setNotificationUrl("notification url").build();
- CancelResourceReserveInput result = (CancelResourceReserveInput)this.method.invoke(this.pceServiceWrapper,
- this.parameters);
- Assert.assertEquals("service 1", result.getServiceName());
- Assert.assertEquals("request 1", result.getServiceHandlerHeader().getRequestId());
+ void performPCETempValid() {
+ ConfigurationResponseCommon configurationResponseCommon = new ConfigurationResponseCommonBuilder()
+ .setRequestId("request 1").setAckFinalIndicator(ResponseCodes.FINAL_ACK_NO)
+ .setResponseCode(ResponseCodes.RESPONSE_OK).setResponseMessage("PCE calculation in progress").build();
+ PathComputationRequestOutput output = new PathComputationRequestOutputBuilder()
+ .setConfigurationResponseCommon(configurationResponseCommon).build();
+ ListenableFuture<PathComputationRequestOutput> response = ServiceDataUtils.returnFuture(output);
+ when(this.pathComputationServiceMock.pathComputationRequest(any(PathComputationRequestInput.class)))
+ .thenReturn(response);
+ TempServiceCreateInput input = ServiceDataUtils.buildTempServiceCreateInput();
+ PathComputationRequestOutput pceResponse = this.pceServiceWrapperMock.performPCE(input, true);
+ assertEquals(ResponseCodes.FINAL_ACK_NO, pceResponse.getConfigurationResponseCommon().getAckFinalIndicator());
+ assertEquals(ResponseCodes.RESPONSE_OK, pceResponse.getConfigurationResponseCommon().getResponseCode());
+ assertEquals("PCE calculation in progress", pceResponse.getConfigurationResponseCommon().getResponseMessage());
+ verify(this.pathComputationServiceMock).pathComputationRequest((any(PathComputationRequestInput.class)));
}
-}
+}
\ No newline at end of file