|
|
@@ -134,6 +134,65 @@ public class SchemaV6FactoryTest {
|
|
|
assertFalse(test.accepts(new DoubleNode(2.5)));
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testMaxLengthSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"maxLength\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertTrue(test.accepts(new TextNode("")));
|
|
|
+ assertFalse(test.accepts(new TextNode(" ")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMinLengthSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"minLength\": 2 }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new DoubleNode(1.5)));
|
|
|
+ assertFalse(test.accepts(new TextNode("")));
|
|
|
+ assertTrue(test.accepts(new TextNode(" ")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testPatternSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"pattern\": \"^\\\\s.*\" }");
|
|
|
+ assertFalse(test.accepts(NullNode.getInstance()));
|
|
|
+ assertFalse(test.accepts(new TextNode("S ")));
|
|
|
+ assertTrue(test.accepts(new TextNode(" S")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAdditionalItemsSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"additionalItems\": false }");
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testItemsSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"items\": [ true, false ] }");
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testItemsSchemaSingle() {
|
|
|
+ Tester test = fromSingleElement("{ \"items\": true }");
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ node.add(false);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testMaxItemsSchema() {
|
|
|
Tester test = fromSingleElement("{ \"maxItems\": 2 }");
|
|
|
@@ -171,6 +230,17 @@ public class SchemaV6FactoryTest {
|
|
|
assertTrue(any.accepts(node));
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testContainsSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"contains\": { } }");
|
|
|
+ final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
|
|
|
+
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+
|
|
|
+ node.add(new ObjectNode(JsonNodeFactory.instance));
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testMaxPropertiesSchema() {
|
|
|
Tester test = fromSingleElement("{ \"maxProperties\": 2 }");
|
|
|
@@ -195,6 +265,50 @@ public class SchemaV6FactoryTest {
|
|
|
assertTrue(test.accepts(node));
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testRequiredSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"required\": [ \"A\", \"B\" ] }");
|
|
|
+ final ObjectNode node = new ObjectNode(JsonNodeFactory.instance);
|
|
|
+ node.set("A", BooleanNode.FALSE);
|
|
|
+ node.set("C", BooleanNode.FALSE);
|
|
|
+ assertFalse(test.accepts(node));
|
|
|
+ node.set("B", BooleanNode.FALSE);
|
|
|
+ assertTrue(test.accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAdditionalPropertiesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"additionalProperties\": false }");
|
|
|
+ assertTrue(test.accepts(readTree("{ }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"A\": {} }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"B\": {} }")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testPropertiesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"properties\": { \"A\": true, \"B\": false } }");
|
|
|
+ assertTrue(test.accepts(readTree("{ }")));
|
|
|
+ assertTrue(test.accepts(readTree("{ \"A\": {} }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"B\": {} }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"A\": {}, \"B\": {} }")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testPatternPropertiesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"patternProperties\": { \"A\": true, \"A.\": false } }");
|
|
|
+ assertTrue(test.accepts(readTree("{ }")));
|
|
|
+ assertTrue(test.accepts(readTree("{ \"A\": {} }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"A.\": {} }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"A_\": {} }")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testPropertyNamesSchema() {
|
|
|
+ Tester test = fromSingleElement("{ \"propertyNames\": false }");
|
|
|
+ assertTrue(test.accepts(readTree("{ }")));
|
|
|
+ assertFalse(test.accepts(readTree("{ \"A\": {} }")));
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testConstSchema() {
|
|
|
Tester test = fromSingleElement("{ \"const\": { \"nice\": \"meme\" } }");
|