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.TestTypes.BagOfPrimitives;
import com.google.gson.reflect.TypeToken;
import junit.framework.TestCase;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
@ -35,6 +32,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Set;
import junit.framework.TestCase;
/**
* Functional tests for Json serialization and deserialization of collections.
@ -276,6 +274,20 @@ public class CollectionTest extends TestCase {
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")
private static int[] toIntArray(Collection collection) {
int[] ints = new int[collection.size()];