|
|
@@ -0,0 +1,47 @@
|
|
|
+package org.leumasjaffe.json.schema.tester;
|
|
|
+
|
|
|
+import static org.hamcrest.core.Is.is;
|
|
|
+import static org.junit.Assert.*;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import org.junit.Test;
|
|
|
+import org.leumasjaffe.json.schema.Tester;
|
|
|
+import org.leumasjaffe.json.schema.tester.PropertyTester.Pair;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.databind.node.BooleanNode;
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeType;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+
|
|
|
+public class DependencyTesterTest {
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAcceptsObjects() {
|
|
|
+ assertThat(new DependencyTester(new HashMap<>()).acceptedTypes(),
|
|
|
+ is(new JsonNodeType[]{JsonNodeType.OBJECT}));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testDependencyAppliesToSourceJson() {
|
|
|
+ Map<String, Tester> expect = new HashMap<>();
|
|
|
+ expect.put("A", TypeTester.fromType("boolean"));
|
|
|
+
|
|
|
+ final ObjectNode node = new ObjectNode(JsonNodeFactory.instance);
|
|
|
+ node.set("A", BooleanNode.TRUE);
|
|
|
+
|
|
|
+ assertFalse(new DependencyTester(expect).accepts(node));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testDependencyCanInjectSchema() {
|
|
|
+ Map<String, Tester> expect = new HashMap<>();
|
|
|
+ expect.put("A", new PropertyTester(new Pair("A"::equals, FixedTester.ACCEPT)));
|
|
|
+
|
|
|
+ final ObjectNode node = new ObjectNode(JsonNodeFactory.instance);
|
|
|
+ node.set("A", BooleanNode.TRUE);
|
|
|
+
|
|
|
+ assertTrue(new DependencyTester(expect).accepts(node));
|
|
|
+ }
|
|
|
+}
|