浏览代码

Continueing

Sam Jaffe 6 年之前
父节点
当前提交
63176070e7

+ 6 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/ContainsTester.java

@@ -4,6 +4,7 @@ import org.leumasjaffe.json.JsonHelper;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
@@ -13,6 +14,11 @@ import lombok.experimental.FieldDefaults;
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class ContainsTester implements Tester {
 	Tester schema;
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.ARRAY};
+	}
 
 	@Override
 	public boolean accepts(JsonNode node) {

+ 6 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/ItemsTester.java

@@ -7,6 +7,7 @@ import org.leumasjaffe.json.JsonHelper;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
@@ -20,6 +21,11 @@ public class ItemsTester implements Tester {
 	public ItemsTester(Tester...testers) {
 		this(Arrays.asList(testers));
 	}
+
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.ARRAY};
+	}
 	
 	@Override
 	public boolean accepts(JsonNode node) {

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

@@ -5,6 +5,7 @@ import java.util.function.DoublePredicate;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 import lombok.AccessLevel;
 import lombok.RequiredArgsConstructor;
@@ -14,6 +15,11 @@ import lombok.experimental.FieldDefaults;
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class NumberTester implements Tester {
 	DoublePredicate pred;
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.NUMBER};
+	}
 
 	@Override
 	public boolean accepts(JsonNode node) {

+ 6 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/PropertyNameTester.java

@@ -4,6 +4,7 @@ import org.leumasjaffe.json.JsonHelper;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 import com.fasterxml.jackson.databind.node.TextNode;
 
 import lombok.AccessLevel;
@@ -14,6 +15,11 @@ import lombok.experimental.FieldDefaults;
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class PropertyNameTester implements Tester {
 	Tester schema;
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.OBJECT};
+	}
 
 	@Override
 	public boolean accepts(JsonNode node) {

+ 6 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/PropertyTester.java

@@ -10,6 +10,7 @@ import java.util.stream.Collectors;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 import lombok.AccessLevel;
 import lombok.AllArgsConstructor;
@@ -30,6 +31,11 @@ public class PropertyTester implements Tester {
 	public PropertyTester(Pair...pairs) {
 		this(Arrays.asList(pairs));
 	}
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.OBJECT};
+	}
 
 	@Override
 	public boolean accepts(final JsonNode node) {

+ 5 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/SizeTester.java

@@ -16,6 +16,11 @@ import lombok.experimental.FieldDefaults;
 public class SizeTester implements Tester {
 	JsonNodeType type;
 	IntPredicate pred;
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{type};
+	}
 
 	@Override
 	public boolean accepts(JsonNode node) {

+ 6 - 0
src/main/lombok/org/leumasjaffe/json/schema/tester/UniqueItemTester.java

@@ -6,9 +6,15 @@ import java.util.Set;
 import org.leumasjaffe.json.schema.Tester;
 
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
 
 public class UniqueItemTester implements Tester {
 	public static final Tester INSTANCE = new UniqueItemTester();
+	
+	@Override
+	public JsonNodeType[] acceptedTypes() {
+		return new JsonNodeType[]{JsonNodeType.ARRAY};
+	}
 
 	@Override
 	public boolean accepts(final JsonNode node) {

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

@@ -1,15 +1,23 @@
 package org.leumasjaffe.json.schema.tester;
 
 import static org.junit.Assert.*;
+import static org.hamcrest.core.Is.*;
 
 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.JsonNodeType;
 import com.fasterxml.jackson.databind.node.NullNode;
 
 public class ContainsTesterTest {
+	
+	@Test
+	public void testAcceptedTypes() {
+		assertThat(new ContainsTester(FixedTester.ACCEPT).acceptedTypes(),
+				is(new JsonNodeType[]{JsonNodeType.ARRAY}));
+	}
 
 	@Test
 	public void testRejectsNonArray() {

+ 8 - 0
src/test/java/org/leumasjaffe/json/schema/tester/ItemsTesterTest.java

@@ -1,5 +1,6 @@
 package org.leumasjaffe.json.schema.tester;
 
+import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.*;
 
 import org.junit.Test;
@@ -7,10 +8,17 @@ 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.JsonNodeType;
 import com.fasterxml.jackson.databind.node.NullNode;
 
 public class ItemsTesterTest {
 
+	@Test
+	public void testAcceptedTypes() {
+		assertThat(new ItemsTester(FixedTester.ACCEPT).acceptedTypes(),
+				is(new JsonNodeType[]{JsonNodeType.ARRAY}));
+	}
+	
 	@Test
 	public void testRejectsNonArray() {
 		assertFalse(new ItemsTester(FixedTester.ACCEPT).accepts(NullNode.getInstance()));