/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.importer;
import static java.util.Calendar.*;
import static org.junit.Assert.*;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import org.junit.Test;
public class DatesTest {
@Test
public void testParse() {
doTestParse( date(2012, FEBRUARY, 6, 13, 12, 59, 123), "2012-02-06T13:12:59.123Z");
doTestParse( date(2012, FEBRUARY, 6, 13, 12, 59, 0), "2012-02-06T13:12:59Z");
doTestParse( date(2012, FEBRUARY, 6, 13, 12, 123, 0), "2012-02-06T13:12:123Z");
doTestParse( date(2012, FEBRUARY, 6, 13, 12, 0, 0), "2012-02-06T13:12Z");
doTestParse( date(2012, FEBRUARY, 6, 13, 0, 0, 0), "2012-02-06T13Z");
doTestParse( date(2012, FEBRUARY, 6, 0, 0, 0, 0), "2012-02-06");
doTestParse( date(2012, FEBRUARY, 1, 0, 0, 0, 0), "2012-02");
doTestParse( date(2012, JANUARY, 1, 0, 0, 0, 0), "2012");
}
void doTestParse(Date expected, String str) {
//test straight up
assertEquals(expected, Dates.parse(str));
//padd string
assertEquals(expected, Dates.matchAndParse("foo_" + str + ".bar"));
}
Date date(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second,
int millisecond) {
return date(year, month, dayOfMonth, hourOfDay, minute, second, millisecond,
TimeZone.getTimeZone("GMT"));
}
Date date(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second,
int millisecond, TimeZone tz) {
Calendar c = Calendar.getInstance();
c.set(YEAR, year);
c.set(MONTH, month);
c.set(DAY_OF_MONTH, dayOfMonth);
c.set(HOUR_OF_DAY, hourOfDay);
c.set(MINUTE, minute);
c.set(SECOND, second);
c.set(MILLISECOND, millisecond);
c.setTimeZone(tz);
return c.getTime();
}
}