瀏覽代碼

Add tests for boolean type in a schema

Sam Jaffe 6 年之前
父節點
當前提交
cf5273c8d2

+ 1 - 3
src/main/lombok/org/leumasjaffe/json/schema/Schema.java

@@ -58,10 +58,8 @@ public class Schema implements Tester {
 		switch (node.getNodeType()) {
 		case NUMBER: return acceptsNumber(node);
 		case STRING: return acceptsString(node);
-		default: break;
+		default: return acceptsUniversal(node);
 		}
-		// TODO
-		return false;
 	}
 
 	private boolean acceptsNumber(JsonNode node) {

+ 13 - 0
src/test/java/org/leumasjaffe/json/schema/SchemaTest.java

@@ -17,6 +17,7 @@ import org.leumasjaffe.json.schema.tester.SizeTester;
 import org.leumasjaffe.json.schema.tester.StubTester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.BooleanNode;
 import com.fasterxml.jackson.databind.node.DoubleNode;
 import com.fasterxml.jackson.databind.node.NullNode;
 import com.fasterxml.jackson.databind.node.TextNode;
@@ -63,6 +64,18 @@ public class SchemaTest {
 		assertFalse(new Schema(tests).accepts(NullNode.getInstance()));
 	}
 
+	@Test
+	public void testHandlesUniversalChecksForBoolean() {
+		assertTrue(getConstSchema(BooleanNode.TRUE).accepts(BooleanNode.TRUE));
+		assertFalse(getConstSchema(BooleanNode.TRUE).accepts(NullNode.getInstance()));
+		assertTrue(getEnumSchema(BooleanNode.TRUE, BooleanNode.FALSE)
+				.accepts(BooleanNode.TRUE));
+		assertTrue(getEnumSchema(BooleanNode.TRUE, BooleanNode.FALSE)
+				.accepts(BooleanNode.FALSE));
+		assertFalse(getEnumSchema(BooleanNode.TRUE, BooleanNode.FALSE)
+				.accepts(NullNode.getInstance()));
+	}
+
 	@Test
 	public void testHandlesMultipleTestsForNumber() {
 		assertFalse(getNumberSchema().accepts(new DoubleNode(-0.25)));