public class ConnectionBackoffTest {
private final Network network = Mockito.mock(Network.class);
- private final Clock fixedClock = Clock.fixed(Instant.now(), ZoneId.systemDefault());
+ private final Instant now = Instant.now();
+ private final Clock fixedClock = Clock.fixed(now, ZoneId.systemDefault());
private final ConnectionBackoff connectionBackoff = new ConnectionBackoff(fixedClock);
@Test
@Test
public void firstConnectionIsImmediatelyPossible() {
MatcherAssert.assertThat(connectionBackoff.getBackoff(network), Matchers.is(0L));
+ MatcherAssert.assertThat(connectionBackoff.getConnectionTime(network), Matchers.is(now.toEpochMilli()));
}
@Test
public void afterTheFirstFailedConnectionBackoffIsOneMinute() {
connectionBackoff.connectionFailed(network);
MatcherAssert.assertThat(connectionBackoff.getBackoff(network), Matchers.is(60000L));
+ MatcherAssert.assertThat(connectionBackoff.getConnectionTime(network), Matchers.is(now.toEpochMilli() + 60000));
}
@Test
connectionBackoff.connectionFailed(network);
connectionBackoff.connectionFailed(network);
MatcherAssert.assertThat(connectionBackoff.getBackoff(network), Matchers.is(72000L));
+ MatcherAssert.assertThat(connectionBackoff.getConnectionTime(network), Matchers.is(now.toEpochMilli() + 72000));
}
@Test
connectionBackoff.connectionFailed(network);
connectionBackoff.connectionSuccessful(network);
MatcherAssert.assertThat(connectionBackoff.getBackoff(network), Matchers.is(0L));
+ MatcherAssert.assertThat(connectionBackoff.getConnectionTime(network), Matchers.is(now.toEpochMilli()));
}
@Test
connectionBackoff.connectionFailed(network);
}
MatcherAssert.assertThat(connectionBackoff.getBackoff(network), Matchers.is(3600000L));
+ MatcherAssert.assertThat(connectionBackoff.getConnectionTime(network), Matchers.is(now.toEpochMilli() + 3600000));
}
}