diff options
author | adheli.tavares <adheli.tavares@est.tech> | 2024-07-19 12:14:20 +0100 |
---|---|---|
committer | adheli.tavares <adheli.tavares@est.tech> | 2024-07-19 14:02:08 +0100 |
commit | 119c725def8de2593bdd8e356212fd3078740643 (patch) | |
tree | 491b9b73e76cfb8b93cb6569a2f30ca0fb66b306 /utils/src/test/java/org/onap | |
parent | 936d289bc32ac46baf4230a582d5020e94e39f8f (diff) |
Uplift json schema validator library
Issue-ID: POLICY-5084
Change-Id: Ic0413a07d052b62cf81fb9f128ecca892d76aa73
Signed-off-by: adheli.tavares <adheli.tavares@est.tech>
Diffstat (limited to 'utils/src/test/java/org/onap')
-rw-r--r-- | utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderInstantAsMillisTest.java | 2 | ||||
-rw-r--r-- | utils/src/test/java/org/onap/policy/common/utils/coder/StandardValCoderTest.java | 62 |
2 files changed, 36 insertions, 28 deletions
diff --git a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderInstantAsMillisTest.java b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderInstantAsMillisTest.java index f13ddd9a..6db9e66e 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderInstantAsMillisTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderInstantAsMillisTest.java @@ -87,7 +87,7 @@ class StandardCoderInstantAsMillisTest { } @Test - void testToJsonTree_testFromJsonJsonElementClassT() throws Exception { + void testToJsonTree_testFromJsonJsonElementClassT() { MyMap map = new MyMap(); map.props = new LinkedHashMap<>(); map.props.put("jel keyA", "jel valueA"); diff --git a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardValCoderTest.java b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardValCoderTest.java index 45d814a4..8b5f406b 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardValCoderTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardValCoderTest.java @@ -21,24 +21,23 @@ package org.onap.policy.common.utils.coder; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; -import com.worldturner.medeia.api.ValidationFailedException; -import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.List; import lombok.Data; import lombok.NoArgsConstructor; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.onap.policy.common.utils.resources.ResourceUtils; class StandardValCoderTest { private String jsonSchema; @@ -63,7 +62,7 @@ class StandardValCoderTest { } @BeforeEach - public void testSetUp() throws Exception { + public void testSetUp() { jsonSchema = getJson("src/test/resources/org/onap/policy/common/utils/coder/test.schema.json"); validJson = getJson("src/test/resources/org/onap/policy/common/utils/coder/valid.json"); missingReqJson = getJson("src/test/resources/org/onap/policy/common/utils/coder/missing-required.json"); @@ -72,7 +71,7 @@ class StandardValCoderTest { @Test void testDecode() throws CoderException { - StandardValCoder valCoder = new StandardValCoder(jsonSchema, "test-schema"); + StandardValCoder valCoder = new StandardValCoder(jsonSchema); ValOuter valOuter = valCoder.decode(validJson, ValOuter.class); assertValidJson(valOuter); @@ -85,34 +84,22 @@ class StandardValCoderTest { valCoder.decode(missingReqJson, ValOuter.class); fail("missing required field should have been flagged by the schema validation"); } catch (CoderException e) { - assertEquals("required", ((ValidationFailedException) e.getCause()).getFailures().get(0).getRule()); - assertEquals("aaCollection", - ((ValidationFailedException) e.getCause()).getFailures().get(0).getProperty()); - assertEquals("Required property aaCollection is missing from object", - ((ValidationFailedException) e.getCause()).getFailures().get(0).getMessage()); + assertThat(e.getMessage()).contains("Missing property aaCollection"); } try { valCoder.decode(badRegexJson, ValOuter.class); fail("bad regex should have been flagged by the schema validation"); } catch (CoderException e) { - assertEquals("properties", ((ValidationFailedException) e.getCause()).getFailures().get(0).getRule()); - assertEquals("aaString", - ((ValidationFailedException) e.getCause()).getFailures().get(0).getProperty()); - assertEquals("Property validation failed", - ((ValidationFailedException) e.getCause()).getFailures().get(0).getMessage()); - assertEquals("pattern", - ((ValidationFailedException) e.getCause()).getFailures() - .get(0).getDetails().iterator().next().getRule()); - assertEquals("Pattern ^([a-z]*)$ is not contained in text", - ((ValidationFailedException) e.getCause()).getFailures() - .get(0).getDetails().iterator().next().getMessage()); + assertThat(e.getMessage()) + .contains("Validation errors: \"abc123\" at #/aaString failed") + .contains("Did not match pattern: ^([a-z]*)$"); } } @Test void testEncode() throws CoderException { - StandardValCoder valCoder = new StandardValCoder(jsonSchema, "test-schema"); + StandardValCoder valCoder = new StandardValCoder(jsonSchema); ValOuter valOuter = valCoder.decode(validJson, ValOuter.class); String valOuterJson = valCoder.encode(valOuter); @@ -129,7 +116,7 @@ class StandardValCoderTest { @Test void testPretty() throws CoderException { - StandardValCoder valCoder = new StandardValCoder(jsonSchema, "test-schema"); + StandardValCoder valCoder = new StandardValCoder(jsonSchema); ValOuter valOuter = valCoder.decode(validJson, ValOuter.class); String valOuterJson = valCoder.encode(valOuter); @@ -146,12 +133,33 @@ class StandardValCoderTest { @Test void testConformance() { - StandardValCoder valCoder = new StandardValCoder(jsonSchema, "test-schema"); + StandardValCoder valCoder = new StandardValCoder(jsonSchema); assertTrue(valCoder.isConformant(validJson)); assertFalse(valCoder.isConformant(missingReqJson)); assertFalse(valCoder.isConformant(badRegexJson)); } + @Test + void testNullValues() throws CoderException { + StandardValCoder valCoder = new StandardValCoder(jsonSchema); + assertThrows(NullPointerException.class, () -> valCoder.toJson(null)); + assertThrows(NullPointerException.class, () -> valCoder.isConformant(null)); + assertThrows(NullPointerException.class, () -> valCoder.conformance(null)); + + assertThrows(NullPointerException.class, () -> valCoder.toJson(null, null)); + var writer = new StringWriter(); + assertThrows(NullPointerException.class, () -> valCoder.toJson(writer, null)); + ValOuter valOuter = valCoder.decode(validJson, ValOuter.class); + assertThrows(NullPointerException.class, () -> valCoder.toJson(null, valOuter)); + } + + @Test + void testConstructor() { + assertThrows(NullPointerException.class, () -> new StandardValCoder(null)); + + assertThrows(CoderRuntimeException.class, () -> new StandardValCoder("$schema")); + } + private void assertValidJson(ValOuter valOuter) { assertEquals("abcd", valOuter.getAaString()); assertEquals(90, valOuter.getAnInteger()); @@ -160,7 +168,7 @@ class StandardValCoderTest { assertEquals(Integer.valueOf(1200), valOuter.getAaCollection().get(0).getSubItemInteger()); } - private String getJson(String filePath) throws IOException { - return new String(Files.readAllBytes(Paths.get(filePath))); + private String getJson(String filePath) { + return ResourceUtils.getResourceAsString(filePath); } }
\ No newline at end of file |