Test that the date format is honored, even in a collection.

http://code.google.com/p/google-gson/issues/detail?id=230
This commit is contained in:
Jesse Wilson 2011-03-21 22:10:33 +00:00
parent e96b241556
commit 657688ca79

View File

@ -24,10 +24,12 @@ import java.sql.Time;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.Set;
@ -376,6 +378,23 @@ public class DefaultTypeAdaptersTest extends TestCase {
assertEquals(expectedDateString, json);
}
// http://code.google.com/p/google-gson/issues/detail?id=230
public void testDateSerializationInCollection() throws Exception {
TimeZone defaultTimeZone = TimeZone.getDefault();
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
Locale defaultLocale = Locale.getDefault();
Locale.setDefault(Locale.US);
try {
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
List<Date> dates = Arrays.asList(new Date(0));
String json = gson.toJson(dates, new TypeToken<List<Date>>() {}.getType());
assertEquals("[\"1969-12-31\"]", json);
} finally {
TimeZone.setDefault(defaultTimeZone);
Locale.setDefault(defaultLocale);
}
}
private static class ClassWithBigDecimal {
BigDecimal value;
// For use by Gson