package jumptest.junit;
import com.vividsolutions.jump.util.FlexibleDateParser;
import junit.framework.TestCase;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class FlexibleDateParserTestCase extends TestCase {
private FlexibleDateParser parser = new FlexibleDateParser();
private SimpleDateFormat simpleFormat1 = new SimpleDateFormat("yyyy-MM-dd");
private SimpleDateFormat simpleFormat2 = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss:SSS");
private SimpleDateFormat simpleFormat3 = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss:SSS zzz");
private int year = Calendar.getInstance().get(Calendar.YEAR);
public FlexibleDateParserTestCase(String arg0) {
super(arg0);
}
public static void main(String[] args) {
junit.textui.TestRunner.run(FlexibleDateParserTestCase.class);
}
public void test() throws Exception {
parser.setVerbose(true);
//Some of these test are based on the formats in Excel [Jon Aquino]
assertEquals(simpleFormat1.parse("2003-05-21"),
parser.parse("2003-05-21", false));
assertEquals(simpleFormat1.parse("2003-05-21"),
parser.parse("2003.05.21", false));
assertEquals(simpleFormat1.parse(year + "-03-14"),
parser.parse("3/14", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("3/14/98", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("03/14/98", false));
assertEquals(simpleFormat1.parse(year + "-03-14"),
parser.parse("14-Mar", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("14-Mar-98", false));
assertEquals(simpleFormat1.parse("1998-03-01"),
parser.parse("Mar-1998", false));
assertEquals(simpleFormat1.parse("1998-03-01"),
parser.parse("March-1998", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("March 14, 1998", false));
assertEquals(simpleFormat2.parse("1998-03-14 13:30:00:000"),
parser.parse("3/14/98 1:30 PM", false));
assertEquals(simpleFormat2.parse("1998-03-14 13:30:00:000"),
parser.parse("3/14/98 13:30", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("3/14/1998", false));
assertEquals(simpleFormat1.parse("1998-03-14"),
parser.parse("14-Mar-1998", false));
assertEquals(simpleFormat2.parse(year + "-01-01 13:30:00:000"),
parser.parse("13:30", false));
assertEquals(simpleFormat2.parse(year + "-01-01 13:30:00:000"),
parser.parse("1:30 PM", false));
assertEquals(simpleFormat2.parse(year + "-01-01 13:30:55:000"),
parser.parse("13:30:55", false));
assertEquals(simpleFormat2.parse(year + "-01-01 13:30:55:000"),
parser.parse("1:30:55 PM", false));
assertEquals(simpleFormat3.parse("2003-01-06 17:01:02:000 PST"),
parser.parse("Mon Jan 06 17:01:02 PST 2003", false));
assertEquals(simpleFormat1.parse("1970-06-01"),
parser.parse("Jun 1970", false));
assertEquals(simpleFormat1.parse(year + "-06-19"),
parser.parse("Jun 19", false));
assertEquals(simpleFormat1.parse("1970-06-01"),
parser.parse("June 1970", false));
assertEquals(simpleFormat1.parse(year + "-06-19"),
parser.parse("June 19", false));
assertEquals(simpleFormat1.parse("2003-09-19"),
parser.parse("Sept 19, 2003", false));
try {
assertEquals(simpleFormat1.parse(year + "-09-19"),
parser.parse("Sept 19", false));
assertTrue(false);
} catch (ParseException e) {
assertTrue(true);
}
//American style preferred to European style. [Jon Aquino]
assertEquals(simpleFormat1.parse("2004-02-03"),
parser.parse("02/03/2004", false));
//FME GML format. [Jon Aquino]
assertEquals(simpleFormat1.parse("2004-02-03"),
parser.parse("20040203", false));
assertNull(parser.parse("", false));
assertNull(parser.parse("", true));
assertNull(parser.parse(" ", false));
assertNull(parser.parse(" ", true));
assertEquals(simpleFormat1.parse("2004-02-03"),
parser.parse("02/03/04", false));
assertEquals(simpleFormat1.parse("1999-03-04"),
parser.parse("99/03/04", false));
}
}