@Test public void asyncExpiry_bounded() { AsyncExpiry<Integer, Integer> expiry = makeAsyncExpiry( Long.MAX_VALUE, Long.MAX_VALUE, Long.MAX_VALUE); CompletableFuture<Integer> future = CompletableFuture.completedFuture(100); assertThat(expiry.expireAfterCreate(0, future, 1L), is(MAXIMUM_EXPIRY)); assertThat(expiry.expireAfterUpdate(0, future, 1L, 2L), is(MAXIMUM_EXPIRY)); assertThat(expiry.expireAfterRead(0, future, 1L, 2L), is(MAXIMUM_EXPIRY)); }
@Test public void asyncExpiry_pending() { AsyncExpiry<Integer, Integer> expiry = makeAsyncExpiry(ONE_MINUTE, ONE_MINUTE, ONE_MINUTE); CompletableFuture<Integer> future = new CompletableFuture<Integer>(); assertThat(expiry.expireAfterCreate(0, future, 1L), is(ASYNC_EXPIRY)); verify(expiry.delegate, never()).expireAfterCreate(any(), any(), anyLong()); assertThat(expiry.expireAfterUpdate(0, future, 1L, 2L), is(ASYNC_EXPIRY)); verify(expiry.delegate, never()).expireAfterUpdate(any(), any(), anyLong(), anyLong()); assertThat(expiry.expireAfterRead(0, future, 1L, 2L), is(ASYNC_EXPIRY)); verify(expiry.delegate, never()).expireAfterRead(any(), any(), anyLong(), anyLong()); }
@Test public void asyncExpiry_completed() { AsyncExpiry<Integer, Integer> expiry = makeAsyncExpiry( ONE_MINUTE, 2 * ONE_MINUTE, 3 * ONE_MINUTE); CompletableFuture<Integer> future = CompletableFuture.completedFuture(100); assertThat(expiry.expireAfterCreate(0, future, 1L), is(ONE_MINUTE)); verify(expiry.delegate).expireAfterCreate(0, 100, 1L); assertThat(expiry.expireAfterUpdate(0, future, 1L, 2L), is(2 * ONE_MINUTE)); verify(expiry.delegate).expireAfterUpdate(0, 100, 1L, 2L); assertThat(expiry.expireAfterRead(0, future, 1L, 2L), is(3 * ONE_MINUTE)); verify(expiry.delegate).expireAfterRead(0, 100, 1L, 2L); }