From 1c5785be57240dcf7d885095ec2ba93bc80edc6e Mon Sep 17 00:00:00 2001 From: Inderjeet Singh Date: Thu, 12 Mar 2009 20:54:00 +0000 Subject: [PATCH] Tests to reproduce issue 95. The tests currently pass so the bug will be marked as invalid. --- .../com/google/gson/functional/MapTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gson/src/test/java/com/google/gson/functional/MapTest.java b/gson/src/test/java/com/google/gson/functional/MapTest.java index 8d41f8ce..895602b8 100755 --- a/gson/src/test/java/com/google/gson/functional/MapTest.java +++ b/gson/src/test/java/com/google/gson/functional/MapTest.java @@ -25,6 +25,7 @@ import junit.framework.TestCase; import java.lang.reflect.Type; import java.util.Collection; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; @@ -249,4 +250,31 @@ public class MapTest extends TestCase { int foo = 10; } + + /** + * From bug report http://code.google.com/p/google-gson/issues/detail?id=95 + */ + public void testMapOfMapSerialization() { + Map> map = new HashMap>(); + Map nestedMap = new HashMap(); + nestedMap.put("1", "1"); + nestedMap.put("2", "2"); + map.put("nestedMap", nestedMap); + String json = gson.toJson(map); + assertTrue(json.contains("nestedMap")); + assertTrue(json.contains("\"1\":\"1\"")); + assertTrue(json.contains("\"2\":\"2\"")); + } + + /** + * From bug report http://code.google.com/p/google-gson/issues/detail?id=95 + */ + public void testMapOfMapDeserialization() { + String json = "{nestedMap:{'2':'2','1':'1'}}"; + Type type = new TypeToken>>(){}.getType(); + Map> map = gson.fromJson(json, type); + Map nested = map.get("nestedMap"); + assertEquals("1", nested.get("1")); + assertEquals("2", nested.get("2")); + } }