/* * JBoss, Home of Professional Open Source * Copyright 2012 Red Hat Inc. and/or its affiliates and other contributors * as indicated by the @authors tag. All rights reserved. */ package org.jboss.elasticsearch.river.remote; import java.util.Date; import org.junit.Assert; import org.junit.Test; /** * Unit test for {@link DateTimeUtils}. * * @author Vlastimil Elias (velias at redhat dot com) */ public class DateTimeUtilsTest { @Test public void formatISODateTime() { Assert.assertNull(DateTimeUtils.formatISODateTime(null)); Assert.assertEquals("2012-08-14T12:00:00.0+0000", DateTimeUtils.formatISODateTime(DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.000-0400"))); } @Test public void parseISODateTime() { Assert.assertNull(DateTimeUtils.parseISODateTime(null)); Assert.assertNull(DateTimeUtils.parseISODateTime("")); Assert.assertNull(DateTimeUtils.parseISODateTime(" ")); } @Test public void parseISODateTimeWithMinutePrecise() { Assert.assertNull(DateTimeUtils.parseISODateTimeWithMinutePrecise(null)); Assert.assertNull(DateTimeUtils.parseISODateTimeWithMinutePrecise("")); Assert.assertNull(DateTimeUtils.parseISODateTimeWithMinutePrecise(" ")); try { Assert.assertNull(DateTimeUtils.parseISODateTimeWithMinutePrecise("nonsense date")); Assert.fail("IllegalArgumentException must be thrown"); } catch (IllegalArgumentException e) { // OK } Date expected = DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.000-0400"); Assert.assertEquals(expected, DateTimeUtils.parseISODateTimeWithMinutePrecise("2012-08-14T08:00:00.000-0400")); Assert.assertEquals(expected, DateTimeUtils.parseISODateTimeWithMinutePrecise("2012-08-14T08:00:00.001-0400")); Assert.assertEquals(expected, DateTimeUtils.parseISODateTimeWithMinutePrecise("2012-08-14T08:00:10.000-0400")); Assert.assertEquals(expected, DateTimeUtils.parseISODateTimeWithMinutePrecise("2012-08-14T08:00:10.545-0400")); Assert.assertEquals(expected, DateTimeUtils.parseISODateTimeWithMinutePrecise("2012-08-14T08:00:59.999-0400")); } @Test public void roundDateTimeToMinutePrecise() { Assert.assertNull(DateTimeUtils.roundDateTimeToMinutePrecise(null)); Date expected = DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.000-0400"); Assert.assertEquals(expected, DateTimeUtils.roundDateTimeToMinutePrecise(DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.000-0400"))); Assert.assertEquals(expected, DateTimeUtils.roundDateTimeToMinutePrecise(DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.001-0400"))); Assert.assertEquals(expected, DateTimeUtils.roundDateTimeToMinutePrecise(DateTimeUtils.parseISODateTime("2012-08-14T08:00:10.000-0400"))); Assert.assertEquals(expected, DateTimeUtils.roundDateTimeToMinutePrecise(DateTimeUtils.parseISODateTime("2012-08-14T08:00:10.545-0400"))); Assert.assertEquals(expected, DateTimeUtils.roundDateTimeToMinutePrecise(DateTimeUtils.parseISODateTime("2012-08-14T08:00:59.999-0400"))); } @Test public void formatDateTime() { Assert.assertNull(DateTimeUtils.formatDateTime(null,"")); Date exampleDate = DateTimeUtils.parseISODateTime("2012-08-14T08:00:00.000-0400"); Assert.assertEquals(DateTimeUtils.formatDateTime(exampleDate, ""),DateTimeUtils.formatISODateTime(exampleDate)); Assert.assertEquals(DateTimeUtils.formatDateTime(exampleDate, DateTimeUtils.CUSTOM_MILLISEC_EPOCH_DATETIME_FORMAT), String.valueOf(exampleDate.getTime())); Assert.assertEquals(DateTimeUtils.formatDateTime(exampleDate, DateTimeUtils.CUSTOM_UNIX_EPOCH_DATETIME_FORMAT), String.valueOf(exampleDate.getTime()).replaceFirst("\\d\\d\\d$", "")); Assert.assertEquals(DateTimeUtils.formatDateTime(exampleDate, "YYYY-MM-dd"),"2012-08-14"); Assert.assertEquals(DateTimeUtils.formatDateTime(exampleDate, "YYYY-MM-dd"),"2012-08-14"); } @Test public void parseDate() { Assert.assertNull(DateTimeUtils.formatDateTime(null,"")); Date exampleDate = DateTimeUtils.parseISODateTime("2012-08-14T00:00:00.000-0000"); Assert.assertEquals( exampleDate , DateTimeUtils.parseDate("1344902400", DateTimeUtils.CUSTOM_UNIX_EPOCH_DATETIME_FORMAT) ); Assert.assertEquals( exampleDate , DateTimeUtils.parseDate("1344902400000", DateTimeUtils.CUSTOM_MILLISEC_EPOCH_DATETIME_FORMAT) ); Assert.assertTrue( exampleDate.equals(DateTimeUtils.parseDate("2012-08-14", "YYYY-MM-dd")) ); } }