From d6969f09272b77687b24aa333f45de6b33844470 Mon Sep 17 00:00:00 2001 From: Jakub Dudycz Date: Mon, 12 Mar 2018 15:24:40 +0100 Subject: JsonUtil unit tests Improved code coverage + some test class refactor Change-Id: Ie69f4a699f7f924438eda24014c44fe54643e707 Issue-ID: APPC-724 Signed-off-by: Jakub Dudycz --- .../test/java/org/onap/appc/util/JsonUtilTest.java | 123 +++++++++++++++++++++ .../org/onap/appc/util/MessageFormatterTest.java | 18 +++ .../test/java/org/onap/appc/util/TestJsonUtil.java | 83 -------------- appc-common/src/test/resources/invalid.json | 3 + appc-common/src/test/resources/valid.json | 4 + 5 files changed, 148 insertions(+), 83 deletions(-) create mode 100644 appc-common/src/test/java/org/onap/appc/util/JsonUtilTest.java create mode 100644 appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java delete mode 100644 appc-common/src/test/java/org/onap/appc/util/TestJsonUtil.java create mode 100644 appc-common/src/test/resources/invalid.json create mode 100644 appc-common/src/test/resources/valid.json diff --git a/appc-common/src/test/java/org/onap/appc/util/JsonUtilTest.java b/appc-common/src/test/java/org/onap/appc/util/JsonUtilTest.java new file mode 100644 index 000000000..6d2ac7094 --- /dev/null +++ b/appc-common/src/test/java/org/onap/appc/util/JsonUtilTest.java @@ -0,0 +1,123 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.onap.appc.util; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonParseException; +import java.io.FileNotFoundException; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.*; + + +public class JsonUtilTest { + + @Test(expected = NullPointerException.class) + public void should_throw_exception_when_json_string_is_null() throws IOException { + + JsonUtil.convertJsonStringToFlatMap(null); + } + + @Test(expected = JsonParseException.class) + public void should_throw_exception_when_invalid_json_string() throws IOException { + + JsonUtil.convertJsonStringToFlatMap("{key: value}"); + } + + @Test + public void should_convert_json_string_to_flat_map() throws IOException { + + String jsonString = "{\"A\":\"A-value\",\"B\":{\"C\":\"B.C-value\",\"D\":\"B.D-value\"}}"; + Map flatMap = JsonUtil.convertJsonStringToFlatMap(jsonString); + + Map expectedMap = new HashMap<>(); + expectedMap.put("A", "A-value"); + expectedMap.put("B.C", "B.C-value"); + expectedMap.put("B.D", "B.D-value"); + + assertEquals(expectedMap, flatMap); + assertNotNull(flatMap); + } + + @Test + public void should_convert_json_string_to_flat_map_with_nested_json() throws IOException { + + String jsonString = "{\"A\":\"A-value\",\"B\":\"{\\\"C\\\":\\\"C-value\\\",\\\"D\\\":\\\"D-value\\\"}\"}"; + Map flatMap = JsonUtil.convertJsonStringToFlatMap(jsonString); + + Map expectedMap = new HashMap<>(); + expectedMap.put("A", "A-value"); + expectedMap.put("B", "{\"C\":\"C-value\",\"D\":\"D-value\"}"); + + assertEquals(expectedMap, flatMap); + assertNotNull(flatMap); + } + + @Test(expected = FileNotFoundException.class) + public void should_throw_exception_when_not_found_json_file() throws IOException { + JsonUtil.readInputJson("not-existing.json", DummyClass.class); + } + + + @Test(expected = JsonParseException.class) + public void should_throw_exception_when_invalid_json_file() throws IOException { + JsonUtil.readInputJson("/invalid.json", DummyClass.class); + } + + @Test + public void should_parse_valid_json_file () throws IOException { + DummyClass dummyClass = JsonUtil.readInputJson("/valid.json", DummyClass.class); + + assertEquals("dummy name", dummyClass.getName()); + assertEquals(99, dummyClass.getValue()); + } + + private static class DummyClass { + + private String name; + private int value; + + public DummyClass(@JsonProperty("name") String name, @JsonProperty("value") int someValue) { + this.name = name; + this.value = someValue; + } + + public String getName() { + return name; + } + + public int getValue() { + return value; + } + } +} + + diff --git a/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java b/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java new file mode 100644 index 000000000..27f309fa9 --- /dev/null +++ b/appc-common/src/test/java/org/onap/appc/util/MessageFormatterTest.java @@ -0,0 +1,18 @@ +package org.onap.appc.util; + +import java.util.HashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Test; + +public class MessageFormatterTest { + + @Test + public void testEscapeDollarInMessgeFormatter() { + String msg = "${SYNC_NEW201}"; + Map respMsg = new HashMap<>(); + respMsg.put("vnfid", msg); + String formattedMsg = MessageFormatter.format(msg, respMsg); + Assert.assertEquals(msg, formattedMsg); + } +} diff --git a/appc-common/src/test/java/org/onap/appc/util/TestJsonUtil.java b/appc-common/src/test/java/org/onap/appc/util/TestJsonUtil.java deleted file mode 100644 index 5963c6795..000000000 --- a/appc-common/src/test/java/org/onap/appc/util/TestJsonUtil.java +++ /dev/null @@ -1,83 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP : APPC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Copyright (C) 2017 Amdocs - * ============================================================================= - * 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. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * ============LICENSE_END========================================================= - */ - -package org.onap.appc.util; - -import org.junit.Assert; -import org.junit.Test; -import org.onap.appc.util.JsonUtil; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import static org.junit.Assert.*; - - - -public class TestJsonUtil { - - @Test - public void testConvertJsonStringToFlatMap() { - try { - String jsonString = "{\"A\":\"A-value\",\"B\":{\"C\":\"B.C-value\",\"D\":\"B.D-value\"}}"; - Map flatMap = JsonUtil.convertJsonStringToFlatMap(jsonString); - assertNotNull(flatMap); - Map expectedMap = new HashMap<>(); - expectedMap.put("A","A-value"); - expectedMap.put("B.C","B.C-value"); - expectedMap.put("B.D","B.D-value"); - assertEquals(expectedMap,flatMap); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail(e.toString()); - } - } - - @Test - public void testConvertJsonStringToFlatMapWithInnerJson() { - try { - String jsonString = "{\"A\":\"A-value\",\"B\":\"{\\\"C\\\":\\\"C-value\\\",\\\"D\\\":\\\"D-value\\\"}\"}"; - Map flatMap = JsonUtil.convertJsonStringToFlatMap(jsonString); - assertNotNull(flatMap); - Map expectedMap = new HashMap<>(); - expectedMap.put("A","A-value"); - expectedMap.put("B","{\"C\":\"C-value\",\"D\":\"D-value\"}"); - assertEquals(expectedMap,flatMap); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail(e.toString()); - } - } - - @Test - public void testEscapeDollarInMessgeFormatter(){ - String msg="${SYNC_NEW201}"; - Map respMsg=new HashMap(); - respMsg.put("vnfid",msg); - String formatedMsg=MessageFormatter.format(msg,respMsg); - Assert.assertEquals(msg,formatedMsg); - } -} diff --git a/appc-common/src/test/resources/invalid.json b/appc-common/src/test/resources/invalid.json new file mode 100644 index 000000000..cd152e0fc --- /dev/null +++ b/appc-common/src/test/resources/invalid.json @@ -0,0 +1,3 @@ +{ + name: value +} \ No newline at end of file diff --git a/appc-common/src/test/resources/valid.json b/appc-common/src/test/resources/valid.json new file mode 100644 index 000000000..6ce80f36f --- /dev/null +++ b/appc-common/src/test/resources/valid.json @@ -0,0 +1,4 @@ +{ + "name": "dummy name", + "value": 99 +} \ No newline at end of file -- cgit 1.2.3-korg