diff --git a/json-path/src/test/java/com/jayway/jsonpath/GsonJsonProviderTest.java b/json-path/src/test/java/com/jayway/jsonpath/GsonJsonProviderTest.java index 99e4af0a..2202fbae 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/GsonJsonProviderTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/GsonJsonProviderTest.java @@ -1,8 +1,11 @@ package com.jayway.jsonpath; +import com.fasterxml.jackson.databind.JsonNode; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.jayway.jsonpath.JacksonJsonNodeJsonProviderTest.FooBarBaz; +import com.jayway.jsonpath.JacksonJsonNodeJsonProviderTest.Gen; import com.jayway.jsonpath.spi.json.GsonJsonProvider; import com.jayway.jsonpath.spi.mapper.GsonMappingProvider; import com.jayway.jsonpath.spi.mapper.MappingException; @@ -205,6 +208,25 @@ public class GsonJsonProviderTest extends BaseTest { assertThat(result).isNull(); } + @Test + public void object_can_be_parsed() { + Gen gen = new Gen(); + gen.eric = "yepp"; + + FooBarBaz fooBarBaz = new FooBarBaz<>(); + fooBarBaz.foo = "foo0"; + fooBarBaz.bar = 0L; + fooBarBaz.baz = true; + fooBarBaz.gen = gen; + + DocumentContext context = using(GSON_CONFIGURATION).parse(fooBarBaz); + assertThat((Object) context.json()).isInstanceOf(JsonElement.class); + + assertThat(context.read("$.foo", String.class)).isEqualTo("foo0"); + assertThat(context.read("$.bar", Long.class)).isZero(); + assertThat(context.read("$.baz", Boolean.class)).isTrue(); + assertThat(context.read("$.gen.eric", String.class)).isEqualTo("yepp"); + } public static class FooBarBaz { public T gen; diff --git a/json-path/src/test/java/com/jayway/jsonpath/JacksonJsonNodeJsonProviderTest.java b/json-path/src/test/java/com/jayway/jsonpath/JacksonJsonNodeJsonProviderTest.java index ec9b1810..a1785b6e 100644 --- a/json-path/src/test/java/com/jayway/jsonpath/JacksonJsonNodeJsonProviderTest.java +++ b/json-path/src/test/java/com/jayway/jsonpath/JacksonJsonNodeJsonProviderTest.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.jayway.jsonpath.internal.JsonContext; import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider; import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; import com.jayway.jsonpath.spi.mapper.MappingException; @@ -247,6 +248,26 @@ public class JacksonJsonNodeJsonProviderTest extends BaseTest { assertThat(node.get(0).get("name").asText()).isEqualTo("a"); } + @Test + public void object_can_be_parsed() { + Gen gen = new Gen(); + gen.eric = "yepp"; + + FooBarBaz fooBarBaz = new FooBarBaz<>(); + fooBarBaz.foo = "foo0"; + fooBarBaz.bar = 0L; + fooBarBaz.baz = true; + fooBarBaz.gen = gen; + + DocumentContext context = using(JACKSON_JSON_NODE_CONFIGURATION).parse(fooBarBaz); + assertThat((Object) context.json()).isInstanceOf(JsonNode.class); + + assertThat(context.read("$.foo", String.class)).isEqualTo("foo0"); + assertThat(context.read("$.bar", Long.class)).isZero(); + assertThat(context.read("$.baz", Boolean.class)).isTrue(); + assertThat(context.read("$.gen.eric", String.class)).isEqualTo("yepp"); + } + public static class FooBarBaz { public T gen; public String foo;