package net.time4j; import net.time4j.format.Attributes; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(JUnit4.class) public class TimestampCreationTest { @Test public void ofDateTime() { PlainDate date = PlainDate.of(2014, Month.APRIL, 21); PlainTime time = PlainTime.of(19, 45, 30, 123456789); PlainTimestamp ts = PlainTimestamp.of(date, time); assertThat(ts.getCalendarDate(), is(date)); assertThat(ts.getWallTime(), is(time)); } @Test public void ofDateTime24() { PlainDate date = PlainDate.of(2014, Month.APRIL, 21); PlainTime time = PlainTime.midnightAtEndOfDay(); PlainTimestamp ts = PlainTimestamp.of(date, time); assertThat(ts.getCalendarDate(), is(PlainDate.of(2014, 4, 22))); assertThat(ts.getWallTime(), is(PlainTime.midnightAtStartOfDay())); } @Test(expected=ArithmeticException.class) public void ofDateTimeRangeOverflow() { PlainDate date = PlainDate.of(999999999, 12, 31); PlainTime time = PlainTime.midnightAtEndOfDay(); PlainTimestamp.of(date, time); } @Test public void ofYearMonthDayHourMinute() { PlainDate date = PlainDate.of(2014, Month.APRIL, 21); PlainTime time = PlainTime.of(19, 45); assertThat( PlainTimestamp.of(2014, 4, 21, 19, 45), is(PlainTimestamp.of(date, time))); } @Test public void ofYearMonthDayHourMinuteSecond() { PlainDate date = PlainDate.of(2014, Month.APRIL, 21); PlainTime time = PlainTime.of(19, 45, 30); assertThat( PlainTimestamp.of(2014, 4, 21, 19, 45, 30), is(PlainTimestamp.of(date, time))); } @Test public void ofYearMonthDayHour24() { PlainDate date = PlainDate.of(2014, Month.APRIL, 22); assertThat( PlainTimestamp.of(2014, 4, 21, 24, 0), is(PlainTimestamp.of(date, PlainTime.midnightAtStartOfDay()))); } @Test(expected=IllegalArgumentException.class) public void ofYearMonthDayHourMinuteSecondOverflow() { PlainTimestamp.of(2014, 4, 21, 19, 45, 60); } @Test(expected=IllegalArgumentException.class) public void merge() { PlainTimestamp.axis().createFrom( Moment.UNIX_EPOCH, Attributes.empty(), false, false); } @Test public void mergeLax() { assertThat( PlainTimestamp.axis().createFrom( Moment.UNIX_EPOCH, Attributes.empty(), true, false), is(PlainTimestamp.of(1970, 1, 1, 0, 0))); } }