@Test
void timeBased() {

    final Consumer<String> mock = mock(Consumer.class);
    final Reloadable<String> r = Reloadable.with(() -> UUID.randomUUID()
        .toString())
        .reloadAfter(Duration.ofSeconds(5))
        .finishWith(mock)
        .async()
        .build();
    final Either<Throwable, String> result = r.get();
    assertThat(result.get()).isInstanceOf(String.class);
    verify(mock).accept(any());
    final String value = result.get();
    assertThat(r.get()
        .get()).isEqualTo(value); // new call, no change
    verify(mock, times(1)).accept(any()); // still called just once
}