From c58f445fcef56a6440f3b21d54b390700623c48c Mon Sep 17 00:00:00 2001 From: siddharth0905 Date: Tue, 21 Aug 2018 17:55:30 +0530 Subject: Test coverage Increase test coverage Change-Id: I43e3149d0d4b07dc8e260f3d5fac025197882f3a Issue-ID: SDC-1673 Signed-off-by: siddharth0905 --- .../core/utilities/json/JsonUtilTest.java | 133 ++++++++++++++++----- 1 file changed, 104 insertions(+), 29 deletions(-) (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java') diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java index d89019baec..02bc568c39 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/src/test/java/org/openecomp/core/utilities/json/JsonUtilTest.java @@ -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. @@ -21,45 +21,120 @@ package org.openecomp.core.utilities.json; +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import org.openecomp.core.utilities.file.FileUtils; import org.testng.Assert; import org.testng.annotations.Test; -import java.util.List; - public class JsonUtilTest { - @Test - public void testValidJsonValidate() throws Exception { + @Test + public void testValidJsonValidate() { + + + String json = FileUtils.readViaInputStream("jsonUtil/json/a.json", + stream -> new String(FileUtils.toByteArray(stream))); + + String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json", + stream -> new String(FileUtils.toByteArray(stream))); + + List validationErrors = JsonUtil.validate(json, jsonSchema); + Assert.assertNull(validationErrors); + } + + @Test + public void testInValidJsonValidate() { + + String json = FileUtils.readViaInputStream("jsonUtil/json/a_invalid.json", + stream -> new String(FileUtils.toByteArray(stream))); + String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json", + stream -> new String(FileUtils.toByteArray(stream))); + + List validationErrors = JsonUtil.validate(json, jsonSchema); + Assert.assertNotNull(validationErrors); + Assert.assertEquals(validationErrors.size(), 5); + Assert.assertEquals(validationErrors.get(0), + "#/cityOfBirth: Paris is not a valid value. Possible values: New York,Tel Aviv,London"); + Assert.assertEquals(validationErrors.get(1), + "#/address: {\"streetAddress\":\"21 2nd Street\",\"city\":\"Paris\"} is not a valid value. {\"streetAddress\":\"21 2nd Street\",\"city\":\"New York\"} is the only possible value for this field"); + Assert.assertEquals(validationErrors.get(2), + "#/phoneNumber/0/code: expected type: Number, found: String"); + Assert.assertEquals(validationErrors.get(3), + "#/gender: expected type: String, found: Integer"); + Assert.assertEquals(validationErrors.get(4), "#/dateOfBirth: [20101988] is not valid value. " + + "It does not match pattern (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)"); + } + + @Test(expectedExceptions = IllegalArgumentException.class) + public void testInValidJsonValidateNullJson() { + JsonUtil.validate(null, null); + } + + @Test + public void testObject2Json() { + List list = Stream.of("Json", "Util", "Test").collect(Collectors.toList()); + + String resultStr = JsonUtil.object2Json(list); + Assert.assertNotNull(resultStr); + Assert.assertTrue(resultStr.contains("Json") && resultStr.contains("Util")); + } + @Test + public void testSbObject2Json() { + List list = Stream.of("Json", "Util", "Test").collect(Collectors.toList()); + StringBuilder resultStr = JsonUtil.sbObject2Json(list); + Assert.assertNotNull(resultStr); + Assert.assertTrue(resultStr.toString().contains("Json") + && resultStr.toString().contains("Util")); + } - String json = FileUtils.readViaInputStream("jsonUtil/json/a.json", - stream -> new String(FileUtils.toByteArray(stream))); + @Test + public void testJson2Object() { + String inputStr = "[Json, Util, Test]"; + List list = JsonUtil.json2Object(inputStr, ArrayList.class); + Assert.assertNotNull(list); + Assert.assertEquals(list.size(), 3); + } - String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json", - stream -> new String(FileUtils.toByteArray(stream))); + @Test(expectedExceptions = RuntimeException.class) + public void testJson2ObjectIncorrectJson() { + String inputStr = "{[Json, Util, Test]}"; + List list = JsonUtil.json2Object(inputStr, ArrayList.class); + Assert.assertNull(list); + } - List validationErrors = JsonUtil.validate(json, jsonSchema); - Assert.assertNull(validationErrors); - } + @Test + public void testJson2ObjectInputStream() { + String inputStr = "[Json, Util, Test]"; + List list = JsonUtil.json2Object(new ByteArrayInputStream(inputStr.getBytes()), ArrayList.class); + Assert.assertNotNull(list); + Assert.assertEquals(list.size(), 3); + } - @Test - public void testInValidJsonValidate() throws Exception { + @Test(expectedExceptions = RuntimeException.class) + public void testJson2ObjectIncorrectJsonInputStream() { + String inputStr = "{[Json, Util, Test]}"; + List list = JsonUtil.json2Object(new ByteArrayInputStream(inputStr.getBytes()), ArrayList.class); + Assert.assertNull(list); + } - String json = FileUtils.readViaInputStream("jsonUtil/json/a_invalid.json", - stream -> new String(FileUtils.toByteArray(stream))); - String jsonSchema = FileUtils.readViaInputStream("jsonUtil/json_schema/aSchema.json", - stream -> new String(FileUtils.toByteArray(stream))); + @Test + public void testIsValidJson() { + String inputStr = "{\n" + + "\t\"obj\": [\"Json\", \"Util\", \"Test\"]\n" + + "}"; + Assert.assertTrue(JsonUtil.isValidJson(inputStr)); + } + @Test + public void testIsValidJsonFail() { + String inputStr = "{[Json, Util, Test]}"; + Assert.assertFalse(JsonUtil.isValidJson(inputStr)); + } - List validationErrors = JsonUtil.validate(json, jsonSchema); - Assert.assertNotNull(validationErrors); - Assert.assertEquals(validationErrors.size(), 3); - Assert.assertEquals(validationErrors.get(0), - "#/cityOfBirth: Paris is not a valid value. Possible values: New York,Tel Aviv,London"); - Assert.assertEquals(validationErrors.get(1), - "#/address: {\"streetAddress\":\"21 2nd Street\",\"city\":\"Paris\"} is not a valid value. {\"streetAddress\":\"21 2nd Street\",\"city\":\"New York\"} is the only possible value for this field"); - Assert.assertEquals(validationErrors.get(2), - "#/phoneNumber/0/code: expected type: Number, found: String"); - } } -- cgit 1.2.3-korg