Browse Source

Add test for ContainsTester

Sam Jaffe 6 years ago
parent
commit
cdc8176111

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

@@ -2,12 +2,14 @@ package org.leumasjaffe.json.schema;
 
 import org.junit.runner.RunWith;
 import org.junit.runners.Suite;
+import org.leumasjaffe.json.schema.tester.ContainsTesterTest;
 import org.leumasjaffe.json.schema.tester.NotTesterTest;
 import org.leumasjaffe.json.schema.tester.SizeTesterTest;
 import org.leumasjaffe.json.schema.tester.TypeTesterTest;
 
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
+	ContainsTesterTest.class,
 	NotTesterTest.class,
 	SizeTesterTest.class, 
 	TypeTesterTest.class

+ 40 - 0
src/test/java/org/leumasjaffe/json/schema/tester/ContainsTesterTest.java

@@ -0,0 +1,40 @@
+package org.leumasjaffe.json.schema.tester;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.NullNode;
+
+public class ContainsTesterTest {
+
+	@Test
+	public void testRejectsNonArray() {
+		assertFalse(new ContainsTester(j -> true).accepts(NullNode.getInstance()));
+	}
+
+	@Test
+	public void testRejectsEmptyArray() {
+		final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
+		assertFalse(new ContainsTester(j -> true).accepts(node));
+	}
+	
+	@Test
+	public void testRejectsIfAllFail() {
+		final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
+		node.add(false);
+		node.add(true);
+		assertFalse(new ContainsTester(j -> false).accepts(node));
+	}
+	
+	@Test
+	public void testAcceptsIfAnyPass() {
+		final ArrayNode node = new ArrayNode(JsonNodeFactory.instance);
+		node.add(false);
+		node.add(true);
+		assertTrue(new ContainsTester(JsonNode::asBoolean).accepts(node));
+	}
+}