package io.dropwizard.util; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.Test; import java.io.IOException; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; public class DurationTest { @Test public void convertsDays() throws Exception { assertThat(Duration.days(2).toDays()) .isEqualTo(2); assertThat(Duration.days(2).toHours()) .isEqualTo(48); } @Test public void convertsHours() throws Exception { assertThat(Duration.hours(2).toMinutes()) .isEqualTo(120); } @Test public void convertsMinutes() throws Exception { assertThat(Duration.minutes(3).toSeconds()) .isEqualTo(180); } @Test public void convertsSeconds() throws Exception { assertThat(Duration.seconds(2).toMilliseconds()) .isEqualTo(2000); } @Test public void convertsMilliseconds() throws Exception { assertThat(Duration.milliseconds(2).toMicroseconds()) .isEqualTo(2000); } @Test public void convertsMicroseconds() throws Exception { assertThat(Duration.microseconds(2).toNanoseconds()) .isEqualTo(2000); } @Test public void convertsNanoseconds() throws Exception { assertThat(Duration.nanoseconds(2).toNanoseconds()) .isEqualTo(2); } @Test public void parsesDays() throws Exception { assertThat(Duration.parse("1d")) .isEqualTo(Duration.days(1)); assertThat(Duration.parse("1 day")) .isEqualTo(Duration.days(1)); assertThat(Duration.parse("2 days")) .isEqualTo(Duration.days(2)); } @Test public void parsesHours() throws Exception { assertThat(Duration.parse("1h")) .isEqualTo(Duration.hours(1)); assertThat(Duration.parse("1 hour")) .isEqualTo(Duration.hours(1)); assertThat(Duration.parse("2 hours")) .isEqualTo(Duration.hours(2)); } @Test public void parsesMinutes() throws Exception { assertThat(Duration.parse("1m")) .isEqualTo(Duration.minutes(1)); assertThat(Duration.parse("1min")) .isEqualTo(Duration.minutes(1)); assertThat(Duration.parse("2mins")) .isEqualTo(Duration.minutes(2)); assertThat(Duration.parse("1 minute")) .isEqualTo(Duration.minutes(1)); assertThat(Duration.parse("2 minutes")) .isEqualTo(Duration.minutes(2)); } @Test public void parsesSeconds() throws Exception { assertThat(Duration.parse("1s")) .isEqualTo(Duration.seconds(1)); assertThat(Duration.parse("1 second")) .isEqualTo(Duration.seconds(1)); assertThat(Duration.parse("2 seconds")) .isEqualTo(Duration.seconds(2)); } @Test public void parsesMilliseconds() throws Exception { assertThat(Duration.parse("1ms")) .isEqualTo(Duration.milliseconds(1)); assertThat(Duration.parse("1 millisecond")) .isEqualTo(Duration.milliseconds(1)); assertThat(Duration.parse("2 milliseconds")) .isEqualTo(Duration.milliseconds(2)); } @Test public void parsesMicroseconds() throws Exception { assertThat(Duration.parse("1us")) .isEqualTo(Duration.microseconds(1)); assertThat(Duration.parse("1 microsecond")) .isEqualTo(Duration.microseconds(1)); assertThat(Duration.parse("2 microseconds")) .isEqualTo(Duration.microseconds(2)); } @Test public void parsesNanoseconds() throws Exception { assertThat(Duration.parse("1ns")) .isEqualTo(Duration.nanoseconds(1)); assertThat(Duration.parse("1 nanosecond")) .isEqualTo(Duration.nanoseconds(1)); assertThat(Duration.parse("2 nanoseconds")) .isEqualTo(Duration.nanoseconds(2)); } @Test public void parseDurationWithWhiteSpaces() { assertThat(Duration.parse("5 seconds")) .isEqualTo(Duration.seconds(5)); } @Test(expected = IllegalArgumentException.class) public void unableParseWrongDurationCount() { Duration.parse("five seconds"); } @Test(expected = IllegalArgumentException.class) public void unableParseWrongDurationTimeUnit() { Duration.parse("1gs"); } @Test(expected = IllegalArgumentException.class) public void unableParseWrongDurationFormat() { Duration.parse("1 milli second"); } @Test public void isHumanReadable() throws Exception { assertThat(Duration.microseconds(1).toString()) .isEqualTo("1 microsecond"); assertThat(Duration.microseconds(3).toString()) .isEqualTo("3 microseconds"); } @Test public void hasAQuantity() throws Exception { assertThat(Duration.microseconds(12).getQuantity()) .isEqualTo(12); } @Test public void hasAUnit() throws Exception { assertThat(Duration.microseconds(1).getUnit()) .isEqualTo(TimeUnit.MICROSECONDS); } @Test public void isComparable() throws Exception { // both zero assertThat(Duration.nanoseconds(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.nanoseconds(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.microseconds(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.milliseconds(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.seconds(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.minutes(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.hours(0).compareTo(Duration.days(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.nanoseconds(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.microseconds(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.milliseconds(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.seconds(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.minutes(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.hours(0))).isEqualTo(0); assertThat(Duration.days(0).compareTo(Duration.days(0))).isEqualTo(0); // one zero, one negative assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.nanoseconds(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.microseconds(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.milliseconds(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.seconds(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.minutes(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.hours(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.days(0)).isGreaterThan(Duration.days(-1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.days(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.days(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.days(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.seconds(-1)).isLessThan(Duration.days(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.minutes(-1)).isLessThan(Duration.days(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.hours(-1)).isLessThan(Duration.days(0)); assertThat(Duration.days(-1)).isLessThan(Duration.nanoseconds(0)); assertThat(Duration.days(-1)).isLessThan(Duration.microseconds(0)); assertThat(Duration.days(-1)).isLessThan(Duration.milliseconds(0)); assertThat(Duration.days(-1)).isLessThan(Duration.seconds(0)); assertThat(Duration.days(-1)).isLessThan(Duration.minutes(0)); assertThat(Duration.days(-1)).isLessThan(Duration.hours(0)); assertThat(Duration.days(-1)).isLessThan(Duration.days(0)); // one zero, one positive assertThat(Duration.nanoseconds(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.hours(1)); assertThat(Duration.nanoseconds(0)).isLessThan(Duration.days(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.hours(1)); assertThat(Duration.microseconds(0)).isLessThan(Duration.days(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.hours(1)); assertThat(Duration.milliseconds(0)).isLessThan(Duration.days(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.hours(1)); assertThat(Duration.seconds(0)).isLessThan(Duration.days(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.hours(1)); assertThat(Duration.minutes(0)).isLessThan(Duration.days(1)); assertThat(Duration.hours(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.hours(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.hours(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.hours(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.hours(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.hours(0)).isLessThan(Duration.hours(1)); assertThat(Duration.hours(0)).isLessThan(Duration.days(1)); assertThat(Duration.days(0)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.days(0)).isLessThan(Duration.microseconds(1)); assertThat(Duration.days(0)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.days(0)).isLessThan(Duration.seconds(1)); assertThat(Duration.days(0)).isLessThan(Duration.minutes(1)); assertThat(Duration.days(0)).isLessThan(Duration.hours(1)); assertThat(Duration.days(0)).isLessThan(Duration.days(1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.hours(1)).isGreaterThan(Duration.days(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.nanoseconds(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.microseconds(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.milliseconds(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.seconds(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.minutes(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.hours(0)); assertThat(Duration.days(1)).isGreaterThan(Duration.days(0)); // both negative assertThat(Duration.nanoseconds(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.nanoseconds(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.microseconds(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.microseconds(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.microseconds(-2)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.microseconds(-2)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.microseconds(-2)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.microseconds(-2)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.microseconds(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.milliseconds(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.milliseconds(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.milliseconds(-2)).isLessThan(Duration.milliseconds(-1)); assertThat(Duration.milliseconds(-2)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.milliseconds(-2)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.milliseconds(-2)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.milliseconds(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.seconds(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.seconds(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.seconds(-2)).isLessThan(Duration.milliseconds(-1)); assertThat(Duration.seconds(-2)).isLessThan(Duration.seconds(-1)); assertThat(Duration.seconds(-2)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.seconds(-2)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.seconds(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.minutes(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.minutes(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.minutes(-2)).isLessThan(Duration.milliseconds(-1)); assertThat(Duration.minutes(-2)).isLessThan(Duration.seconds(-1)); assertThat(Duration.minutes(-2)).isLessThan(Duration.minutes(-1)); assertThat(Duration.minutes(-2)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.minutes(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.milliseconds(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.seconds(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.minutes(-1)); assertThat(Duration.hours(-2)).isLessThan(Duration.hours(-1)); assertThat(Duration.hours(-2)).isGreaterThan(Duration.days(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.nanoseconds(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.microseconds(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.milliseconds(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.seconds(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.minutes(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.hours(-1)); assertThat(Duration.days(-2)).isLessThan(Duration.days(-1)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.nanoseconds(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.microseconds(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.milliseconds(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.seconds(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.minutes(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.nanoseconds(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.microseconds(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.milliseconds(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.seconds(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.minutes(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.microseconds(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.microseconds(-2)); assertThat(Duration.milliseconds(-1)).isGreaterThan(Duration.milliseconds(-2)); assertThat(Duration.milliseconds(-1)).isGreaterThan(Duration.seconds(-2)); assertThat(Duration.milliseconds(-1)).isGreaterThan(Duration.minutes(-2)); assertThat(Duration.milliseconds(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.milliseconds(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.seconds(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.seconds(-1)).isLessThan(Duration.microseconds(-2)); assertThat(Duration.seconds(-1)).isLessThan(Duration.milliseconds(-2)); assertThat(Duration.seconds(-1)).isGreaterThan(Duration.seconds(-2)); assertThat(Duration.seconds(-1)).isGreaterThan(Duration.minutes(-2)); assertThat(Duration.seconds(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.seconds(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.minutes(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.minutes(-1)).isLessThan(Duration.microseconds(-2)); assertThat(Duration.minutes(-1)).isLessThan(Duration.milliseconds(-2)); assertThat(Duration.minutes(-1)).isLessThan(Duration.seconds(-2)); assertThat(Duration.minutes(-1)).isGreaterThan(Duration.minutes(-2)); assertThat(Duration.minutes(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.minutes(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.hours(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.hours(-1)).isLessThan(Duration.microseconds(-2)); assertThat(Duration.hours(-1)).isLessThan(Duration.milliseconds(-2)); assertThat(Duration.hours(-1)).isLessThan(Duration.seconds(-2)); assertThat(Duration.hours(-1)).isLessThan(Duration.minutes(-2)); assertThat(Duration.hours(-1)).isGreaterThan(Duration.hours(-2)); assertThat(Duration.hours(-1)).isGreaterThan(Duration.days(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.nanoseconds(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.microseconds(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.milliseconds(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.seconds(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.minutes(-2)); assertThat(Duration.days(-1)).isLessThan(Duration.hours(-2)); assertThat(Duration.days(-1)).isGreaterThan(Duration.days(-2)); // both positive assertThat(Duration.nanoseconds(1)).isLessThan(Duration.nanoseconds(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.microseconds(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.milliseconds(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.seconds(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.minutes(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.hours(2)); assertThat(Duration.nanoseconds(1)).isLessThan(Duration.days(2)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.microseconds(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.milliseconds(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.seconds(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.minutes(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.hours(2)); assertThat(Duration.microseconds(1)).isLessThan(Duration.days(2)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.microseconds(2)); assertThat(Duration.milliseconds(1)).isLessThan(Duration.milliseconds(2)); assertThat(Duration.milliseconds(1)).isLessThan(Duration.seconds(2)); assertThat(Duration.milliseconds(1)).isLessThan(Duration.minutes(2)); assertThat(Duration.milliseconds(1)).isLessThan(Duration.hours(2)); assertThat(Duration.milliseconds(1)).isLessThan(Duration.days(2)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.microseconds(2)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.milliseconds(2)); assertThat(Duration.seconds(1)).isLessThan(Duration.seconds(2)); assertThat(Duration.seconds(1)).isLessThan(Duration.minutes(2)); assertThat(Duration.seconds(1)).isLessThan(Duration.hours(2)); assertThat(Duration.seconds(1)).isLessThan(Duration.days(2)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.microseconds(2)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.milliseconds(2)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.seconds(2)); assertThat(Duration.minutes(1)).isLessThan(Duration.minutes(2)); assertThat(Duration.minutes(1)).isLessThan(Duration.hours(2)); assertThat(Duration.minutes(1)).isLessThan(Duration.days(2)); assertThat(Duration.hours(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.hours(1)).isGreaterThan(Duration.microseconds(2)); assertThat(Duration.hours(1)).isGreaterThan(Duration.milliseconds(2)); assertThat(Duration.hours(1)).isGreaterThan(Duration.seconds(2)); assertThat(Duration.hours(1)).isGreaterThan(Duration.minutes(2)); assertThat(Duration.hours(1)).isLessThan(Duration.hours(2)); assertThat(Duration.hours(1)).isLessThan(Duration.days(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.nanoseconds(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.microseconds(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.milliseconds(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.seconds(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.minutes(2)); assertThat(Duration.days(1)).isGreaterThan(Duration.hours(2)); assertThat(Duration.days(1)).isLessThan(Duration.days(2)); assertThat(Duration.nanoseconds(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.microseconds(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.seconds(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.minutes(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.hours(1)); assertThat(Duration.nanoseconds(2)).isLessThan(Duration.days(1)); assertThat(Duration.microseconds(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.microseconds(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.microseconds(2)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.microseconds(2)).isLessThan(Duration.seconds(1)); assertThat(Duration.microseconds(2)).isLessThan(Duration.minutes(1)); assertThat(Duration.microseconds(2)).isLessThan(Duration.hours(1)); assertThat(Duration.microseconds(2)).isLessThan(Duration.days(1)); assertThat(Duration.milliseconds(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.milliseconds(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.milliseconds(2)).isGreaterThan(Duration.milliseconds(1)); assertThat(Duration.milliseconds(2)).isLessThan(Duration.seconds(1)); assertThat(Duration.milliseconds(2)).isLessThan(Duration.minutes(1)); assertThat(Duration.milliseconds(2)).isLessThan(Duration.hours(1)); assertThat(Duration.milliseconds(2)).isLessThan(Duration.days(1)); assertThat(Duration.seconds(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.seconds(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.seconds(2)).isGreaterThan(Duration.milliseconds(1)); assertThat(Duration.seconds(2)).isGreaterThan(Duration.seconds(1)); assertThat(Duration.seconds(2)).isLessThan(Duration.minutes(1)); assertThat(Duration.seconds(2)).isLessThan(Duration.hours(1)); assertThat(Duration.seconds(2)).isLessThan(Duration.days(1)); assertThat(Duration.minutes(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.minutes(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.minutes(2)).isGreaterThan(Duration.milliseconds(1)); assertThat(Duration.minutes(2)).isGreaterThan(Duration.seconds(1)); assertThat(Duration.minutes(2)).isGreaterThan(Duration.minutes(1)); assertThat(Duration.minutes(2)).isLessThan(Duration.hours(1)); assertThat(Duration.minutes(2)).isLessThan(Duration.days(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.milliseconds(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.seconds(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.minutes(1)); assertThat(Duration.hours(2)).isGreaterThan(Duration.hours(1)); assertThat(Duration.hours(2)).isLessThan(Duration.days(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.nanoseconds(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.microseconds(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.milliseconds(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.seconds(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.minutes(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.hours(1)); assertThat(Duration.days(2)).isGreaterThan(Duration.days(1)); // one negative, one positive assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.nanoseconds(-1)).isLessThan(Duration.days(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.microseconds(-1)).isLessThan(Duration.days(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.milliseconds(-1)).isLessThan(Duration.days(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.seconds(-1)).isLessThan(Duration.days(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.minutes(-1)).isLessThan(Duration.days(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.hours(-1)).isLessThan(Duration.days(1)); assertThat(Duration.days(-1)).isLessThan(Duration.nanoseconds(1)); assertThat(Duration.days(-1)).isLessThan(Duration.microseconds(1)); assertThat(Duration.days(-1)).isLessThan(Duration.milliseconds(1)); assertThat(Duration.days(-1)).isLessThan(Duration.seconds(1)); assertThat(Duration.days(-1)).isLessThan(Duration.minutes(1)); assertThat(Duration.days(-1)).isLessThan(Duration.hours(1)); assertThat(Duration.days(-1)).isLessThan(Duration.days(1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.nanoseconds(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.microseconds(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.milliseconds(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.seconds(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.minutes(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.hours(1)).isGreaterThan(Duration.days(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.nanoseconds(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.microseconds(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.milliseconds(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.seconds(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.minutes(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.hours(-1)); assertThat(Duration.days(1)).isGreaterThan(Duration.days(-1)); } @Test public void serializesCorrectlyWithJackson() throws IOException { final ObjectMapper mapper = new ObjectMapper(); assertThat(mapper.writeValueAsString(Duration.nanoseconds(0L))).isEqualTo("\"0 nanoseconds\""); assertThat(mapper.writeValueAsString(Duration.nanoseconds(1L))).isEqualTo("\"1 nanosecond\""); assertThat(mapper.writeValueAsString(Duration.nanoseconds(2L))).isEqualTo("\"2 nanoseconds\""); assertThat(mapper.writeValueAsString(Duration.microseconds(0L))).isEqualTo("\"0 microseconds\""); assertThat(mapper.writeValueAsString(Duration.microseconds(1L))).isEqualTo("\"1 microsecond\""); assertThat(mapper.writeValueAsString(Duration.microseconds(2L))).isEqualTo("\"2 microseconds\""); assertThat(mapper.writeValueAsString(Duration.milliseconds(0L))).isEqualTo("\"0 milliseconds\""); assertThat(mapper.writeValueAsString(Duration.milliseconds(1L))).isEqualTo("\"1 millisecond\""); assertThat(mapper.writeValueAsString(Duration.milliseconds(2L))).isEqualTo("\"2 milliseconds\""); assertThat(mapper.writeValueAsString(Duration.seconds(0L))).isEqualTo("\"0 seconds\""); assertThat(mapper.writeValueAsString(Duration.seconds(1L))).isEqualTo("\"1 second\""); assertThat(mapper.writeValueAsString(Duration.seconds(2L))).isEqualTo("\"2 seconds\""); assertThat(mapper.writeValueAsString(Duration.minutes(0L))).isEqualTo("\"0 minutes\""); assertThat(mapper.writeValueAsString(Duration.minutes(1L))).isEqualTo("\"1 minute\""); assertThat(mapper.writeValueAsString(Duration.minutes(2L))).isEqualTo("\"2 minutes\""); assertThat(mapper.writeValueAsString(Duration.hours(0L))).isEqualTo("\"0 hours\""); assertThat(mapper.writeValueAsString(Duration.hours(1L))).isEqualTo("\"1 hour\""); assertThat(mapper.writeValueAsString(Duration.hours(2L))).isEqualTo("\"2 hours\""); assertThat(mapper.writeValueAsString(Duration.days(0L))).isEqualTo("\"0 days\""); assertThat(mapper.writeValueAsString(Duration.days(1L))).isEqualTo("\"1 day\""); assertThat(mapper.writeValueAsString(Duration.days(2L))).isEqualTo("\"2 days\""); } @Test public void deserializesCorrectlyWithJackson() throws IOException { final ObjectMapper mapper = new ObjectMapper(); assertThat(mapper.readValue("\"0 nanoseconds\"", Duration.class)).isEqualTo(Duration.nanoseconds(0L)); assertThat(mapper.readValue("\"1 nanosecond\"", Duration.class)).isEqualTo(Duration.nanoseconds(1L)); assertThat(mapper.readValue("\"2 nanoseconds\"", Duration.class)).isEqualTo(Duration.nanoseconds(2L)); assertThat(mapper.readValue("\"0 microseconds\"", Duration.class)).isEqualTo(Duration.microseconds(0L)); assertThat(mapper.readValue("\"1 microsecond\"", Duration.class)).isEqualTo(Duration.microseconds(1L)); assertThat(mapper.readValue("\"2 microseconds\"", Duration.class)).isEqualTo(Duration.microseconds(2L)); assertThat(mapper.readValue("\"0 milliseconds\"", Duration.class)).isEqualTo(Duration.milliseconds(0L)); assertThat(mapper.readValue("\"1 millisecond\"", Duration.class)).isEqualTo(Duration.milliseconds(1L)); assertThat(mapper.readValue("\"2 milliseconds\"", Duration.class)).isEqualTo(Duration.milliseconds(2L)); assertThat(mapper.readValue("\"0 seconds\"", Duration.class)).isEqualTo(Duration.seconds(0L)); assertThat(mapper.readValue("\"1 second\"", Duration.class)).isEqualTo(Duration.seconds(1L)); assertThat(mapper.readValue("\"2 seconds\"", Duration.class)).isEqualTo(Duration.seconds(2L)); assertThat(mapper.readValue("\"0 minutes\"", Duration.class)).isEqualTo(Duration.minutes(0L)); assertThat(mapper.readValue("\"1 minutes\"", Duration.class)).isEqualTo(Duration.minutes(1L)); assertThat(mapper.readValue("\"2 minutes\"", Duration.class)).isEqualTo(Duration.minutes(2L)); assertThat(mapper.readValue("\"0 hours\"", Duration.class)).isEqualTo(Duration.hours(0L)); assertThat(mapper.readValue("\"1 hours\"", Duration.class)).isEqualTo(Duration.hours(1L)); assertThat(mapper.readValue("\"2 hours\"", Duration.class)).isEqualTo(Duration.hours(2L)); assertThat(mapper.readValue("\"0 days\"", Duration.class)).isEqualTo(Duration.days(0L)); assertThat(mapper.readValue("\"1 day\"", Duration.class)).isEqualTo(Duration.days(1L)); assertThat(mapper.readValue("\"2 days\"", Duration.class)).isEqualTo(Duration.days(2L)); } }