Merge "Fix request input parsing if default value null"
authorSeshu Kumar M <seshu.kumar.m@huawei.com>
Thu, 11 Apr 2019 06:42:11 +0000 (06:42 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 11 Apr 2019 06:42:11 +0000 (06:42 +0000)
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 e7ab6e4..0dbf2c2 100644 (file)
@@ -139,7 +139,6 @@ public class ResourceRequestBuilder {
             Map<String, Object> serviceInputs) {
         try {
             Map<String, Object> serviceInstnace = getServiceInstnace(serviceUuid);
-
             // find match of customization uuid in vnf
             Map<String, Map<String, Object>> serviceResources =
                     (Map<String, Map<String, Object>>) serviceInstnace.get("serviceResources");
@@ -200,7 +199,11 @@ public class ResourceRequestBuilder {
                 if (serviceInputs.containsKey(tmpKey)) {
                     value = (String) serviceInputs.get(tmpKey);
                 } else {
-                    value = split[1];
+                    if (split.length == 1) { // means value is empty e.g. "a":"key1|"
+                        value = "";
+                    } else {
+                        value = split[1];
+                    }
                 }
             }
             resourceInput.put(key, value);
index 0c2862b..c7c1817 100644 (file)
@@ -7,9 +7,9 @@
  * 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
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  */
 package org.onap.so.bpmn.common.resource;
 
+import org.junit.Test;
+import org.onap.so.BaseTest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import static com.github.tomakehurst.wiremock.client.WireMock.get;
 import static com.github.tomakehurst.wiremock.client.WireMock.ok;
 import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
 import static org.junit.Assert.assertEquals;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.junit.Test;
-import org.onap.so.BaseTest;
 
 
 public class ResourceRequestBuilderTest extends BaseTest {
@@ -341,4 +341,49 @@ public class ResourceRequestBuilderTest extends BaseTest {
         assertEquals(0, stringObjectMap.size());
     }
 
+    @Test
+    public void testGetResourceInputEmptyValue() {
+        wireMockServer.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\"resourceOrder\"       : \"res1,res2\",\n"
+                                + "\t\"workloadContext\"    : \"Production\",\n" + "\t\"serviceVnfs\": [\n" + "\t\n"
+                                + "\t\t{ \"modelInfo\"                    : {\n"
+                                + "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n"
+                                + "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n"
+                                + "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n"
+                                + "\t\t\t\"modelVersion\"           : \"1.0\",\n"
+                                + "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n"
+                                + "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" + "\t\t\t},\n"
+                                + "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n"
+                                + "\t\t\"nfFunction\"           \t: null,\n"
+                                + "\"resourceInput\":\"{\\\"a\\\":\\\"key1|\\\"}\","
+                                + "\t\t\"nfType\"              \t\t: null,\n"
+                                + "\t\t\"nfRole\"              \t\t: null,\n"
+                                + "\t\t\"nfNamingCode\"         \t: null,\n"
+                                + "\t\t\"multiStageDesign\"         : \"false\",\n" + "\t\t\t\"vfModules\": [\n"
+                                + "\t\t\t\t{\n" + "\t\t\t\t\t\"modelInfo\"               : { \n"
+                                + "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n"
+                                + "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n"
+                                + "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n"
+                                + "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n"
+                                + "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n"
+                                + "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n"
+                                + "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n"
+                                + "\t\t\t\t\t\"initialCount\"           : 1,\n"
+                                + "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" + "\t\t\t\t}\n" + "\t\t\t]\n"
+                                + "\t\t}]}}")));
+
+        HashMap serviceInput = new HashMap();
+        serviceInput.put("key2", "value");
+        Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest(
+                "c3954379-4efe-431c-8258-f84905b158e5", "a00404d5-d7eb-4c46-b6b6-9cf2d087e545", serviceInput);
+        assertEquals(stringObjectMap.get("a"), "");
+    }
+
 }