@Test
public void testCacheRefreshes() throws Throwable {

  // Initial load
  var a = sut.get();
  assertThat(a, is(INITIAL_VALUE));
  verify(delegate, times(1)).get();
  // Make supplier return new value and progress time enough to trigger refresh
  when(delegate.get()).thenReturn(NEW_VALUE);
  now = now.plus(TIMEOUT).plusSeconds(1);
  // Eventually observe new value
  await().until(() -> sut.get() == NEW_VALUE);
}