|
|
@@ -0,0 +1,38 @@
|
|
|
+package org.leumasjaffe.json.schema;
|
|
|
+
|
|
|
+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.NumberTester;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.databind.node.DoubleNode;
|
|
|
+import com.fasterxml.jackson.databind.node.NullNode;
|
|
|
+
|
|
|
+public class SchemaTest {
|
|
|
+ private Schema getNumberSchema() {
|
|
|
+ Map<String, Tester> tests = new HashMap<>();
|
|
|
+ tests.put("minimum", new NumberTester(d -> d >= 0.0));
|
|
|
+ tests.put("exclusiveMaximum", new NumberTester(d -> d < 1.0));
|
|
|
+ return new Schema(tests);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAcceptsAnyIfNoMatchers() {
|
|
|
+ assertThat(new Schema().acceptedTypes(), is(Tester.ANY));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testRejectsWrongType() {
|
|
|
+ assertFalse(getNumberSchema().accepts(NullNode.getInstance()));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testHandlesMultipleTestsForNumber() {
|
|
|
+ assertTrue(getNumberSchema().accepts(new DoubleNode(0.5)));
|
|
|
+ assertFalse(getNumberSchema().accepts(new DoubleNode(1.0)));
|
|
|
+ }
|
|
|
+}
|