@Test
public void testLoaderNotifiesAfterReloading() {
AtomicReference<AuthorizationException> authException = newReference();
ValueLoadedEventHandler handler = new ValueLoadedEventHandler();
Supplier<String> supplier = MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
Suppliers.<String> ofInstance("foo"), 3, TimeUnit.SECONDS, handler);
assertEquals(handler.count.get(), 0);
supplier.get();
assertEquals(handler.count.get(), 1);
supplier.get();
assertEquals(handler.count.get(), 1);
Uninterruptibles.sleepUninterruptibly(4, TimeUnit.SECONDS);
supplier.get();
assertEquals(handler.count.get(), 2);
supplier.get();
assertEquals(handler.count.get(), 2);
supplier.get();
assertEquals(handler.count.get(), 2);
}