SliPluginUtils jsonStringToCtx fix 13/104913/2
authorSmokowski, Kevin (ks6305) <kevin.smokowski@att.com>
Wed, 1 Apr 2020 19:58:23 +0000 (19:58 +0000)
committerKevin Smokowski <kevin.smokowski@att.com>
Wed, 1 Apr 2020 20:14:01 +0000 (20:14 +0000)
Support null values in jsonStringToCtx in Slipluginutils

Issue-ID: CCSDK-2250
Signed-off-by: Smokowski, Kevin (ks6305) <kevin.smokowski@att.com>
Change-Id: I3316fa9e80c9e684fc27d83356bbfad9b1151992

sliPluginUtils/provider/src/main/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils.java
sliPluginUtils/provider/src/test/java/org/onap/ccsdk/sli/core/slipluginutils/SliPluginUtils_StaticFunctionsTest.java
sliPluginUtils/provider/src/test/resources/2dArray.json
sliPluginUtils/provider/src/test/resources/ArrayMenu.json
sliPluginUtils/provider/src/test/resources/Widget.json

index ce0f508..60bb4fd 100644 (file)
@@ -70,6 +70,7 @@ public class SliPluginUtils implements SvcLogicJavaPlugin {
        private static final String LOG_MSG="extracting list from context memory";
        private static final String LOG_MSG1="removing elements from list";
        private static final String LENGTH="_length";
+    public static final String CTX_NULL_VALUE="";
 
 
        // ========== CONSTRUCTORS ==========
@@ -846,7 +847,11 @@ public class SliPluginUtils implements SvcLogicJavaPlugin {
                 if(!root.endsWith(".")){
                     root = root + ".";
                 }
-                ctx.setAttribute(root + key, entry.getValue().getAsString());
+                if(entry.getValue().isJsonNull()) {
+                    ctx.setAttribute(root + key, CTX_NULL_VALUE);
+                }else {
+                    ctx.setAttribute(root + key, entry.getValue().getAsString());
+                }
             }
         }
     }
@@ -861,6 +866,8 @@ public class SliPluginUtils implements SvcLogicJavaPlugin {
                 handleJsonArray(key, element.getAsJsonArray(), ctx, prefix);
             } else if (element.isJsonObject()) {
                 writeJsonObject(element.getAsJsonObject(), ctx, prefix + ".");
+            } else if (element.isJsonNull()) {
+                ctx.setAttribute(prefix, CTX_NULL_VALUE);
             } else if (element.isJsonPrimitive()) {
                 ctx.setAttribute(prefix, element.getAsString());
             }
index ad039d7..bc2c922 100644 (file)
@@ -335,7 +335,7 @@ public class SliPluginUtils_StaticFunctionsTest {
         assertEquals("plain", ctx.getAttribute("testPath.[0].name"));
         assertEquals("pizza", ctx.getAttribute("testPath.[0].type"));
         assertEquals("true", ctx.getAttribute("testPath.[0].vegetarian"));
-        assertEquals("2000", ctx.getAttribute("testPath.[1].calories"));
+        assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.[1].calories"));
         assertEquals("2", ctx.getAttribute("testPath.[1].id"));
         assertEquals("Tuesday Special", ctx.getAttribute("testPath.[1].name"));
         assertEquals("1", ctx.getAttribute("testPath.[1].topping[0].id"));
@@ -423,7 +423,8 @@ public class SliPluginUtils_StaticFunctionsTest {
         assertEquals("apple", ctx.getAttribute("testPath.[0][0]"));
         assertEquals("orange", ctx.getAttribute("testPath.[0][1]"));
         assertEquals("banana", ctx.getAttribute("testPath.[0][2]"));
-        assertEquals("3", ctx.getAttribute("testPath.[0]_length"));
+        assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.[0][3]"));
+        assertEquals("4", ctx.getAttribute("testPath.[0]_length"));
         assertEquals("squash", ctx.getAttribute("testPath.[1][0]"));
         assertEquals("broccoli", ctx.getAttribute("testPath.[1][1]"));
         assertEquals("cauliflower", ctx.getAttribute("testPath.[1][2]"));
@@ -488,7 +489,7 @@ public class SliPluginUtils_StaticFunctionsTest {
         assertEquals("text1", ctx.getAttribute("testPath.widget.text.name"));
         assertEquals("21", ctx.getAttribute("testPath.widget.text.size"));
         assertEquals("bold", ctx.getAttribute("testPath.widget.text.style"));
-        assertEquals("200", ctx.getAttribute("testPath.widget.text.vOffset"));
+        assertEquals(SliPluginUtils.CTX_NULL_VALUE, ctx.getAttribute("testPath.widget.text.vOffset"));
         assertEquals("300", ctx.getAttribute("testPath.widget.window.height"));
         assertEquals("main_window", ctx.getAttribute("testPath.widget.window.name"));
         assertEquals("ONAP Widget", ctx.getAttribute("testPath.widget.window.title"));
index b473864..2a94b46 100644 (file)
@@ -1,4 +1,4 @@
 [\r
-       ["apple", "orange", "banana"],\r
+       ["apple", "orange", "banana", null],\r
        ["squash", "broccoli", "cauliflower"]\r
 ]
\ No newline at end of file
index b12f163..26a24f2 100644 (file)
@@ -8,7 +8,7 @@
                "id": "2",\r
                "type": "pizza",\r
                "name": "Tuesday Special",\r
-               "calories": 2000,\r
+               "calories": null,\r
                "vegetarian": false,\r
                "topping":\r
                [{\r
index 1e25282..6b90907 100644 (file)
@@ -20,7 +20,7 @@
                        "style": "bold",\r
                        "name": "text1",\r
                        "hOffset": 350,\r
-                       "vOffset": 200,\r
+                       "vOffset": null,\r
                        "alignment": "center"\r
                }\r
        }\r