Bläddra i källkod

Adding EqualsTesterTest. Make errorMessage not public

Sam Jaffe 6 år sedan
förälder
incheckning
826968aed3

+ 1 - 1
src/main/lombok/org/leumasjaffe/json/schema/tester/EqualsTester.java

@@ -31,7 +31,7 @@ public class EqualsTester extends SimpleValidationTester {
 	}
 	
 	@Override
-	public String errorMessage(final JsonNode node) {
+	String errorMessage(final JsonNode node) {
 		return node + (isExplicitlySingleValue ? ERROR_CONST : ERROR_ENUM);
 	}
 

+ 1 - 1
src/main/lombok/org/leumasjaffe/json/schema/tester/FormatTester.java

@@ -136,7 +136,7 @@ public abstract class FormatTester extends SimpleValidationTester {
 	String format;
 	
 	@Override
-	public String errorMessage(final JsonNode node) {
+	String errorMessage(final JsonNode node) {
 		return node + " does not match format: '" + format + "'";
 	}
 	

+ 1 - 1
src/main/lombok/org/leumasjaffe/json/schema/tester/NumberTester.java

@@ -49,7 +49,7 @@ public class NumberTester extends SimpleValidationTester {
 	double value;
 	
 	@Override
-	public String errorMessage(final JsonNode node) {
+	String errorMessage(final JsonNode node) {
 		return node + " is not " + rule.toString() + value;
 	}
 	

+ 1 - 1
src/main/lombok/org/leumasjaffe/json/schema/tester/TypeTester.java

@@ -30,7 +30,7 @@ public class TypeTester extends SimpleValidationTester {
 	Predicate<JsonNode> test;
 	
 	@Override
-	public String errorMessage(final JsonNode node) {
+	String errorMessage(final JsonNode node) {
 		return "type mismatch. expected: " + name + " got: " + node.getNodeType();
 	}
 	

+ 2 - 0
src/test/java/org/leumasjaffe/json/schema/JsonTesterSuite.java

@@ -7,6 +7,7 @@ import org.leumasjaffe.json.schema.tester.AllOfTesterTest;
 import org.leumasjaffe.json.schema.tester.AnyOfTesterTest;
 import org.leumasjaffe.json.schema.tester.ContainsTesterTest;
 import org.leumasjaffe.json.schema.tester.DependencyTesterTest;
+import org.leumasjaffe.json.schema.tester.EqualsTesterTest;
 import org.leumasjaffe.json.schema.tester.FormatTesterTest;
 import org.leumasjaffe.json.schema.tester.ItemsTesterTest;
 import org.leumasjaffe.json.schema.tester.NotTesterTest;
@@ -25,6 +26,7 @@ import org.leumasjaffe.json.schema.tester.UniqueItemTesterTest;
 	AnyOfTesterTest.class,
 	ContainsTesterTest.class,
 	DependencyTesterTest.class,
+	EqualsTesterTest.class,
 	FormatTesterTest.class,
 	ItemsTesterTest.class,
 	NotTesterTest.class,

+ 65 - 0
src/test/java/org/leumasjaffe/json/schema/tester/EqualsTesterTest.java

@@ -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));
+	}
+	
+}