From 21ddfc9b122312ee0e599730cd7672ecdbd6d084 Mon Sep 17 00:00:00 2001 From: Joel Leitch Date: Mon, 4 Apr 2011 19:19:46 +0000 Subject: [PATCH] Show default serialization and deserialization works with subclasses of an enum type. --- .../com/google/gson/functional/EnumTest.java | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/gson/src/test/java/com/google/gson/functional/EnumTest.java b/gson/src/test/java/com/google/gson/functional/EnumTest.java index 2e6c84fb..bdb2cc34 100644 --- a/gson/src/test/java/com/google/gson/functional/EnumTest.java +++ b/gson/src/test/java/com/google/gson/functional/EnumTest.java @@ -16,14 +16,6 @@ package com.google.gson.functional; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.Set; - -import junit.framework.TestCase; - import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonDeserializationContext; @@ -36,6 +28,14 @@ import com.google.gson.JsonSerializer; import com.google.gson.common.MoreAsserts; import com.google.gson.reflect.TypeToken; +import junit.framework.TestCase; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.Set; + /** * Functional tests for Java 5.0 enums. * @@ -140,6 +140,20 @@ public class EnumTest extends TestCase { gson.fromJson("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", new TypeToken>() {}.getType())); } + public void testEnumSubclassAsParameterizedType() { + Collection list = new ArrayList(); + list.add(Roshambo.ROCK); + list.add(Roshambo.PAPER); + + String json = gson.toJson(list); + assertEquals("[\"ROCK\",\"PAPER\"]", json); + + Type collectionType = new TypeToken>() {}.getType(); + Collection actualJsonList = gson.fromJson(json, collectionType); + MoreAsserts.assertContains(actualJsonList, Roshambo.ROCK); + MoreAsserts.assertContains(actualJsonList, Roshambo.PAPER); + } + public enum Roshambo { ROCK { @Override Roshambo defeats() {