Fix for SO-2617
[integration/csit.git] / plans / so / integration-etsi-testing / so-simulators / sdnc-simulator / src / test / java / org / onap / so / sdncsimulator / controller / OperationsControllerTest.java
index 3c17a37..888a251 100644 (file)
@@ -23,8 +23,11 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.onap.sdnc.northbound.client.model.GenericResourceApiRpcActionEnumeration.ASSIGN;
+import static org.onap.sdnc.northbound.client.model.GenericResourceApiRpcActionEnumeration.DEACTIVATE;
 import static org.onap.so.sdncsimulator.controller.TestUtils.getInvalidRequestInput;
 import static org.onap.so.sdncsimulator.controller.TestUtils.getRequestInput;
+import static org.onap.so.sdncsimulator.controller.TestUtils.getServiceRequestWithRequestActionDeleteServiceAndSvcActionDeactivateInput;
 import static org.onap.so.sdncsimulator.controller.TestUtils.getServiceRequestWithRequestActionDeleteServiceInput;
 import static org.onap.so.sdncsimulator.controller.TestUtils.getVnfRequestInput;
 import static org.onap.so.sdncsimulator.controller.TestUtils.getVnfRequestWithRequestActionDeleteVnfInput;
@@ -68,6 +71,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 @Configuration
 public class OperationsControllerTest {
 
+    private static final String HTTP_STATUS_BAD_REQUEST = Integer.toString(HttpStatus.BAD_REQUEST.value());
+    private static final String HTTP_STATUS_OK = Integer.toString(HttpStatus.OK.value());
+
     private static final String SVC_REQUEST_ID = "04fc9f50-87b8-430d-a232-ef24bd6c4150";
 
     private static final String VNF_SVC_REQUEST_ID = "8fd2622b-01fc-424d-bfc8-f48bcd64e546";
@@ -109,7 +115,7 @@ public class OperationsControllerTest {
         final Output actualObject = actualOutputRequest.getOutput();
 
         assertNotNull(actualObject);
-        assertEquals(HttpStatus.OK.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
         assertEquals(SVC_REQUEST_ID, actualObject.getSvcRequestId());
         assertNotNull(actualObject.getServiceResponseInformation());
@@ -154,7 +160,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = actualOutputRequest.getOutput();
         assertNotNull(actualObject);
-        assertEquals(HttpStatus.BAD_REQUEST.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_BAD_REQUEST, actualObject.getResponseCode());
         assertEquals(SVC_REQUEST_ID, actualObject.getSvcRequestId());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
 
@@ -180,7 +186,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = actualOutputRequest.getOutput();
 
-        assertEquals(HttpStatus.OK.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
         assertEquals(VNF_SVC_REQUEST_ID, actualObject.getSvcRequestId());
         assertNotNull(actualObject.getServiceResponseInformation());
@@ -239,7 +245,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = badOutputRequest.getOutput();
         assertNotNull(actualObject);
-        assertEquals(HttpStatus.BAD_REQUEST.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_BAD_REQUEST, actualObject.getResponseCode());
         assertEquals(VNF_SVC_REQUEST_ID, actualObject.getSvcRequestId());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
 
@@ -273,7 +279,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = actualOutputRequest.getOutput();
 
-        assertEquals(HttpStatus.OK.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
         assertEquals(VNF_SVC_REQUEST_ID, actualObject.getSvcRequestId());
         assertNotNull(actualObject.getServiceResponseInformation());
@@ -346,7 +352,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = actualOutputRequest.getOutput();
 
-        assertEquals(HttpStatus.OK.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
         assertEquals(VNF_SVC_REQUEST_ID, actualObject.getSvcRequestId());
 
@@ -392,7 +398,7 @@ public class OperationsControllerTest {
 
         final Output actualObject = actualOutputRequest.getOutput();
 
-        assertEquals(HttpStatus.OK.toString(), actualObject.getResponseCode());
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
         assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
         assertEquals(SVC_REQUEST_ID, actualObject.getSvcRequestId());
 
@@ -402,6 +408,49 @@ public class OperationsControllerTest {
 
     }
 
+    @Test
+    public void test_postServiceOperationInformation_withActionDeleteServiceInstanceAndSvcActionDeactivate_successfullyUpdateExistingServiceInCache()
+            throws Exception {
+
+        final HttpEntity<?> httpEntity = new HttpEntity<>(getRequestInput(), getHttpHeaders());
+        final ResponseEntity<OutputRequest> responseEntity =
+                restTemplate.exchange(getUrl(), HttpMethod.POST, httpEntity, OutputRequest.class);
+
+        assertEquals(HttpStatus.OK, responseEntity.getStatusCode());
+        Optional<GenericResourceApiServicemodelinfrastructureService> serviceOptional =
+                cacheServiceProvider.getGenericResourceApiServicemodelinfrastructureService(SERVICE_INSTANCE_ID);
+        assertTrue(serviceOptional.isPresent());
+
+        GenericResourceApiServicemodelinfrastructureService service = serviceOptional.get();
+        assertNotNull(service.getServiceInstanceId());
+        assertNotNull(service.getServiceStatus());
+        assertEquals(ASSIGN, service.getServiceStatus().getRpcAction());
+
+        final HttpEntity<?> entity = new HttpEntity<>(
+                getServiceRequestWithRequestActionDeleteServiceAndSvcActionDeactivateInput(), getHttpHeaders());
+        final ResponseEntity<OutputRequest> deactivateResponseEntity =
+                restTemplate.exchange(getUrl(), HttpMethod.POST, entity, OutputRequest.class);
+        assertEquals(HttpStatus.OK, deactivateResponseEntity.getStatusCode());
+
+        final OutputRequest actualOutputRequest = deactivateResponseEntity.getBody();
+        assertNotNull(actualOutputRequest);
+        assertNotNull(actualOutputRequest.getOutput());
+
+        final Output actualObject = actualOutputRequest.getOutput();
+
+        assertEquals(HTTP_STATUS_OK, actualObject.getResponseCode());
+        assertEquals(Constants.YES, actualObject.getAckFinalIndicator());
+        assertEquals(SVC_REQUEST_ID, actualObject.getSvcRequestId());
+
+        serviceOptional =
+                cacheServiceProvider.getGenericResourceApiServicemodelinfrastructureService(SERVICE_INSTANCE_ID);
+        assertTrue(serviceOptional.isPresent());
+        service = serviceOptional.get();
+        assertNotNull(service.getServiceStatus());
+        assertEquals(DEACTIVATE, service.getServiceStatus().getRpcAction());
+
+    }
+
     private HttpHeaders getHttpHeaders() {
         return TestUtils.getHttpHeaders(userCredentials.getUsers().iterator().next().getUsername());
     }