|
|
@@ -0,0 +1,65 @@
|
|
|
+package org.leumasjaffe.json.schema.tester;
|
|
|
+
|
|
|
+import static org.junit.Assert.assertThat;
|
|
|
+import static org.junit.Assert.fail;
|
|
|
+import static org.leumasjaffe.json.schema.matcher.Accepts.accepts;
|
|
|
+import static org.leumasjaffe.json.schema.matcher.Not.not;
|
|
|
+
|
|
|
+import org.junit.Before;
|
|
|
+import org.junit.Test;
|
|
|
+import org.leumasjaffe.json.schema.Tester;
|
|
|
+import org.leumasjaffe.json.schema.ValidationException;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.databind.node.DoubleNode;
|
|
|
+import com.fasterxml.jackson.databind.node.TextNode;
|
|
|
+
|
|
|
+public class EqualsTesterTest {
|
|
|
+ Tester constTest, enumTest, mtEnumTest;
|
|
|
+
|
|
|
+ @Before
|
|
|
+ public void setUp() {
|
|
|
+ constTest = new EqualsTester(new DoubleNode(1.0));
|
|
|
+ enumTest = new EqualsTester(new DoubleNode(1.0), new DoubleNode(1.5));
|
|
|
+ mtEnumTest = new EqualsTester(new DoubleNode(1.0), new TextNode("HELLO"));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAcceptsMatchingSingle() {
|
|
|
+ assertThat(constTest, accepts(new DoubleNode(1.0)));
|
|
|
+ assertThat(constTest, not(accepts(new DoubleNode(1.5))));
|
|
|
+ assertThat(constTest, not(accepts(new DoubleNode(1.0000000001))));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testAcceptsMatchingAny() {
|
|
|
+ assertThat(enumTest, accepts(new DoubleNode(1.0)));
|
|
|
+ assertThat(enumTest, accepts(new DoubleNode(1.5)));
|
|
|
+ assertThat(enumTest, not(accepts(new DoubleNode(1.0000000001))));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testCanAcceptMultipleTypes() {
|
|
|
+ assertThat(mtEnumTest, accepts(new DoubleNode(1.0)));
|
|
|
+ assertThat(mtEnumTest, accepts(new TextNode("HELLO")));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateDoesNothingOnSuccess() {
|
|
|
+ try {
|
|
|
+ constTest.validate(new DoubleNode(1.0));
|
|
|
+ } catch (ValidationException ve) {
|
|
|
+ fail("An exception occured: " + ve.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test(expected=ValidationException.class)
|
|
|
+ public void testThrowsOnValidationFailureConst() {
|
|
|
+ constTest.validate(new DoubleNode(1.0000000001));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test(expected=ValidationException.class)
|
|
|
+ public void testThrowsOnValidationFailureEnum() {
|
|
|
+ enumTest.validate(new DoubleNode(1.0000000001));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|