From 70797998909a6561a32e16e29c54321fd05d176b Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Fri, 8 Jan 2010 19:14:42 +0000 Subject: [PATCH] Fixed issue 167 by adding support for TreeSet deserialization. Added tests for serialization/deserialization of treesets. --- .../com/google/gson/DefaultTypeAdapters.java | 1 + .../functional/DefaultTypeAdaptersTest.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java b/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java index 4a4011fa..b34d8ebf 100644 --- a/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java +++ b/gson/src/main/java/com/google/gson/DefaultTypeAdapters.java @@ -195,6 +195,7 @@ final class DefaultTypeAdapters { map.register(Set.class, HASH_SET_CREATOR); map.register(SortedSet.class, TREE_SET_CREATOR); + map.register(TreeSet.class, TREE_SET_CREATOR); map.register(Properties.class, PROPERTIES_CREATOR); map.makeUnmodifiable(); return map; diff --git a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java index caf4b4fd..945c4a3d 100644 --- a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java @@ -18,9 +18,11 @@ package com.google.gson.functional; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonParseException; +import com.google.gson.reflect.TypeToken; import junit.framework.TestCase; +import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.BigInteger; import java.net.URI; @@ -37,6 +39,7 @@ import java.util.Locale; import java.util.Properties; import java.util.Set; import java.util.TimeZone; +import java.util.TreeSet; import java.util.UUID; /** @@ -390,4 +393,18 @@ public class DefaultTypeAdaptersTest extends TestCase { Properties props = gson.fromJson(json, Properties.class); assertEquals("bar", props.getProperty("foo")); } + + public void testTreeSetSerialization() { + TreeSet treeSet = new TreeSet(); + treeSet.add("Value1"); + String json = gson.toJson(treeSet); + assertEquals("[\"Value1\"]", json); + } + + public void testTreeSetDeserialization() { + String json = "['Value1']"; + Type type = new TypeToken>() {}.getType(); + TreeSet treeSet = gson.fromJson(json, type); + assertTrue(treeSet.contains("Value1")); + } }