Fixed possible NPE in ResourceRequestBuilder 81/78281/4
authorr.bogacki <r.bogacki@samsung.com>
Tue, 12 Feb 2019 10:41:29 +0000 (11:41 +0100)
committerRobert Bogacki <r.bogacki@samsung.com>
Wed, 13 Feb 2019 07:33:52 +0000 (07:33 +0000)
According to Sonar current implementation could cause
NullPointerException.
Added JUnit test.

Change-Id: I840c018bed346d85e2042c7308bdd27197f50b46
Issue-ID: SO-1498
Signed-off-by: Robert Bogacki <r.bogacki@samsung.com>
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java

index 025b533..750f255 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -154,7 +156,7 @@ public class ResourceRequestBuilder {
                 }
             }
 
-           if (resourceInputStr != null || !resourceInputStr.equals("")) {
+           if (resourceInputStr != null && !resourceInputStr.isEmpty()) {
                 return getResourceInput(resourceInputStr, serviceInputs);
            }
 
index e5e1326..ddca319 100644 (file)
@@ -405,4 +405,32 @@ public class ResourceRequestBuilderTest extends BaseTest {
         assertEquals(resourceSequence.get(0), "res1");
         assertEquals(resourceSequence.get(1), "res2");
     }
-}
\ No newline at end of file
+
+    @Test
+    public void getResourceInputWithEmptyServiceResourcesTest() throws Exception {
+
+        stubFor(get(urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
+            .willReturn(ok("{ \"serviceResources\"    : {\n" +
+                "\t\"modelInfo\"       : {\n" +
+                "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
+                "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
+                "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
+                "\t\t\"modelVersion\"       : \"1.0\"\n" +
+                "\t},\n" +
+                "\t\"serviceType\"        : \"\",\n" +
+                "\t\"serviceRole\"        : \"\",\n" +
+                "\t\"environmentContext\" : null,\n" +
+                "\t\"workloadContext\"    : \"Production\",\n" +
+                "\t\"serviceVnfs\": [], \n" +
+                "\t\"serviceNetworks\": [],\n" +
+                "\t\"serviceAllottedResources\": []\n" +
+                "\t}}")));
+
+        HashMap serviceInput = new HashMap();
+        serviceInput.put("key1", "value");
+        Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
+            "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+        assertEquals(0, stringObjectMap.size());
+    }
+
+}