public void conditionEvaluated(EvaluatedCondition<Object> condition) { String description = condition.getDescription(); long elapsedTime = timeUnit.convert(condition.getElapsedTimeInMS(), MILLISECONDS); long remainingTime = timeUnit.convert(condition.getRemainingTimeInMS(), MILLISECONDS); String timeUnitAsString = timeUnit.toString().toLowerCase(); if (condition.isSatisfied()) { System.out.printf("%s after %d %s (remaining time %d %s, last poll interval was %d %s)%n", description, elapsedTime, timeUnitAsString, remainingTime, timeUnitAsString, condition.getPollInterval().getValue(), condition.getPollInterval().getTimeUnitAsString()); } else { System.out.printf("%s (elapsed time %d %s, remaining time %d %s (last poll interval was %d %s))%n", description, elapsedTime, timeUnitAsString, remainingTime, timeUnitAsString, condition.getPollInterval().getValue(), condition.getPollInterval().getTimeUnitAsString()); } } }
@Test public void getTimeoutIsOverriddenWithSystemProperty() { System.setProperty(TIMEOUT_SECONDS_PROPERTY, valueOf(ONE_MINUTE.getValue())); assertThat(getTimeout()).isEqualTo(ONE_MINUTE); }
public final Duration apply(Duration lhs, Duration rhs) { if (lhs == null || rhs == null) { throw new IllegalArgumentException("Duration cannot be null"); } Duration specialDuration = handleSpecialCases(lhs, rhs); if (specialDuration != null) { return specialDuration; } final Duration newDuration; if (lhs.getTimeUnit().ordinal() > rhs.getTimeUnit().ordinal()) { long lhsConverted = rhs.getTimeUnit().convert(lhs.getValue(), lhs.getTimeUnit()); newDuration = new Duration(apply(lhsConverted, rhs.getValue()), rhs.getTimeUnit()); } else if (lhs.getTimeUnit().ordinal() < rhs.getTimeUnit().ordinal()) { long rhsConverted = lhs.getTimeUnit().convert(rhs.getValue(), rhs.getTimeUnit()); newDuration = new Duration(apply(lhs.getValue(), rhsConverted), lhs.getTimeUnit()); } else { // Same time unit newDuration = new Duration(apply(lhs.getValue(), rhs.getValue()), lhs.getTimeUnit()); } return newDuration; }
@Test public void awaitWithAliasActuallyUsesAlias() { System.setProperty(TIMEOUT_SECONDS_PROPERTY, valueOf(ONE_SECOND.getValue())); String alias = testName.getMethodName(); Throwable thrown = catchThrowable(() -> await(alias).until(() -> false)); assertThat(thrown).isInstanceOf(ConditionTimeoutException.class).hasMessageContaining(alias); }
@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 minus_can_subtract_amount_with_same_time_unit() { // When Duration sum = new Duration(4, SECONDS).minus(2, SECONDS); // Then assertThat(sum.getValue(), is(2L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void minus_can_subtract_zero() { // When Duration sum = new Duration(4, SECONDS).minus(Duration.ZERO); // Then assertThat(sum.getValue(), is(4L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@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 plus_can_add_amount_from_lower_time_unit_with_amount_with_greater_time_unit() { // When Duration sum = new Duration(4, MILLISECONDS).plus(2, SECONDS); // Then assertThat(sum.getValue(), is(2004L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void plus_can_add_amount_with_same_time_unit() { // When Duration sum = new Duration(4, SECONDS).plus(2, SECONDS); // Then assertThat(sum.getValue(), is(6L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void plus_can_add_amount() { // When Duration sum = new Duration(4, SECONDS).plus(8); // Then assertThat(sum.getValue(), is(12L)); assertThat(sum.getTimeUnit(), is(SECONDS)); }
@Test public void minus_can_subtract_amount_from_lower_time_unit_with_amount_with_greater_time_unit() { // When Duration sum = new Duration(4000, MILLISECONDS).minus(2, SECONDS); // Then assertThat(sum.getValue(), is(2000L)); assertThat(sum.getTimeUnit(), is(MILLISECONDS)); }
@Test public void zero_cannot_minus_other_duration() { exception.expect(IllegalArgumentException.class); exception.expectMessage("value must be >= 0, was -4000"); // When Duration sum = Duration.ZERO.minus(new Duration(4, SECONDS)); // Then assertThat(sum.getValue(), is(4L)); assertThat(sum.getTimeUnit(), is(SECONDS)); } }