diff options
author | joel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae> | 2012-12-20 07:57:17 +0000 |
---|---|---|
committer | joel.leitch@gmail.com <joel.leitch@gmail.com@2534bb62-2c4b-0410-85e8-b5006b95c4ae> | 2012-12-20 07:57:17 +0000 |
commit | ebba6e2c8f7bc01423efb0f3f429eee80453e83f (patch) | |
tree | 6677d298007ca2cf51a9c26911dfa599c77319ec | |
parent | ae7d132db375120494a18e6fb5046ecb69a771a7 (diff) | |
download | android_external_gson-ebba6e2c8f7bc01423efb0f3f429eee80453e83f.tar.gz android_external_gson-ebba6e2c8f7bc01423efb0f3f429eee80453e83f.tar.bz2 android_external_gson-ebba6e2c8f7bc01423efb0f3f429eee80453e83f.zip |
Make JsonElement TypeAdapterFactory a type hierarchy factory.
git-svn-id: http://google-gson.googlecode.com/svn/trunk/gson@1218 2534bb62-2c4b-0410-85e8-b5006b95c4ae
-rw-r--r-- | src/main/java/com/google/gson/internal/bind/TypeAdapters.java | 2 | ||||
-rw-r--r-- | src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java | 24 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/main/java/com/google/gson/internal/bind/TypeAdapters.java b/src/main/java/com/google/gson/internal/bind/TypeAdapters.java index eabfe831..d32458cc 100644 --- a/src/main/java/com/google/gson/internal/bind/TypeAdapters.java +++ b/src/main/java/com/google/gson/internal/bind/TypeAdapters.java @@ -703,7 +703,7 @@ public final class TypeAdapters { }; public static final TypeAdapterFactory JSON_ELEMENT_FACTORY - = newFactory(JsonElement.class, JSON_ELEMENT); + = newTypeHierarchyFactory(JsonElement.class, JSON_ELEMENT); private static final class EnumTypeAdapter<T extends Enum<T>> extends TypeAdapter<T> { private final Map<String, T> nameToConstant = new HashMap<String, T>(); diff --git a/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java b/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java index 9b27ef15..d9bb9492 100644 --- a/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java +++ b/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java @@ -554,17 +554,23 @@ public class DefaultTypeAdaptersTest extends TestCase { public void testJsonPrimitiveDeserialization() { assertEquals(new JsonPrimitive(5), gson.fromJson("5", JsonElement.class)); + assertEquals(new JsonPrimitive(5), gson.fromJson("5", JsonPrimitive.class)); assertEquals(new JsonPrimitive(true), gson.fromJson("true", JsonElement.class)); + assertEquals(new JsonPrimitive(true), gson.fromJson("true", JsonPrimitive.class)); assertEquals(new JsonPrimitive("foo"), gson.fromJson("\"foo\"", JsonElement.class)); + assertEquals(new JsonPrimitive("foo"), gson.fromJson("\"foo\"", JsonPrimitive.class)); assertEquals(new JsonPrimitive('a'), gson.fromJson("\"a\"", JsonElement.class)); + assertEquals(new JsonPrimitive('a'), gson.fromJson("\"a\"", JsonPrimitive.class)); } public void testJsonNullSerialization() { assertEquals("null", gson.toJson(JsonNull.INSTANCE, JsonElement.class)); + assertEquals("null", gson.toJson(JsonNull.INSTANCE, JsonNull.class)); } public void testNullJsonElementSerialization() { assertEquals("null", gson.toJson(null, JsonElement.class)); + assertEquals("null", gson.toJson(null, JsonNull.class)); } public void testJsonArraySerialization() { @@ -575,12 +581,15 @@ public class DefaultTypeAdaptersTest extends TestCase { assertEquals("[1,2,3]", gson.toJson(array, JsonElement.class)); } - public void testJsonArrayDeerialization() { + public void testJsonArrayDeserialization() { JsonArray array = new JsonArray(); array.add(new JsonPrimitive(1)); array.add(new JsonPrimitive(2)); array.add(new JsonPrimitive(3)); - assertEquals(array, gson.fromJson("[1,2,3]", JsonElement.class)); + + String json = "[1,2,3]"; + assertEquals(array, gson.fromJson(json, JsonElement.class)); + assertEquals(array, gson.fromJson(json, JsonArray.class)); } public void testJsonObjectSerialization() { @@ -595,16 +604,17 @@ public class DefaultTypeAdaptersTest extends TestCase { object.add("foo", new JsonPrimitive(1)); object.add("bar", new JsonPrimitive(2)); - JsonElement actual = gson.fromJson("{\"foo\":1,\"bar\":2}", JsonElement.class); + String json = "{\"foo\":1,\"bar\":2}"; + JsonElement actual = gson.fromJson(json, JsonElement.class); assertEquals(object, actual); - } - public void testJsonNullDeerialization() { - assertEquals(JsonNull.INSTANCE, gson.fromJson("null", JsonElement.class)); + JsonObject actualObj = gson.fromJson(json, JsonObject.class); + assertEquals(object, actualObj); } - public void testNullJsonElementDeserialization() { + public void testJsonNullDeserialization() { assertEquals(JsonNull.INSTANCE, gson.fromJson("null", JsonElement.class)); + assertEquals(JsonNull.INSTANCE, gson.fromJson("null", JsonNull.class)); } private static class ClassWithBigDecimal { |