From 3bd15af9248f3347ab43324ab2ccee9dbb945db3 Mon Sep 17 00:00:00 2001 From: "priyanka.akhade" Date: Wed, 16 Sep 2020 14:41:40 +0530 Subject: printyaml method fix Signed-off-by: priyanka.akhade Change-Id: I4e9178a884981600731b2a33fb8bec2640fcd9b7 Issue-ID: CLI-251 --- framework/pom.xml | 21 +++++++++++++ .../onap/cli/fw/output/print/OnapCommandPrint.java | 15 ++++------ .../onap/cli/fw/output/OnapCommandResultTest.java | 35 ++++++++++++++++++++++ 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/framework/pom.xml b/framework/pom.xml index c23451d4..9eb5bf8a 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -98,6 +98,27 @@ gson 2.8.2 + + com.fasterxml.jackson.core + jackson-databind + 2.11.0 + + + com.fasterxml.jackson.core + jackson-core + + + + + com.fasterxml.jackson.core + jackson-core + 2.11.0 + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + 2.11.0 + junit junit diff --git a/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java b/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java index 5527f94f..6850fe3f 100644 --- a/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java +++ b/framework/src/main/java/org/onap/cli/fw/output/print/OnapCommandPrint.java @@ -32,6 +32,8 @@ import org.onap.cli.fw.error.OnapCommandOutputPrintingFailed; import org.onap.cli.fw.output.OnapCommandPrintDirection; import com.google.gson.JsonParser; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import net.minidev.json.JSONArray; import net.minidev.json.JSONObject; @@ -275,20 +277,13 @@ public class OnapCommandPrint { } } - - /* - required vulnerable fix - jackson-dataformat-yaml:YAMLMapper is a sub component of jackson-databind - jackson-databind is replaced with gson - JIRA: CLI-251 - */ + public String printYaml() throws OnapCommandOutputPrintingFailed { - /* try { + try { return new YAMLMapper().writeValueAsString(new ObjectMapper().readTree(this.printJson())); } catch (IOException e) { throw new OnapCommandOutputPrintingFailed(e); // NOSONAR } - */ - return ""; //NOSONAR + } } diff --git a/framework/src/test/java/org/onap/cli/fw/output/OnapCommandResultTest.java b/framework/src/test/java/org/onap/cli/fw/output/OnapCommandResultTest.java index f46fc911..cf274f23 100644 --- a/framework/src/test/java/org/onap/cli/fw/output/OnapCommandResultTest.java +++ b/framework/src/test/java/org/onap/cli/fw/output/OnapCommandResultTest.java @@ -235,4 +235,39 @@ public class OnapCommandResultTest { assertEquals(expRes,result); } + + @Test + public void printYamlTest() throws OnapCommandException { + OnapCommandResult res = new OnapCommandResult(); + res.setDebugInfo("debugInfo"); + res.setIncludeSeparator(true); + res.setIncludeTitle(true); + res.setOutput("Output"); + res.setPrintDirection(OnapCommandPrintDirection.LANDSCAPE); + + OnapCommandResultAttribute att = new OnapCommandResultAttribute(); + att.setName("param"); + att.setDescription("description"); + att.setType(OnapCommandParameterType.YAML); + att.setValues( + new ArrayList(Arrays.asList(new String[] { "{\"id\": \"0001\",\"value\": \"result\"}" }))); + List list = new ArrayList(); + list.add(att); + res.setRecords(list); + res.setScope(OnapCommandResultAttributeScope.LONG); + res.setType(OnapCommandResultType.YAML); + String result = res.print(); + String expRes="---\n- param:\n id: \"0001\"\n value: \"result\"\n"; + assertEquals(expRes,result); + + att.setValues( + new ArrayList(Arrays.asList(new String[] { "{\"id\": \"0001\": \"value\": }" }))); + list = new ArrayList(); + list.add(att); + res.setRecords(list); + result = res.print(); + expRes="---\n- param: null\n"; + assertEquals(expRes,result); + + } } -- cgit 1.2.3-korg