diff --git a/json-path-assert/src/test/java/com/jayway/jsonassert/GsonJsonAssert.java b/json-path-assert/src/test/java/com/jayway/jsonassert/GsonJsonAssert.java new file mode 100755 index 00000000..a8437dc4 --- /dev/null +++ b/json-path-assert/src/test/java/com/jayway/jsonassert/GsonJsonAssert.java @@ -0,0 +1,13 @@ +package com.jayway.jsonassert; + +import org.junit.Before; + +import com.jayway.jsonpath.json.JsonFactory; + +public class GsonJsonAssert extends JsonAssertTest { + + public void init_factory(){ + JsonFactory.setInstance(com.jayway.jsonpath.json.gson.GsonJsonFactory.getInstance()); + factory = JsonFactory.getInstance(); + } +} diff --git a/json-path-assert/src/test/java/com/jayway/jsonassert/MiniJsonAssert.java b/json-path-assert/src/test/java/com/jayway/jsonassert/MiniJsonAssert.java new file mode 100755 index 00000000..e34d846e --- /dev/null +++ b/json-path-assert/src/test/java/com/jayway/jsonassert/MiniJsonAssert.java @@ -0,0 +1,13 @@ +package com.jayway.jsonassert; + +import org.junit.Before; + +import com.jayway.jsonpath.json.JsonFactory; + +public class MiniJsonAssert extends JsonAssertTest { + @Before + public void init_factory(){ + factory.setInstance(com.jayway.jsonpath.json.minidev.MiniJsonFactory.getInstance()); + factory = JsonFactory.getInstance(); + } +} diff --git a/json-path/src/main/java/com/jayway/jsonpath/filter/JsonType.java b/json-path/src/main/java/com/jayway/jsonpath/filter/JsonType.java new file mode 100755 index 00000000..f2415209 --- /dev/null +++ b/json-path/src/main/java/com/jayway/jsonpath/filter/JsonType.java @@ -0,0 +1,31 @@ +package com.jayway.jsonpath.filter; + +public enum JsonType{ + + JsonNull("null"), + JsonArray("collection"), + JsonObject("object"), + JsonPrimitive("value"); + + private String text; + + JsonType(String text) { + this.text = text; + } + + public String getText() { + return this.text; + } + + public static JsonType fromString(String text) { + if (text != null) { + for (JsonType b : JsonType.values()) { + if (text.equalsIgnoreCase(b.text)) { + return b; + } + } + } + return null; + + } +} \ No newline at end of file diff --git a/json-path/src/main/java/com/jayway/jsonpath/filter/TypeFilter.java b/json-path/src/main/java/com/jayway/jsonpath/filter/TypeFilter.java new file mode 100755 index 00000000..f1bb3276 --- /dev/null +++ b/json-path/src/main/java/com/jayway/jsonpath/filter/TypeFilter.java @@ -0,0 +1,60 @@ +package com.jayway.jsonpath.filter; + + +import com.jayway.jsonpath.json.JsonArray; +import com.jayway.jsonpath.json.JsonElement; +import com.jayway.jsonpath.json.JsonException; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import net.minidev.json.JSONValue; + +/** + * Created by IntelliJ IDEA. + * User: kallestenflo + * Date: 2/15/11 + * Time: 8:23 PM + */ +public class TypeFilter extends JsonPathFilterBase { + + //@Autowired + public com.jayway.jsonpath.json.JsonFactory factory = com.jayway.jsonpath.json.minidev.MiniJsonFactory.getInstance(); + + public static final Pattern PATTERN = Pattern.compile("\\((collection|object|value)\\)"); + + private final String pathFragment; + + + public TypeFilter(String pathFragment) { + this.pathFragment = pathFragment; + } + @Override + public String getPathSegment() throws JsonException { + return pathFragment; + } + @Override + public List apply(JsonElement element) throws JsonException { + List result = new ArrayList(); + + String prop = getFilterProperty(); + JsonType v = JsonType.fromString(pathFragment.substring(1,pathFragment.length()-1)); + + if(element.isJsonType(v)) + result.add(element); + + + return result; + } + + + private String getFilterProperty() { + Matcher matcher = PATTERN.matcher(pathFragment); + if (matcher.matches()) { + return matcher.group(1); + } + throw new IllegalArgumentException("invalid list filter property"); + } +} diff --git a/json-path/src/test/java/com/jayway/jsonpath/GsonJsonAssert.java b/json-path/src/test/java/com/jayway/jsonpath/GsonJsonAssert.java new file mode 100755 index 00000000..ccd310b4 --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/GsonJsonAssert.java @@ -0,0 +1,13 @@ +package com.jayway.jsonpath; + +import org.junit.Before; + +import com.jayway.jsonpath.json.JsonFactory; + +public class GsonJsonAssert extends JsonPathTest { + + public void init_factory(){ + JsonFactory.setInstance(new com.jayway.jsonpath.json.gson.GsonJsonFactory()); + factory = JsonFactory.getInstance(); + } +} diff --git a/json-path/src/test/java/com/jayway/jsonpath/MiniJsonAssert.java b/json-path/src/test/java/com/jayway/jsonpath/MiniJsonAssert.java new file mode 100755 index 00000000..562185da --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/MiniJsonAssert.java @@ -0,0 +1,13 @@ +package com.jayway.jsonpath; + +import org.junit.Before; + +import com.jayway.jsonpath.json.JsonFactory; + +public class MiniJsonAssert extends JsonPathTest { + + public void init_factory(){ + JsonFactory.setInstance(new com.jayway.jsonpath.json.minidev.MiniJsonFactory()); + factory = JsonFactory.getInstance(); + } +}