package com.twelvemonkeys.util.convert; import com.twelvemonkeys.lang.DateUtil; import org.junit.Test; import java.text.DateFormat; import java.util.*; /** * DateConverterTestCase * <p/> * * @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a> * @author last modified by $Author: haku $ * @version $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/test/java/com/twelvemonkeys/util/convert/DateConverterTestCase.java#2 $ */ public class DateConverterTestCase extends PropertyConverterAbstractTestCase { protected final static String FORMAT_STR_1 = "dd.MM.yyyy HH:mm:ss"; protected final static String FORMAT_STR_2 = "dd-MM-yyyy hh:mm:ss a"; protected PropertyConverter makePropertyConverter() { return new DateConverter(); } protected Conversion[] getTestConversions() { // The default format doesn't contain milliseconds, so we have to round long time = System.currentTimeMillis(); final Date now = new Date(DateUtil.roundToSecond(time)); DateFormat df = DateFormat.getDateTimeInstance(); return new Conversion[] { new Conversion("01.11.2006 15:26:23", new GregorianCalendar(2006, 10, 1, 15, 26, 23).getTime(), FORMAT_STR_1), // This doesn't really work.. But close enough new Conversion(df.format(now), now), // This format is really stupid new Conversion("01-11-2006 03:27:44 pm", new GregorianCalendar(2006, 10, 1, 15, 27, 44).getTime(), FORMAT_STR_2, "01-11-2006 03:27:44 PM"), // These seems to be an hour off (no timezone?)... new Conversion("42", new Date(42l), "S"), new Conversion(String.valueOf(time % 1000l), new Date(time % 1000l), "S"), }; } @Test @Override public void testConvert() { // Custom setup, to make test cases stable: Always use GMT TimeZone oldTZ = TimeZone.getDefault(); try { TimeZone.setDefault(TimeZone.getTimeZone("GMT")); super.testConvert(); } finally { // Restore TimeZone.setDefault(oldTZ); } } }