|
|
@@ -3,6 +3,7 @@ package org.leumasjaffe.json.schema.factory;
|
|
|
import static org.junit.Assert.*;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import org.junit.Before;
|
|
|
import org.junit.Test;
|
|
|
@@ -10,6 +11,8 @@ import org.leumasjaffe.json.schema.Tester;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.databind.node.DoubleNode;
|
|
|
+import com.fasterxml.jackson.databind.node.IntNode;
|
|
|
import com.fasterxml.jackson.databind.node.NullNode;
|
|
|
|
|
|
public class SchemaV6FactoryTest {
|
|
|
@@ -22,53 +25,107 @@ public class SchemaV6FactoryTest {
|
|
|
mapper = new ObjectMapper();
|
|
|
}
|
|
|
|
|
|
- public JsonNode readTree(String data) {
|
|
|
+ private JsonNode readTree(String data) {
|
|
|
try {
|
|
|
return mapper.readTree(data);
|
|
|
} catch (IOException e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private Tester fromSingleElement(String data) {
|
|
|
+ final JsonNode schema = readTree(data);
|
|
|
+ final Map.Entry<String, JsonNode> pair = schema.fields().next();
|
|
|
+ return factory.createMapping(pair.getKey(), pair.getValue());
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
|
public void testIDSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"$id\": \"test.json\" }");
|
|
|
- Tester test = factory.createMapping("$id", schema.get("$id"));
|
|
|
+ Tester test = fromSingleElement("{ \"$id\": \"test.json\" }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testSchemaSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"$schema\": \"http://json-schema.org/draft-06/schema#\" }");
|
|
|
- Tester test = factory.createMapping("$schema", schema.get("$schema"));
|
|
|
+ Tester test = fromSingleElement("{ \"$schema\": \"http://json-schema.org/draft-06/schema#\" }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testTitleSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"title\": \"This is a schema\" }");
|
|
|
- Tester test = factory.createMapping("title", schema.get("title"));
|
|
|
+ Tester test = fromSingleElement("{ \"title\": \"This is a schema\" }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testDescriptionSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"description\": \"This is a schema\" }");
|
|
|
- Tester test = factory.createMapping("description", schema.get("description"));
|
|
|
+ Tester test = fromSingleElement("{ \"description\": \"This is a schema\" }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testDefaultSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"default\": {} }");
|
|
|
- Tester test = factory.createMapping("default", schema.get("default"));
|
|
|
+ Tester test = fromSingleElement("{ \"default\": {} }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testExamplesSchema() {
|
|
|
- final JsonNode schema = readTree("{ \"examples\": [] }");
|
|
|
- Tester test = factory.createMapping("examples", schema.get("examples"));
|
|
|
+ Tester test = fromSingleElement("{ \"examples\": [] }");
|
|
|
assertTrue(test.accepts(NullNode.getInstance()));
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMultipleOfSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"multipleOf\": 1.5 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(3.0)));
|
|
|
+ assertTrue(test.accepts(new IntNode(3)));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(2.5)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMaximumSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"maximum\": 2.5 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(3.0)));
|
|
|
+ assertTrue(test.accepts(new IntNode(2)));
|
|
|
+ assertFalse(test.accepts(new IntNode(3)));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(2.5)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testExclusiveMaximumSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"exclusiveMaximum\": 2.5 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(3.0)));
|
|
|
+ assertTrue(test.accepts(new IntNode(2)));
|
|
|
+ assertFalse(test.accepts(new IntNode(3)));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(2.5)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMinimumSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"minimum\": 2.5 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(3.0)));
|
|
|
+ assertFalse(test.accepts(new IntNode(2)));
|
|
|
+ assertTrue(test.accepts(new IntNode(3)));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(2.5)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testExclusiveMinimumSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"exclusiveMinimum\": 2.5 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertTrue(test.accepts(new DoubleNode(3.0)));
|
|
|
+ assertFalse(test.accepts(new IntNode(2)));
|
|
|
+ assertTrue(test.accepts(new IntNode(3)));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(2.5)));
|
|
|
+ }
|
|
|
}
|