From 225400a393da49322bdf500a61ae423ec00efead Mon Sep 17 00:00:00 2001 From: subhash kumar singh Date: Fri, 23 Feb 2018 06:05:28 +0000 Subject: Make default value type object Enhance default value type from String to Object so that it will directly support different type (BOOL, Array, Map). Issue-ID: CLI-74 Change-Id: Iaca438e58150c80047340acba92917ecae685242 Signed-off-by: subhash kumar singh --- .../org/onap/cli/main/utils/OnapCliArgsParser.java | 20 ++++---------------- .../org/onap/cli/main/utils/OnapCliUtilsTest.java | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 17 deletions(-) (limited to 'main/src') diff --git a/main/src/main/java/org/onap/cli/main/utils/OnapCliArgsParser.java b/main/src/main/java/org/onap/cli/main/utils/OnapCliArgsParser.java index fdf6d5b8..16d6a285 100644 --- a/main/src/main/java/org/onap/cli/main/utils/OnapCliArgsParser.java +++ b/main/src/main/java/org/onap/cli/main/utils/OnapCliArgsParser.java @@ -105,7 +105,7 @@ public class OnapCliArgsParser { // end of the list or if its option rather than a value if ((i + 1) == args.size() || args.get(i + 1).startsWith("-")) { if (paramMap.get(paramName).getParameterType().equals(OnapCommandParameterType.BOOL)) { - paramMap.get(paramName).setValue("true"); + paramMap.get(paramName).setValue(true); continue; } throw new OnapCliArgumentValueMissing(args.get(i)); @@ -124,13 +124,8 @@ public class OnapCliArgsParser { } else if (paramMap.get(paramName).getParameterType() .equals(OnapCommandParameterType.ARRAY)) { Object value = paramMap.get(paramName).getValue(); - List list; - if (value == "") { - list = new ArrayList<>(); - } else { - list = convertJsonToListString(paramMap.get(paramName).getName(), - value.toString()); - } + List list = (List) value; + list.add(args.get(i + 1)); paramMap.get(paramName).setValue(list); i++; @@ -138,14 +133,7 @@ public class OnapCliArgsParser { } else if (paramMap.get(paramName).getParameterType().equals(OnapCommandParameterType.MAP)) { Object value = paramMap.get(paramName).getValue(); - Map map; - - if (value == "") { - map = new HashMap<>(); - } else { - map = convertJsonToMapString(paramMap.get(paramName).getName(), - value.toString()); - } + Map map = (Map) value; String arg = args.get(i + 1); String[] argArr = arg.split("="); diff --git a/main/src/test/java/org/onap/cli/main/utils/OnapCliUtilsTest.java b/main/src/test/java/org/onap/cli/main/utils/OnapCliUtilsTest.java index eb2ca294..c3627ca2 100644 --- a/main/src/test/java/org/onap/cli/main/utils/OnapCliUtilsTest.java +++ b/main/src/test/java/org/onap/cli/main/utils/OnapCliUtilsTest.java @@ -21,6 +21,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Optional; import java.util.Set; import org.junit.Assert; @@ -255,7 +257,7 @@ public class OnapCliUtilsTest { OnapCliArgsParser.populateParams(paramslist, Arrays.asList("show", "--map", "param1=value1", "--map", "param2=value2")); - Assert.assertEquals("{\"param1\":\"value1\",\"param2\":\"value2\"}", paramslist.iterator().next().getValue().toString()); + Assert.assertEquals("{param1=value1, param2=value2}", paramslist.iterator().next().getValue().toString()); } @Test(expected = OnapCliInvalidArgument.class) @@ -360,4 +362,19 @@ public class OnapCliUtilsTest { Assert.assertEquals("--json-param", paramslist.iterator().next().getValue()); } + + @Test + public void testArrayCommandArg() throws OnapCommandException { + OnapCommandParameter arrParam = new OnapCommandParameter(); + arrParam.setShortOption("q"); + arrParam.setParameterType(OnapCommandParameterType.ARRAY); + arrParam.setName("array-param"); + Set paramslist = new HashSet<>(); + paramslist.add(arrParam); + String[] args = new String[] { "sample-create", "-q", "test1", "-q", "test2" }; + + OnapCliArgsParser.populateParams(paramslist, Arrays.asList(args)); + Assert.assertTrue(((List) arrParam.getValue()) + .containsAll(Arrays.asList("test1", "test2"))); + } } \ No newline at end of file -- cgit 1.2.3-korg