Test that we can serialize classes whose fields are concrete collections.

This commit is contained in:
Jesse Wilson 2011-03-21 21:49:38 +00:00
parent 279c0e87ed
commit e96b241556

View File

@ -21,9 +21,6 @@ import com.google.gson.JsonParseException;
import com.google.gson.common.MoreAsserts; import com.google.gson.common.MoreAsserts;
import com.google.gson.common.TestTypes.BagOfPrimitives; import com.google.gson.common.TestTypes.BagOfPrimitives;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import junit.framework.TestCase;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -35,6 +32,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Queue; import java.util.Queue;
import java.util.Set; import java.util.Set;
import junit.framework.TestCase;
/** /**
* Functional tests for Json serialization and deserialization of collections. * Functional tests for Json serialization and deserialization of collections.
@ -276,6 +274,20 @@ public class CollectionTest extends TestCase {
assertTrue(deserializedCollection.contains(objB)); assertTrue(deserializedCollection.contains(objB));
} }
public void testFieldIsArrayList() {
HasArrayListField object = new HasArrayListField();
object.longs.add(1L);
object.longs.add(3L);
String json = gson.toJson(object, HasArrayListField.class);
assertEquals("{\"longs\":[1,3]}", json);
HasArrayListField copy = gson.fromJson("{\"longs\":[1,3]}", HasArrayListField.class);
assertEquals(Arrays.asList(1L, 3L), copy.longs);
}
static class HasArrayListField {
ArrayList<Long> longs = new ArrayList<Long>();
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static int[] toIntArray(Collection collection) { private static int[] toIntArray(Collection collection) {
int[] ints = new int[collection.size()]; int[] ints = new int[collection.size()];