|
|
@@ -1,7 +1,9 @@
|
|
|
package org.leumasjaffe.json.schema.tester;
|
|
|
|
|
|
-import static org.hamcrest.core.Is.is;
|
|
|
-import static org.junit.Assert.*;
|
|
|
+import static org.junit.Assert.assertThat;
|
|
|
+import static org.leumasjaffe.json.schema.matcher.AcceptedTypes.acceptsTypes;
|
|
|
+import static org.leumasjaffe.json.schema.matcher.Accepts.accepts;
|
|
|
+import static org.leumasjaffe.json.schema.matcher.Not.not;
|
|
|
|
|
|
import java.util.function.DoublePredicate;
|
|
|
|
|
|
@@ -16,22 +18,65 @@ public class NumberTesterTest {
|
|
|
|
|
|
@Test
|
|
|
public void testAcceptedTypeIsArgument() {
|
|
|
- assertThat(new NumberTester(nonZero).acceptedTypes(),
|
|
|
- is(new JsonNodeType[]{JsonNodeType.NUMBER}));
|
|
|
+ assertThat(NumberTester.minimum(0.0), acceptsTypes(JsonNodeType.NUMBER));
|
|
|
+ assertThat(NumberTester.exclusiveMinimum(0.0), acceptsTypes(JsonNodeType.NUMBER));
|
|
|
+ assertThat(NumberTester.maximum(0.0), acceptsTypes(JsonNodeType.NUMBER));
|
|
|
+ assertThat(NumberTester.exclusiveMaximum(0.0), acceptsTypes(JsonNodeType.NUMBER));
|
|
|
+ assertThat(NumberTester.multipleOf(1.0), acceptsTypes(JsonNodeType.NUMBER));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void testRejectsNonNumber() {
|
|
|
- assertFalse(new NumberTester(nonZero).accepts(NullNode.getInstance()));
|
|
|
+ assertThat(NumberTester.minimum(0.0), not(accepts(NullNode.getInstance())));
|
|
|
+ assertThat(NumberTester.exclusiveMinimum(0.0), not(accepts(NullNode.getInstance())));
|
|
|
+ assertThat(NumberTester.maximum(0.0), not(accepts(NullNode.getInstance())));
|
|
|
+ assertThat(NumberTester.exclusiveMaximum(0.0), not(accepts(NullNode.getInstance())));
|
|
|
+ assertThat(NumberTester.multipleOf(0.0), not(accepts(NullNode.getInstance())));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
- public void testRejectsFailingPred() {
|
|
|
- assertFalse(new NumberTester(nonZero).accepts(new DoubleNode(0.0)));
|
|
|
+ public void testMinimum() {
|
|
|
+ final NumberTester test = NumberTester.minimum(0.0);
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(-1E-12))));
|
|
|
+ assertThat(test, accepts(new DoubleNode(0.0)));
|
|
|
+ assertThat(test, accepts(new DoubleNode(1E-12)));
|
|
|
+ assertThat(test, accepts(new DoubleNode(1.0)));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
- public void testAcceptsPassingPred() {
|
|
|
- assertTrue(new NumberTester(nonZero).accepts(new DoubleNode(1.0)));
|
|
|
+ public void testExclusiveMinimum() {
|
|
|
+ final NumberTester test = NumberTester.exclusiveMinimum(0.0);
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(-1E-12))));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(0.0))));
|
|
|
+ assertThat(test, accepts(new DoubleNode(1E-12)));
|
|
|
+ assertThat(test, accepts(new DoubleNode(1.0)));
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMaximum() {
|
|
|
+ final NumberTester test = NumberTester.maximum(0.0);
|
|
|
+ assertThat(test, accepts(new DoubleNode(-1E-12)));
|
|
|
+ assertThat(test, accepts(new DoubleNode(0.0)));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(1E-12))));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(1.0))));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testExclusiveMaximum() {
|
|
|
+ final NumberTester test = NumberTester.exclusiveMaximum(0.0);
|
|
|
+ assertThat(test, accepts(new DoubleNode(-1E-12)));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(0.0))));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(1E-12))));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(1.0))));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testMultipleOf() {
|
|
|
+ final NumberTester test = NumberTester.multipleOf(1.0);
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(-1E-12))));
|
|
|
+ assertThat(test, accepts(new DoubleNode(0.0)));
|
|
|
+ assertThat(test, not(accepts(new DoubleNode(1E-12))));
|
|
|
+ assertThat(test, accepts(new DoubleNode(1.0)));
|
|
|
+ }
|
|
|
+
|
|
|
}
|