change management return 400 handling NPE 60/92660/1
authorEylon Malin <eylon.malin@intl.att.com>
Mon, 5 Aug 2019 07:56:25 +0000 (10:56 +0300)
committerEylon Malin <eylon.malin@intl.att.com>
Mon, 5 Aug 2019 07:56:25 +0000 (10:56 +0300)
return 400 internal status when exception is thrown during extracting serviceInstanceId
Issue-ID: VID-378

Signed-off-by: Eylon Malin <eylon.malin@intl.att.com>
Change-Id: I97f740de0a700f503d115033980f8e8366e806e7

vid-app-common/src/main/java/org/onap/vid/services/ChangeManagementServiceImpl.java
vid-automation/src/test/java/org/onap/vid/api/ChangeManagementApiTest.java

index 8149590..214eec7 100644 (file)
@@ -162,13 +162,19 @@ public class ChangeManagementServiceImpl implements ChangeManagementService {
 
     protected String extractServiceInstanceId(RequestDetails currentRequestDetails,
             String requestType) {
-        String serviceInstanceId = currentRequestDetails.getRelatedInstList().get(0)
-                .getRelatedInstance().getInstanceId();
-        if (serviceInstanceId == null) {
+        try {
+            String serviceInstanceId = currentRequestDetails.getRelatedInstList().get(0)
+                    .getRelatedInstance().getInstanceId();
+            if (serviceInstanceId == null) {
+                logger.error("Failed to extract serviceInstanceId");
+                throw new BadRequestException("No instanceId in request " + requestType);
+            }
+            return serviceInstanceId;
+        }
+        catch (Exception e) {
             logger.error("Failed to extract serviceInstanceId");
             throw new BadRequestException("No instanceId in request " + requestType);
         }
-        return serviceInstanceId;
     }
 
     @Override
index 999b66c..7490c06 100644 (file)
@@ -64,11 +64,10 @@ public class ChangeManagementApiTest extends BaseApiTest {
     @DataProvider
     public static Object[][] requestWithoutServiceInstanceId(Method test) {
         return new Object[][]{
-                {(Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).setRelatedInstList(null)},
-                {(Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).setRelatedInstList(new ArrayList<>())},
-                {(Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).getRelatedInstList().get(0).setRelatedInstance(null)},
-                {(Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).getRelatedInstList().get(0).getRelatedInstance().setInstanceId(null)}
-
+                {"RelatedInstList null", (Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).setRelatedInstList(null)},
+                {"Empty list", (Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).setRelatedInstList(new ArrayList<>())},
+                {"Related instance null", (Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).getRelatedInstList().get(0).setRelatedInstance(null)},
+                {"instanceId null", (Consumer<ChangeManagementRequest>) changeManagementRequest -> changeManagementRequest.getRequestDetails().get(0).getRelatedInstList().get(0).getRelatedInstance().setInstanceId(null)}
         };
     }
 
@@ -178,7 +177,7 @@ public class ChangeManagementApiTest extends BaseApiTest {
     }
 
     @Test(dataProvider = "requestWithoutServiceInstanceId")
-    public void testInPlaceSoftwareUpdateWithoutServiceInstanceId(Consumer<ChangeManagementRequest> dropInstanceIdMethod) throws IOException {
+    public void testInPlaceSoftwareUpdateWithoutServiceInstanceId(String desc, Consumer<ChangeManagementRequest> dropInstanceIdMethod) throws IOException {
         testChangeManagementServiceInstanceId(dropInstanceIdMethod, ChangeManagementRequest.VNF_IN_PLACE_SOFTWARE_UPDATE);
     }
 
@@ -289,7 +288,7 @@ public class ChangeManagementApiTest extends BaseApiTest {
     }
 
     @Test(dataProvider = "requestWithoutServiceInstanceId")
-    public void testConfigUpdateWithoutServiceInstanceId(Consumer<ChangeManagementRequest> dropInstanceIdMethod) throws IOException {
+    public void testConfigUpdateWithoutServiceInstanceId(String desc, Consumer<ChangeManagementRequest> dropInstanceIdMethod) throws IOException {
         testChangeManagementServiceInstanceId(dropInstanceIdMethod, ChangeManagementRequest.CONFIG_UPDATE);
     }