From fd6848dddf9ada60011e33e361b3c29303f59035 Mon Sep 17 00:00:00 2001 From: Ivan Paolillo Date: Thu, 7 Jul 2016 15:57:39 +0200 Subject: [PATCH] Add JSON Schema validation --- .../baeldung/json/schema/JSONSchemaTest.java | 24 +++++++++++++++++-- .../{product.json => product_valid.json} | 2 +- 2 files changed, 23 insertions(+), 3 deletions(-) rename json/src/test/resources/{product.json => product_valid.json} (66%) diff --git a/json/src/test/java/org/baeldung/json/schema/JSONSchemaTest.java b/json/src/test/java/org/baeldung/json/schema/JSONSchemaTest.java index 5e8f024ac3..16721d6700 100644 --- a/json/src/test/java/org/baeldung/json/schema/JSONSchemaTest.java +++ b/json/src/test/java/org/baeldung/json/schema/JSONSchemaTest.java @@ -11,10 +11,30 @@ import org.junit.Test; public class JSONSchemaTest { @Test - public void validateJSON() { + public void givenInvalidInput_whenValidating_thenInvalid() { JSONObject jsonSchema = new JSONObject(new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/schema.json"))); - JSONObject jsonSubject = new JSONObject(new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/product.json"))); + JSONObject jsonSubject = new JSONObject(new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/product_invalid.json"))); + + Schema schema = SchemaLoader.load(jsonSchema); + + try { + + schema.validate(jsonSubject); + } + + catch (ValidationException e) { + + System.out.println(e.getMessage()); + e.getCausingExceptions().stream().map(ValidationException::getMessage).forEach(System.out::println); + } + } + + @Test + public void givenValidInput_whenValidating_thenValid() { + + JSONObject jsonSchema = new JSONObject(new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/schema.json"))); + JSONObject jsonSubject = new JSONObject(new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/product_valid.json"))); Schema schema = SchemaLoader.load(jsonSchema); diff --git a/json/src/test/resources/product.json b/json/src/test/resources/product_valid.json similarity index 66% rename from json/src/test/resources/product.json rename to json/src/test/resources/product_valid.json index 7c55d8c7a5..e0697dc4c2 100644 --- a/json/src/test/resources/product.json +++ b/json/src/test/resources/product_valid.json @@ -1,5 +1,5 @@ { "id": 1, "name": "Lampshade", - "price": 0 + "price": 10 }