/** * Create a new instance of the {@link FixedPollInterval}. * * @param pollInterval The poll interval amount * @param unit The time unit */ public FixedPollInterval(long pollInterval, TimeUnit unit) { this(new Duration(pollInterval, unit)); }
/** * Condition has to be evaluated not earlier than <code>timeout</code> before throwing a timeout exception. * * @param timeout the timeout * @param unit the unit * @return the condition factory */ public ConditionFactory atLeast(long timeout, TimeUnit unit) { return atLeast(new Duration(timeout, unit)); }
/** * Sets the default timeout all await statements will use. * * @param timeout the timeout * @param unit the unit */ public static void setDefaultTimeout(long timeout, TimeUnit unit) { defaultWaitConstraint = defaultWaitConstraint.withMaxWaitTime(new Duration(timeout, unit)); }
/** * Add a amount (with the same time unit as the current duration) * * @param amount The amount to add * @return A new amount */ public Duration plus(long amount) { return new Plus().apply(this, unit == null ? FOREVER : new Duration(amount, unit)); }
/** * Divide this duration amount with the given amount * * @param amount The amount * @return A new amount */ public Duration divide(long amount) { return new Divide().apply(this, unit == null ? FOREVER : new Duration(amount, unit)); }
@Test public void duration_is_equal_to_other_duration_if_number_of_milliseconds_are_the_same() { // Given final Duration duration1 = new Duration(1000, MILLISECONDS); final Duration duration2 = new Duration(1, SECONDS); // When final boolean equals = duration1.equals(duration2); // Then assertThat(equals, is(true)); } }
@Test public void plus_can_add_duration() { // When Duration sum = new Duration(4, SECONDS).plus(Duration.FIVE_HUNDRED_MILLISECONDS); // Then assertThat(sum.getValue(), is(4500L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void zero_can_plus_other_duration() { // When Duration sum = Duration.ZERO.plus(new Duration(4, SECONDS)); // Then assertThat(sum.getValue(), is(4L)); assertThat(sum.getTimeUnit(), is(SECONDS)); } }
@Test public void divide_can_divide_amount() { // When Duration sum = new Duration(4, SECONDS).divide(2); // Then assertThat(sum.getValue(), is(2L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void minus_can_subtract_amount() { // When Duration sum = new Duration(4, SECONDS).minus(2); // Then assertThat(sum.getValue(), is(2L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void minus_can_subtract_duration() { // When Duration sum = new Duration(4, SECONDS).minus(Duration.FIVE_HUNDRED_MILLISECONDS); // Then assertThat(sum.getValue(), is(3500L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void plus_can_add_amount_from_greater_time_unit_with_amount_with_lower_time_unit() { // When Duration sum = new Duration(2, SECONDS).plus(4, MILLISECONDS); // Then assertThat(sum.getValue(), is(2004L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void plus_can_add_zero() { // When Duration sum = new Duration(4, SECONDS).plus(Duration.ZERO); // Then assertThat(sum.getValue(), is(4L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void minus_can_subtract_amount_from_greater_time_unit_with_amount_with_lower_time_unit() { // When Duration sum = new Duration(2, SECONDS).minus(4, MILLISECONDS); // Then assertThat(sum.getValue(), is(1996L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void multiply_can_multiply_amount() { // When Duration sum = new Duration(4, SECONDS).multiply(2); // Then assertThat(sum.getValue(), is(8L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void forever_can_plus_with_other_duration() { // When Duration sum = Duration.FOREVER.plus(new Duration(4, SECONDS)); // Then assertThat(sum, sameInstance(Duration.FOREVER)); }
@Test public void minus_can_subtract_forever() { // When Duration sum = new Duration(4, SECONDS).minus(Duration.FOREVER); // Then assertThat(sum, sameInstance(Duration.ZERO)); }
@Test public void plus_can_add_forever() { // When Duration sum = new Duration(4, SECONDS).plus(Duration.FOREVER); // Then assertThat(sum, sameInstance(Duration.FOREVER)); }
@Test public void multiply_can_multiply_zero() { // When Duration sum = new Duration(4, SECONDS).multiply(0); // Then assertThat(sum, sameInstance(Duration.ZERO)); }
@Test public void divide_cannot_divide_zero() { exception.expect(ArithmeticException.class); exception.expectMessage("/ by zero"); // When Duration sum = new Duration(4, SECONDS).divide(0); // Then assertThat(sum, sameInstance(Duration.ZERO)); }