Preparing the request payload (action = delete) for calling SO macro flow 60/112360/1
authorsujitsatapathy <SS00626741@techmahindra.com>
Wed, 9 Sep 2020 10:18:15 +0000 (10:18 +0000)
committersujitsatapathy <SS00626741@techmahindra.com>
Wed, 9 Sep 2020 10:32:31 +0000 (10:32 +0000)
code changes for delete action. Issue-ID: EXTAPI-448

Change-Id: I6bb9786660f6760c15008132e2c254e7f9b89654
Signed-off-by: sujitsatapathy <SS00626741@techmahindra.com>
src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java
src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java
src/test/java/org/onap/nbi/test/ExecutionTaskTest.java
src/test/resources/karatetest/data/serviceOrder.json
src/test/resources/karatetest/features/02--ServiceOrder.feature
src/test/resources/mappings/so/so_delete_macro_service_instance.json [new file with mode: 0644]

index 8e58c39..e0e4bb5 100644 (file)
@@ -194,6 +194,33 @@ public class SoClient {
             return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
         }
 
+    }
+    //Delete Macro
+    
+    public ResponseEntity<CreateMacroServiceInstanceResponse> callMacroDeleteServiceInstance(MSOPayload msoPayload,
+            String serviceId) {
+
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Calling SO Macro DeleteServiceInstance with msoPayload : " + msoPayload.toString());
+        }
+
+        String url = deleteSoUrl + serviceId;
+
+        try {
+            ResponseEntity<CreateMacroServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.DELETE,
+                    new HttpEntity<>(msoPayload, buildRequestHeader()), CreateMacroServiceInstanceResponse.class);
+
+            logMacroResponsePost(url, response);
+            return response;
+
+        } catch (BackendFunctionalException e) {
+            LOGGER.error(ERROR_ON_CALLING + url + " ," + e);
+            return new ResponseEntity<>(e.getHttpStatus());
+        } catch (ResourceAccessException e) {
+            LOGGER.error(ERROR_ON_CALLING + url + " ," + e);
+            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+
     }
 
     public ResponseEntity<CreateE2EServiceInstanceResponse> callE2EDeleteServiceInstance(String globalSubscriberId,
index 4568b80..c356bdd 100644 (file)
@@ -226,8 +226,8 @@ public class PostSoProcessor {
           response = soClient.callMacroCreateServiceInstance(msoMacroPayload);
           break;
         case DELETE:
-          // response = soClient.callDeleteServiceInstance(msoPayload,
-          // serviceOrderItem.getService().getId());
+           response = soClient.callMacroDeleteServiceInstance(msoMacroPayload,
+           serviceOrderItem.getService().getId());
           break;
         case MODIFY:
           if (StateType.INPROGRESS_MODIFY_ITEM_TO_CREATE == serviceOrderItem.getState()) {
index b58fb1c..99f6044 100644 (file)
@@ -365,7 +365,41 @@ public class ExecutionTaskTest {
         assertThat(executionTaskRepository.count()).isEqualTo(0);
 
     }
-    
+    //Test Macro Execution Delete
+      @Test
+      public void testMacroExecutionTaskDeleteSuccess() throws Exception {
+
+       ExecutionTask executionTaskA =ServiceOrderExecutionTaskAssertions.setUpBddForMacroExecutionTaskSucess(
+                  serviceOrderRepository, executionTaskRepository, ActionType.DELETE);
+          ExecutionTask executionTaskB;
+
+          SoTaskProcessor.processOrderItem(executionTaskA);
+          ServiceOrder serviceOrderChecked = getServiceOrder("test");
+          assertThat(serviceOrderChecked.getState()).isEqualTo(StateType.INPROGRESS);
+          for (ServiceOrderItem serviceOrderItem : serviceOrderChecked.getOrderItem()) {
+              if (serviceOrderItem.getId().equals("A")) {
+                  assertThat(serviceOrderItem.getState()).isEqualTo(StateType.COMPLETED);
+              } else {
+                  assertThat(serviceOrderItem.getState()).isEqualTo(StateType.ACKNOWLEDGED);
+              }
+          }
+
+          executionTaskB = getExecutionTask("B");
+          assertThat(executionTaskB.getReliedTasks()).isNullOrEmpty();
+          executionTaskA = getExecutionTask("A");
+          assertThat(executionTaskA).isNull();
+
+          SoTaskProcessor.processOrderItem(executionTaskB);
+          serviceOrderChecked = getServiceOrder("test");
+          assertThat(serviceOrderChecked.getState()).isEqualTo(StateType.COMPLETED);
+          for (ServiceOrderItem serviceOrderItem : serviceOrderChecked.getOrderItem()) {
+              assertThat(serviceOrderItem.getState()).isEqualTo(StateType.COMPLETED);
+
+          }
+
+          assertThat(executionTaskRepository.count()).isEqualTo(0);
+
+      }    
  // Macro Flow Execution Task
        @Test
        public void testMacroExecutionTaskSuccess() throws Exception {
index 5437fac..aee4ce9 100644 (file)
         ]
       }
     ]
+  },
+  {
+    "state": "acknowledged",
+    "externalId": "LudONAP001",
+    "priority": "1",
+    "description": "Ludo first ONAP order",
+    "category": "Consumer",
+    "requestedStartDate": "2019-01-23T12:34:56.123456789Z",
+    "requestedCompletionDate": "2019-01-23T12:34:56.123456789Z",
+    "@baseType": "toto",
+    "completionDateTime": "2019-01-23T12:34:56.123456789Z",
+    "expectedCompletionDate": "2019-01-23T12:34:56.123456789Z",
+    "@schemaLocation": "/tutu",
+    "orderRelationship": [
+      {
+        "id": "test",
+        "href": "test",
+        "referredType": "test",
+        "type": "test"
+      }
+    ],
+    "relatedParty": [
+      {
+        "id": "6490",
+        "role": "ONAPcustomer",
+        "referredType": "individual",
+        "name": "Jean Pontus"
+      }
+    ],
+    "orderItem": [
+      {
+        "id": "A",
+        "action": "delete",
+        "state": "active",
+        "service": {
+          "id": "null",
+          "state": "active",
+          "serviceSpecification": {
+            "id": "82c9fbb4-656c-4973-8c7f-172b22b5fa8f"
+          }
+        }
+      },
+      {
+        "id": "B",
+        "action": "delete",
+        "state": "active",
+        "service": {
+          "id": "null",
+          "state": "active",
+          "serviceSpecification": {
+            "id": "82c9fbb4-656c-4973-8c7f-172b22b5fa8f"
+          }
+        },
+        "orderItemRelationship": [
+          {
+            "id": "A",
+            "type": "reliesOn"
+          }
+        ]
+      }
+    ]
   }
 ]
+
index f5985a9..4f89c1a 100644 (file)
@@ -234,6 +234,19 @@ Given path 'serviceOrder',serviceOrderId
 When method delete
 Then status 204
 
+Scenario: testCheckServiceOrderDeleteActionForMacro
+Given path 'serviceOrder'
+And request data[18]
+When method post
+Then status 201
+And def serviceOrderId = $.id
+Given path 'serviceOrder',serviceOrderId
+When method get
+Then status 200
+Given path 'serviceOrder',serviceOrderId
+When method delete
+Then status 204
+
 Scenario: testCheckServiceOrderDeleteRejected
 Given path 'serviceOrder'
 And request data[10]
diff --git a/src/test/resources/mappings/so/so_delete_macro_service_instance.json b/src/test/resources/mappings/so/so_delete_macro_service_instance.json
new file mode 100644 (file)
index 0000000..ce57a27
--- /dev/null
@@ -0,0 +1,19 @@
+{
+    "request": {
+        "method": "DELETE",
+        "url": "/onap/so/infra/serviceInstantiation/v7/serviceInstances/82c9fbb4-656c-4973-8c7f-172b22b5fa8f"
+    },
+    "response": {
+        "status": 202,
+        "headers": {
+            "Content-Type": "application/json"
+        },
+        "jsonBody": {
+            "requestReferences": {
+                "instanceId": "instanceId",
+                "requestId": "requestId"
+            }
+        }
+    }
+}
+