/* The contents of this file are subject to the license and copyright terms * detailed in the license directory at the root of the source tree (also * available online at http://fedora-commons.org/license/). */ package fedora.server.utilities; import java.util.Date; import junit.framework.TestCase; /** * @author Edwin Shin */ public class TestDateUtility extends TestCase { protected final Date EPOCH = new Date(0L); protected final String EPOCH_DT = "1970-01-01T00:00:00.000Z"; protected final String EPOCH_DT2 = "1970-01-01T00:00:00Z"; // no millis protected final String EPOCH_XSD_DT = "1970-01-01T00:00:00Z"; protected final String EPOCH_D = "1970-01-01Z"; protected final String EPOCH_T = "00:00:00.000Z"; protected final String HTTP_DATE = "Thu, 04 Aug 2005 01:35:07 GMT"; protected final Date ONE_CE = new Date(-62135769600000L); protected final String ONE_CE_DT = "0001-01-01T00:00:00.000Z"; protected final String ONE_CE_XSD_DT = "0001-01-01T00:00:00Z"; protected final Date ONE_BCE = new Date(-62167392000000L); protected final String ONE_BCE_DT = "-0001-01-01T00:00:00.000Z"; protected final String ONE_BCE_XSD_DT = "0000-01-01T00:00:00Z"; protected final Date TWO_BCE = new Date(-62198928000000L); protected final String TWO_BCE_DT = "-0002-01-01T00:00:00.000Z"; protected final String TWO_BCE_XSD_DT = "-0001-01-01T00:00:00Z"; public static void main(String[] args) { junit.textui.TestRunner.run(TestDateUtility.class); } public void testConvertDateToString() { assertEquals(EPOCH_DT, DateUtility.convertDateToString(EPOCH)); assertEquals(EPOCH_DT, DateUtility.convertDateToString(EPOCH, true)); assertEquals(EPOCH_DT2, DateUtility.convertDateToString(EPOCH, false)); assertEquals(ONE_CE_DT, DateUtility.convertDateToString(ONE_CE)); assertEquals(ONE_BCE_DT, DateUtility.convertDateToString(ONE_BCE)); assertEquals(TWO_BCE_DT, DateUtility.convertDateToString(TWO_BCE)); } public void testConvertDateToDateString() { assertEquals(EPOCH_D, DateUtility.convertDateToDateString(EPOCH)); } public void testConvertDateToTimeString() { assertEquals(EPOCH_T, DateUtility.convertDateToTimeString(EPOCH)); } public void testConvertDateToXSDString() { assertEquals(EPOCH_XSD_DT, DateUtility.convertDateToXSDString(EPOCH)); assertEquals(ONE_CE_XSD_DT, DateUtility.convertDateToXSDString(ONE_CE)); assertEquals(ONE_BCE_XSD_DT, DateUtility .convertDateToXSDString(ONE_BCE)); assertEquals(TWO_BCE_XSD_DT, DateUtility .convertDateToXSDString(TWO_BCE)); } public void testParseDate() { String[] dates = {"1970-01-01T00:00:00.000Z", "1970-01-01T00:00:00.00Z", "1970-01-01T00:00:00.0Z", "1970-01-01T00:00:00Z", "1970-01-01Z", "1970-01-01T00:00:00.000", "1970-01-01T00:00:00.00", "1970-01-01T00:00:00.0", "1970-01-01T00:00:00", "1970-01-01", "Thu, 01 Jan 1970 00:00:00 GMT"}; for (String element : dates) { assertEquals(EPOCH, DateUtility.parseDateAsUTC(element)); } String[] badDates = {"", "ABCD-EF-GHTIJ:KL:MN.OPQZ", "1234", "1", "1970-01", "1970-1-1", "12345-01-01T00:00:00.000Z", "12345-01-01T00:00:00."}; for (String element : badDates) { assertNull(DateUtility.parseDateAsUTC(element)); } assertEquals(ONE_CE, DateUtility.parseDateAsUTC(ONE_CE_XSD_DT)); assertEquals(ONE_BCE, DateUtility.parseDateAsUTC(ONE_BCE_XSD_DT)); assertEquals(TWO_BCE, DateUtility.parseDateAsUTC(TWO_BCE_XSD_DT)); } }