|
|
@@ -11,9 +11,13 @@ import org.leumasjaffe.json.schema.Tester;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.databind.node.ArrayNode;
|
|
|
+import com.fasterxml.jackson.databind.node.BooleanNode;
|
|
|
import com.fasterxml.jackson.databind.node.DoubleNode;
|
|
|
import com.fasterxml.jackson.databind.node.IntNode;
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
import com.fasterxml.jackson.databind.node.NullNode;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
|
|
|
public class SchemaV6FactoryTest {
|
|
|
SchemaV6Factory factory;
|
|
|
@@ -128,4 +132,65 @@ public class SchemaV6FactoryTest {
|
|
|
assertTrue(test.accepts(new IntNode(3)));
|
|
|
assertFalse(test.accepts(new DoubleNode(2.5)));
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMaxItemsSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"maxItems\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ node.add(false);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMinItemsSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"minItems\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ node.add(false);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testUniqueItemsSchema() {
|
|
|
+ Tester uniq = fromSingleElement("{ \"uniqueItems\": true }");
|
|
|
+ Tester any = fromSingleElement("{ \"uniqueItems\": false }");
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ node.add(false);
|
|
|
+ assertTrue(uniq.accepts(node));
|
|
|
+ assertTrue(any.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertFalse(uniq.accepts(node));
|
|
|
+ assertTrue(any.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMaxPropertiesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"maxProperties\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ final ObjectNode node = new ObjectNode(JsonNodeFactory.instance);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.set("A", BooleanNode.FALSE);
|
|
|
+ node.set("B", BooleanNode.FALSE);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMinPropertiesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"minProperties\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ final ObjectNode node = new ObjectNode(JsonNodeFactory.instance);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ node.set("A", BooleanNode.FALSE);
|
|
|
+ node.set("B", BooleanNode.FALSE);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ }
|
|
|
}
|