package net.time4j; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static net.time4j.PlainTime.*; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(JUnit4.class) public class TimeOperatorTest { @Test public void clockHourOfAmPmMinimized() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_AMPM.minimized()), is(PlainTime.of(13, 45, 30))); } @Test public void clockHourOfAmPmMinimizedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.minimized()), is(PlainTime.of(1))); } @Test public void clockHourOfAmPmMaximized() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_AMPM.maximized()), is(PlainTime.of(12, 45, 30))); } @Test public void clockHourOfAmPmMaximizedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.maximized()), is(PlainTime.of(0))); } @Test public void clockHourOfAmPmDecremented() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_AMPM.decremented()), is(PlainTime.of(18, 45, 30))); } @Test public void clockHourOfAmPmDecrementedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.decremented()), is(PlainTime.of(23))); } @Test public void clockHourOfAmPmIncremented() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_AMPM.incremented()), is(PlainTime.of(20, 45, 30))); } @Test public void clockHourOfAmPmIncrementedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.incremented()), is(PlainTime.of(1))); } @Test public void clockHourOfAmPmAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(CLOCK_HOUR_OF_AMPM.atFloor()), is(PlainTime.of(19))); } @Test public void clockHourOfAmPmAtFloorOnTimestamp() { assertThat( PlainTimestamp.of(2014, 4, 21, 19, 45, 30) .with(CLOCK_HOUR_OF_AMPM.atFloor()), is(PlainTimestamp.of(2014, 4, 21, 19, 0))); } @Test public void clockHourOfAmPmAtFloorIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.atFloor()), is(PlainTime.of(24))); } @Test public void clockHourOfAmPmAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(CLOCK_HOUR_OF_AMPM.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); } @Test public void clockHourOfAmPmAtCeilingOnTimestamp() { assertThat( PlainTimestamp.of(2014, 4, 21, 19, 45, 30) .with(CLOCK_HOUR_OF_AMPM.atCeiling()), is( PlainTimestamp.of(2014, 4, 21, 19, 59, 59) .with(NANO_OF_SECOND, 999999999))); } @Test public void clockHourOfAmPmAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_AMPM.atCeiling()), is(PlainTime.of(24))); } @Test public void clockHourOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_DAY.minimized()), is(PlainTime.of(1, 45, 30))); } @Test public void clockHourOfDayMinimizedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.minimized()), is(PlainTime.of(1))); } @Test public void clockHourOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_DAY.maximized()), is(PlainTime.of(0, 45, 30))); } @Test public void clockHourOfDayMaximizedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.maximized()), is(PlainTime.of(0))); } @Test public void clockHourOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_DAY.decremented()), is(PlainTime.of(18, 45, 30))); } @Test public void clockHourOfDayDecrementedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.decremented()), is(PlainTime.of(23))); } @Test public void clockHourOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30).with(CLOCK_HOUR_OF_DAY.incremented()), is(PlainTime.of(20, 45, 30))); } @Test public void clockHourOfDayIncrementedIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.incremented()), is(PlainTime.of(1))); } @Test public void clockHourOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(CLOCK_HOUR_OF_DAY.atFloor()), is(PlainTime.of(19))); } @Test public void clockHourOfDayAtFloorIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void clockHourOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(CLOCK_HOUR_OF_DAY.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); } @Test public void clockHourOfDayAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(CLOCK_HOUR_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void digitalHourOfAmPmMinimized() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_AMPM.minimized()), is(PlainTime.of(12, 45, 30))); } @Test public void digitalHourOfAmPmMinimizedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.minimized()), is(PlainTime.of(0))); } @Test public void digitalHourOfAmPmMaximized() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_AMPM.maximized()), is(PlainTime.of(23, 45, 30))); } @Test public void digitalHourOfAmPmMaximizedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.maximized()), is(PlainTime.of(11))); } @Test public void digitalHourOfAmPmDecremented() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_AMPM.decremented()), is(PlainTime.of(18, 45, 30))); } @Test public void digitalHourOfAmPmDecrementedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.decremented()), is(PlainTime.of(23))); } @Test public void digitalHourOfAmPmIncremented() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_AMPM.incremented()), is(PlainTime.of(20, 45, 30))); } @Test public void digitalHourOfAmPmIncrementedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.incremented()), is(PlainTime.of(1))); } @Test public void digitalHourOfAmPmAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(DIGITAL_HOUR_OF_AMPM.atFloor()), is(PlainTime.of(19))); } @Test public void digitalHourOfAmPmAtFloorIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.atFloor()), is(PlainTime.of(24))); } @Test public void digitalHourOfAmPmAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(DIGITAL_HOUR_OF_AMPM.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); } @Test public void digitalHourOfAmPmAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_AMPM.atCeiling()), is(PlainTime.of(24))); } @Test public void digitalHourOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_DAY.minimized()), is(PlainTime.of(0, 45, 30))); } @Test public void digitalHourOfDayMinimizedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 19, 45, 30) .with(DIGITAL_HOUR_OF_DAY.minimized()), is(PlainTimestamp.of(2014, 5, 7, 0, 45, 30))); } @Test public void digitalHourOfDayMinimizedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void digitalHourOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_DAY.maximized()), is(PlainTime.of(23, 45, 30))); } @Test public void digitalHourOfDayMaximizedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 19, 45, 30) .with(DIGITAL_HOUR_OF_DAY.maximized()), is(PlainTimestamp.of(2014, 5, 7, 23, 45, 30))); } @Test public void digitalHourOfDayMaximizedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.maximized()), is(PlainTime.of(23))); } @Test public void digitalHourOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_DAY.decremented()), is(PlainTime.of(18, 45, 30))); } @Test public void digitalHourOfDayDecrementedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 0, 45) .with(DIGITAL_HOUR_OF_DAY.decremented()), is(PlainTimestamp.of(2014, 5, 6, 23, 45))); } @Test public void digitalHourOfDayDecrementedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.decremented()), is(PlainTime.of(23))); } @Test public void digitalHourOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30).with(DIGITAL_HOUR_OF_DAY.incremented()), is(PlainTime.of(20, 45, 30))); } @Test public void digitalHourOfDayIncrementedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 23, 45) .with(DIGITAL_HOUR_OF_DAY.incremented()), is(PlainTimestamp.of(2014, 5, 8, 0, 45))); } @Test public void digitalHourOfDayIncrementedIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.incremented()), is(PlainTime.of(1))); } @Test public void digitalHourOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(DIGITAL_HOUR_OF_DAY.atFloor()), is(PlainTime.of(19))); } @Test public void digitalHourOfDayAtFloorIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void digitalHourOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(DIGITAL_HOUR_OF_DAY.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); } @Test public void digitalHourOfDayAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(DIGITAL_HOUR_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void isoHourMinimized() { assertThat( PlainTime.of(19, 45, 30).with(ISO_HOUR.minimized()), is(PlainTime.of(0, 45, 30))); } @Test public void isoHourMinimizedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 19, 45, 30) .with(ISO_HOUR.minimized()), is(PlainTimestamp.of(2014, 5, 7, 0, 45, 30))); } @Test public void isoHourMinimizedIfFullHour() { assertThat( PlainTime.of(13).with(ISO_HOUR.minimized()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(ISO_HOUR.minimized()), is(PlainTime.of(0))); } @Test public void isoHourMaximized() { assertThat( PlainTime.of(19, 45, 30).with(ISO_HOUR.maximized()), is(PlainTime.of(23, 45, 30))); } @Test public void isoHourMaximizedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 19, 0) .with(ISO_HOUR.maximized()), is(PlainTimestamp.of(2014, 5, 7, 23, 0))); } @Test public void isoHourMaximizedIfFullHour() { assertThat( PlainTime.of(0).with(ISO_HOUR.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(10).with(ISO_HOUR.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(ISO_HOUR.maximized()), is(PlainTime.of(24))); } @Test public void isoHourDecremented() { assertThat( PlainTime.of(19, 45, 30).with(ISO_HOUR.decremented()), is(PlainTime.of(18, 45, 30))); } @Test public void isoHourDecrementedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 0, 45, 30) .with(ISO_HOUR.decremented()), is(PlainTimestamp.of(2014, 5, 6, 23, 45, 30))); } @Test public void isoHourDecrementedIfFullHour() { assertThat( PlainTime.of(0).with(ISO_HOUR.decremented()), is(PlainTime.of(23))); assertThat( PlainTime.of(1).with(ISO_HOUR.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(ISO_HOUR.decremented()), is(PlainTime.of(23))); } @Test public void isoHourIncremented() { assertThat( PlainTime.of(19, 45, 30).with(ISO_HOUR.incremented()), is(PlainTime.of(20, 45, 30))); } @Test public void isoHourIncrementedOnTimestamp() { assertThat( PlainTimestamp.of(2014, 5, 7, 23, 45, 30) .with(ISO_HOUR.incremented()), is(PlainTimestamp.of(2014, 5, 8, 0, 45, 30))); } @Test public void isoHourIncrementedIfFullHour() { assertThat( PlainTime.of(23).with(ISO_HOUR.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(ISO_HOUR.incremented()), is(PlainTime.of(1))); assertThat( PlainTime.of(0).with(ISO_HOUR.incremented()), is(PlainTime.of(1))); } @Test public void isoHourAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(ISO_HOUR.atFloor()), is(PlainTime.of(19))); } @Test public void isoHourAtFloorIfFullHour() { assertThat( PlainTime.of(19).with(ISO_HOUR.atFloor()), is(PlainTime.of(19))); assertThat( PlainTime.of(24).with(ISO_HOUR.atFloor()), is(PlainTime.of(24))); } @Test public void isoHourAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(ISO_HOUR.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); } @Test public void isoHourAtCeilingIfFullHour() { assertThat( PlainTime.of(19).with(ISO_HOUR.atCeiling()), is(PlainTime.of(19, 59, 59, 999999999))); assertThat( PlainTime.of(24).with(ISO_HOUR.atCeiling()), is(PlainTime.of(24))); } @Test public void minuteOfHourMinimized() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_HOUR.minimized()), is(PlainTime.of(19, 0, 30))); } @Test public void minuteOfHourMinimizedIfFullMinute() { assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.minimized()), is(PlainTime.of(24))); } @Test public void minuteOfHourMaximized() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_HOUR.maximized()), is(PlainTime.of(19, 59, 30))); } @Test public void minuteOfHourMaximizedIfFullMinute() { assertThat( PlainTime.of(19, 45).with(MINUTE_OF_HOUR.maximized()), is(PlainTime.of(19, 59))); assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.maximized()), is(PlainTime.of(24))); } @Test public void minuteOfHourDecremented() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_HOUR.decremented()), is(PlainTime.of(19, 44, 30))); assertThat( PlainTime.of(0, 0, 30).with(MINUTE_OF_HOUR.decremented()), is(PlainTime.of(23, 59, 30))); } @Test public void minuteOfHourDecrementedIfFullMinute() { assertThat( PlainTime.of(0).with(MINUTE_OF_HOUR.decremented()), is(PlainTime.of(23, 59))); assertThat( PlainTime.of(0, 1).with(MINUTE_OF_HOUR.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.decremented()), is(PlainTime.of(23, 59))); } @Test public void minuteOfHourIncremented() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_HOUR.incremented()), is(PlainTime.of(19, 46, 30))); assertThat( PlainTime.of(23, 59, 30).with(MINUTE_OF_HOUR.incremented()), is(PlainTime.of(0, 0, 30))); } @Test public void minuteOfHourIncrementedIfFullMinute() { assertThat( PlainTime.of(23, 59).with(MINUTE_OF_HOUR.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.incremented()), is(PlainTime.of(0, 1))); assertThat( PlainTime.of(0).with(MINUTE_OF_HOUR.incremented()), is(PlainTime.of(0, 1))); } @Test public void minuteOfHourAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MINUTE_OF_HOUR.atFloor()), is(PlainTime.of(19, 45))); } @Test public void minuteOfHourAtFloorIfFullMinute() { assertThat( PlainTime.of(19, 45).with(MINUTE_OF_HOUR.atFloor()), is(PlainTime.of(19, 45))); assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.atFloor()), is(PlainTime.of(24))); } @Test public void minuteOfHourAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MINUTE_OF_HOUR.atCeiling()), is(PlainTime.of(19, 45, 59, 999999999))); } @Test public void minuteOfHourAtCeilingIfFullMinute() { assertThat( PlainTime.of(19, 45).with(MINUTE_OF_HOUR.atCeiling()), is(PlainTime.of(19, 45, 59, 999999999))); assertThat( PlainTime.of(24).with(MINUTE_OF_HOUR.atCeiling()), is(PlainTime.of(24))); } @Test public void minuteOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_DAY.minimized()), is(PlainTime.of(0, 0, 30))); } @Test public void minuteOfDayMinimizedIfFullMinute() { assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void minuteOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_DAY.maximized()), is(PlainTime.of(23, 59, 30))); } @Test public void minuteOfDayMaximizedIfFullMinute() { assertThat( PlainTime.of(10, 15).with(MINUTE_OF_DAY.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void minuteOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_DAY.decremented()), is(PlainTime.of(19, 44, 30))); assertThat( PlainTime.of(0, 0, 30).with(MINUTE_OF_DAY.decremented()), is(PlainTime.of(23, 59, 30))); } @Test public void minuteOfDayDecrementedIfFullMinute() { assertThat( PlainTime.of(0).with(MINUTE_OF_DAY.decremented()), is(PlainTime.of(23, 59))); assertThat( PlainTime.of(0, 1).with(MINUTE_OF_DAY.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.decremented()), is(PlainTime.of(23, 59))); } @Test public void minuteOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30).with(MINUTE_OF_DAY.incremented()), is(PlainTime.of(19, 46, 30))); assertThat( PlainTime.of(23, 59, 30).with(MINUTE_OF_DAY.incremented()), is(PlainTime.of(0, 0, 30))); } @Test public void minuteOfDayIncrementedIfFullMinute() { assertThat( PlainTime.of(23, 59).with(MINUTE_OF_DAY.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.incremented()), is(PlainTime.of(0, 1))); assertThat( PlainTime.of(0).with(MINUTE_OF_DAY.incremented()), is(PlainTime.of(0, 1))); } @Test public void minuteOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MINUTE_OF_DAY.atFloor()), is(PlainTime.of(19, 45))); } @Test public void minuteOfDayAtFloorIfFullMinute() { assertThat( PlainTime.of(19, 45).with(MINUTE_OF_DAY.atFloor()), is(PlainTime.of(19, 45))); assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void minuteOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MINUTE_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 59, 999999999))); } @Test public void minuteOfDayAtCeilingIfFullMinute() { assertThat( PlainTime.of(19, 45).with(MINUTE_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 59, 999999999))); assertThat( PlainTime.of(24).with(MINUTE_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void secondOfMinuteMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.minimized()), is(PlainTime.of(19, 45, 0, 123456789))); } @Test public void secondOfMinuteMinimizedIfFullSecond() { assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.minimized()), is(PlainTime.of(24))); } @Test public void secondOfMinuteMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.maximized()), is(PlainTime.of(19, 45, 59, 123456789))); } @Test public void secondOfMinuteMaximizedIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_MINUTE.maximized()), is(PlainTime.of(19, 45, 59))); assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.maximized()), is(PlainTime.of(24))); } @Test public void secondOfMinuteDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.decremented()), is(PlainTime.of(19, 45, 29, 123456789))); assertThat( PlainTime.of(0, 0, 0, 123456789) .with(SECOND_OF_MINUTE.decremented()), is(PlainTime.of(23, 59, 59, 123456789))); } @Test public void secondOfMinuteDecrementedIfFullSecond() { assertThat( PlainTime.of(0).with(SECOND_OF_MINUTE.decremented()), is(PlainTime.of(23, 59, 59))); assertThat( PlainTime.of(0, 0, 1).with(SECOND_OF_MINUTE.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.decremented()), is(PlainTime.of(23, 59, 59))); } @Test public void secondOfMinuteIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.incremented()), is(PlainTime.of(19, 45, 31, 123456789))); assertThat( PlainTime.of(23, 59, 59, 123456789) .with(SECOND_OF_MINUTE.incremented()), is(PlainTime.of(0, 0, 0, 123456789))); } @Test public void secondOfMinuteIncrementedIfFullSecond() { assertThat( PlainTime.of(23, 59, 59).with(SECOND_OF_MINUTE.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.incremented()), is(PlainTime.of(0, 0, 1))); assertThat( PlainTime.of(0).with(SECOND_OF_MINUTE.incremented()), is(PlainTime.of(0, 0, 1))); } @Test public void secondOfMinuteAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.atFloor()), is(PlainTime.of(19, 45, 30))); } @Test public void secondOfMinuteAtFloorIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_MINUTE.atFloor()), is(PlainTime.of(19, 45, 30))); assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.atFloor()), is(PlainTime.of(24))); } @Test public void secondOfMinuteAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_MINUTE.atCeiling()), is(PlainTime.of(19, 45, 30, 999999999))); } @Test public void secondOfMinuteAtCeilingIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_MINUTE.atCeiling()), is(PlainTime.of(19, 45, 30, 999999999))); assertThat( PlainTime.of(24).with(SECOND_OF_MINUTE.atCeiling()), is(PlainTime.of(24))); } @Test public void secondOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(SECOND_OF_DAY.minimized()), is(PlainTime.of(0, 0, 0, 123456789))); } @Test public void secondOfDayMinimizedIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_DAY.minimized()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void secondOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(SECOND_OF_DAY.maximized()), is(PlainTime.of(23, 59, 59, 123456789))); } @Test public void secondOfDayMaximizedIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_DAY.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void secondOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_DAY.decremented()), is(PlainTime.of(19, 45, 29))); assertThat( PlainTime.of(0, 0, 0, 123456789).with(SECOND_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 123456789))); } @Test public void secondOfDayDecrementedIfFullSecond() { assertThat( PlainTime.of(0).with(SECOND_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59))); assertThat( PlainTime.of(0, 0, 1).with(SECOND_OF_DAY.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59))); } @Test public void secondOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_DAY.incremented()), is(PlainTime.of(19, 45, 31, 123456789))); assertThat( PlainTime.of(23, 59, 59, 123456789) .with(SECOND_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 123456789))); } @Test public void secondOfDayIncrementedIfFullSecond() { assertThat( PlainTime.of(23, 59, 59).with(SECOND_OF_DAY.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.incremented()), is(PlainTime.of(0, 0, 1))); assertThat( PlainTime.of(0).with(SECOND_OF_DAY.incremented()), is(PlainTime.of(0, 0, 1))); } @Test public void secondOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30))); } @Test public void secondOfDayAtFloorIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void secondOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(SECOND_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 999999999))); } @Test public void secondOfDayAtCeilingIfFullSecond() { assertThat( PlainTime.of(19, 45, 30).with(SECOND_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 999999999))); assertThat( PlainTime.of(24).with(SECOND_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void milliOfSecondMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.minimized()), is(PlainTime.of(19, 45, 30, 456789))); } @Test public void milliOfSecondMinimizedIfFullFraction() { assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.minimized()), is(PlainTime.of(24))); } @Test public void milliOfSecondMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.maximized()), is(PlainTime.of(19, 45, 30, 999456789))); } @Test public void milliOfSecondMaximizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000) .with(MILLI_OF_SECOND.maximized()), is(PlainTime.of(19, 45, 30, 999000000))); assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.maximized()), is(PlainTime.of(24))); } @Test public void milliOfSecondDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.decremented()), is(PlainTime.of(19, 45, 30, 122456789))); assertThat( PlainTime.of(0, 0, 0, 456789) .with(MILLI_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999456789))); } @Test public void milliOfSecondDecrementedIfFullFraction() { assertThat( PlainTime.of(0).with(MILLI_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999000000))); assertThat( PlainTime.of(0, 0, 0, 1000000).with(MILLI_OF_SECOND.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999000000))); } @Test public void milliOfSecondIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.incremented()), is(PlainTime.of(19, 45, 30, 124456789))); assertThat( PlainTime.of(23, 59, 59, 999456789) .with(MILLI_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 456789))); } @Test public void milliOfSecondIncrementedIfFullFraction() { assertThat( PlainTime.of(23, 59, 59, 999000000) .with(MILLI_OF_SECOND.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 1000000))); assertThat( PlainTime.of(0).with(MILLI_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 1000000))); } @Test public void milliOfSecondAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.atFloor()), is(PlainTime.of(19, 45, 30, 123000000))); } @Test public void milliOfSecondAtFloorIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000) .with(MILLI_OF_SECOND.atFloor()), is(PlainTime.of(19, 45, 30, 123000000))); assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.atFloor()), is(PlainTime.of(24))); } @Test public void milliOfSecondAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_SECOND.atCeiling()), is(PlainTime.of(19, 45, 30, 123999999))); } @Test public void milliOfSecondAtCeilingIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000) .with(MILLI_OF_SECOND.atCeiling()), is(PlainTime.of(19, 45, 30, 123999999))); assertThat( PlainTime.of(24).with(MILLI_OF_SECOND.atCeiling()), is(PlainTime.of(24))); } @Test public void milliOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(MILLI_OF_DAY.minimized()), is(PlainTime.of(0, 0, 0, 456789))); } @Test public void milliOfDayMinimizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000).with(MILLI_OF_DAY.minimized()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void milliOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(MILLI_OF_DAY.maximized()), is(PlainTime.of(23, 59, 59, 999456789))); } @Test public void milliOfDayMaximizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000).with(MILLI_OF_DAY.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void milliOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_DAY.decremented()), is(PlainTime.of(19, 45, 30, 122456789))); assertThat( PlainTime.of(0, 0, 0, 456789).with(MILLI_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999456789))); } @Test public void milliOfDayDecrementedIfFullFraction() { assertThat( PlainTime.of(0).with(MILLI_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999000000))); assertThat( PlainTime.of(0, 0, 0, 1000000).with(MILLI_OF_DAY.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999000000))); } @Test public void milliOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_DAY.incremented()), is(PlainTime.of(19, 45, 30, 124456789))); assertThat( PlainTime.of(23, 59, 59, 999456789) .with(MILLI_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 456789))); } @Test public void milliOfDayIncrementedIfFullFraction() { assertThat( PlainTime.of(23, 59, 59, 999000000) .with(MILLI_OF_DAY.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 1000000))); assertThat( PlainTime.of(0).with(MILLI_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 1000000))); } @Test public void milliOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30, 123000000))); } @Test public void milliOfDayAtFloorIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000).with(MILLI_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30, 123000000))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void milliOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MILLI_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 123999999))); } @Test public void milliOfDayAtCeilingIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123000000).with(MILLI_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 123999999))); assertThat( PlainTime.of(24).with(MILLI_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void microOfSecondMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.minimized()), is(PlainTime.of(19, 45, 30, 789))); } @Test public void microOfSecondMinimizedIfFullFraction() { assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.minimized()), is(PlainTime.of(24))); } @Test public void microOfSecondMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.maximized()), is(PlainTime.of(19, 45, 30, 999999789))); } @Test public void microOfSecondMaximizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000) .with(MICRO_OF_SECOND.maximized()), is(PlainTime.of(19, 45, 30, 999999000))); assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.maximized()), is(PlainTime.of(24))); } @Test public void microOfSecondDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.decremented()), is(PlainTime.of(19, 45, 30, 123455789))); assertThat( PlainTime.of(0, 0, 0, 789) .with(MICRO_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999999789))); } @Test public void microOfSecondDecrementedIfFullFraction() { assertThat( PlainTime.of(0).with(MICRO_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999999000))); assertThat( PlainTime.of(0, 0, 0, 1000).with(MICRO_OF_SECOND.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999999000))); } @Test public void microOfSecondIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.incremented()), is(PlainTime.of(19, 45, 30, 123457789))); assertThat( PlainTime.of(23, 59, 59, 999999789) .with(MICRO_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 789))); } @Test public void microOfSecondIncrementedIfFullFraction() { assertThat( PlainTime.of(23, 59, 59, 999999000) .with(MICRO_OF_SECOND.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 1000))); assertThat( PlainTime.of(0).with(MICRO_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 1000))); } @Test public void microOfSecondAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.atFloor()), is(PlainTime.of(19, 45, 30, 123456000))); } @Test public void microOfSecondAtFloorIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000) .with(MICRO_OF_SECOND.atFloor()), is(PlainTime.of(19, 45, 30, 123456000))); assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.atFloor()), is(PlainTime.of(24))); } @Test public void microOfSecondAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_SECOND.atCeiling()), is(PlainTime.of(19, 45, 30, 123456999))); } @Test public void microOfSecondAtCeilingIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000) .with(MICRO_OF_SECOND.atCeiling()), is(PlainTime.of(19, 45, 30, 123456999))); assertThat( PlainTime.of(24).with(MICRO_OF_SECOND.atCeiling()), is(PlainTime.of(24))); } @Test public void microOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(MICRO_OF_DAY.minimized()), is(PlainTime.of(0, 0, 0, 789))); } @Test public void microOfDayMinimizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000).with(MICRO_OF_DAY.minimized()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void microOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(MICRO_OF_DAY.maximized()), is(PlainTime.of(23, 59, 59, 999999789))); } @Test public void microOfDayMaximizedIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000).with(MICRO_OF_DAY.maximized()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void microOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_DAY.decremented()), is(PlainTime.of(19, 45, 30, 123455789))); assertThat( PlainTime.of(0, 0, 0, 789).with(MICRO_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999999789))); } @Test public void microOfDayDecrementedIfFullFraction() { assertThat( PlainTime.of(0).with(MICRO_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999999000))); assertThat( PlainTime.of(0, 0, 0, 1000).with(MICRO_OF_DAY.decremented()), is(PlainTime.of(0))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999999000))); } @Test public void microOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_DAY.incremented()), is(PlainTime.of(19, 45, 30, 123457789))); assertThat( PlainTime.of(23, 59, 59, 999999789) .with(MICRO_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 789))); } @Test public void microOfDayIncrementedIfFullFraction() { assertThat( PlainTime.of(23, 59, 59, 999999000) .with(MICRO_OF_DAY.incremented()), is(PlainTime.of(24))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 1000))); assertThat( PlainTime.of(0).with(MICRO_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 1000))); } @Test public void microOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30, 123456000))); } @Test public void microOfDayAtFloorIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000).with(MICRO_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30, 123456000))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void microOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(MICRO_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 123456999))); } @Test public void microOfDayAtCeilingIfFullFraction() { assertThat( PlainTime.of(19, 45, 30, 123456000).with(MICRO_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 123456999))); assertThat( PlainTime.of(24).with(MICRO_OF_DAY.atCeiling()), is(PlainTime.of(24))); } @Test public void nanoOfSecondMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.minimized()), is(PlainTime.of(19, 45, 30))); } @Test public void nanoOfSecondMinimizedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.minimized()), is(PlainTime.of(24))); } @Test public void nanoOfSecondMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.maximized()), is(PlainTime.of(19, 45, 30, 999999999))); } @Test public void nanoOfSecondMaximizedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.maximized()), is(PlainTime.of(24))); } @Test public void nanoOfSecondDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.decremented()), is(PlainTime.of(19, 45, 30, 123456788))); assertThat( PlainTime.of(0) .with(NANO_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999999999))); } @Test public void nanoOfSecondDecrementedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.decremented()), is(PlainTime.of(23, 59, 59, 999999999))); } @Test public void nanoOfSecondIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.incremented()), is(PlainTime.of(19, 45, 30, 123456790))); assertThat( PlainTime.of(23, 59, 59, 999999999) .with(NANO_OF_SECOND.incremented()), is(PlainTime.of(24))); } @Test public void nanoOfSecondIncrementedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.incremented()), is(PlainTime.of(0, 0, 0, 1))); } @Test public void nanoOfSecondAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.atFloor()), is(PlainTime.of(19, 45, 30, 123456789))); } @Test public void nanoOfSecondAtFloorIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.atFloor()), is(PlainTime.of(24))); } @Test public void nanoOfSecondAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_SECOND.atCeiling()), is(PlainTime.of(19, 45, 30, 123456789))); } @Test public void nanoOfSecondAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_SECOND.atCeiling()), is(PlainTime.of(24))); } @Test public void nanoOfDayMinimized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(NANO_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void nanoOfDayMinimizedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.minimized()), is(PlainTime.of(0))); } @Test public void nanoOfDayMaximized() { assertThat( PlainTime.of(19, 45, 30, 123456789).with(NANO_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void nanoOfDayMaximizedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.maximized()), is(PlainTime.of(24))); } @Test public void nanoOfDayDecremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_DAY.decremented()), is(PlainTime.of(19, 45, 30, 123456788))); assertThat( PlainTime.of(0).with(NANO_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999999999))); } @Test public void nanoOfDayDecrementedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.decremented()), is(PlainTime.of(23, 59, 59, 999999999))); } @Test public void nanoOfDayIncremented() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_DAY.incremented()), is(PlainTime.of(19, 45, 30, 123456790))); assertThat( PlainTime.of(23, 59, 59, 999999999) .with(NANO_OF_DAY.incremented()), is(PlainTime.of(24))); } @Test public void nanoOfDayIncrementedIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.incremented()), is(PlainTime.of(0, 0, 0, 1))); } @Test public void nanoOfDayAtFloor() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_DAY.atFloor()), is(PlainTime.of(19, 45, 30, 123456789))); } @Test public void nanoOfDayAtFloorIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.atFloor()), is(PlainTime.of(24))); } @Test public void nanoOfDayAtCeiling() { assertThat( PlainTime.of(19, 45, 30, 123456789) .with(NANO_OF_DAY.atCeiling()), is(PlainTime.of(19, 45, 30, 123456789))); } @Test public void nanoOfDayAtCeilingIfHour24() { assertThat( PlainTime.of(24).with(NANO_OF_DAY.atCeiling()), is(PlainTime.of(24))); } }