Java 类com.google.common.cache.TestingRemovalListeners.CountingRemovalListener 实例源码

项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-mock    文件:CacheExpirationTest.java   
private void checkExpiration(LoadingCache<String, Integer> cache, WatchedCreatorLoader loader,
    FakeTicker ticker, CountingRemovalListener<String, Integer> removalListener) {

  for (int i = 0; i < 10; i++) {
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
  }

  for (int i = 0; i < 10; i++) {
    loader.reset();
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
    assertFalse("Creator should not have been called @#" + i, loader.wasCalled());
  }

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);

  assertEquals("Map must be empty by now", 0, cache.size());
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
  // ensure that no new notifications are sent
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
private void checkExpiration(LoadingCache<String, Integer> cache, WatchedCreatorLoader loader,
    FakeTicker ticker, CountingRemovalListener<String, Integer> removalListener) {

  for (int i = 0; i < 10; i++) {
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
  }

  for (int i = 0; i < 10; i++) {
    loader.reset();
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
    assertFalse("Creator should not have been called @#" + i, loader.wasCalled());
  }

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);

  assertEquals("Map must be empty by now", 0, cache.size());
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
  // ensure that no new notifications are sent
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumSize(MAX_SIZE)
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache = CacheBuilder.newBuilder()
      .maximumWeight(2 * MAX_SIZE)
      .weigher(constantWeigher(2))
      .removalListener(removalListener)
      .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava-libraries    文件:CacheExpirationTest.java   
private void checkExpiration(LoadingCache<String, Integer> cache, WatchedCreatorLoader loader,
    FakeTicker ticker, CountingRemovalListener<String, Integer> removalListener) {

  for (int i = 0; i < 10; i++) {
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
  }

  for (int i = 0; i < 10; i++) {
    loader.reset();
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
    assertFalse("Creator should not have been called @#" + i, loader.wasCalled());
  }

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);

  assertEquals("Map must be empty by now", 0, cache.size());
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
  // ensure that no new notifications are sent
  assertEquals("Eviction notifications must be received", 10,
      removalListener.getCount());
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumSize(MAX_SIZE)
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheExpirationTest.java   
private void checkExpiration(
    LoadingCache<String, Integer> cache,
    WatchedCreatorLoader loader,
    FakeTicker ticker,
    CountingRemovalListener<String, Integer> removalListener) {

  for (int i = 0; i < 10; i++) {
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
  }

  for (int i = 0; i < 10; i++) {
    loader.reset();
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
    assertFalse("Creator should not have been called @#" + i, loader.wasCalled());
  }

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);

  assertEquals("Map must be empty by now", 0, cache.size());
  assertEquals("Eviction notifications must be received", 10, removalListener.getCount());

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
  // ensure that no new notifications are sent
  assertEquals("Eviction notifications must be received", 10, removalListener.getCount());
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxSize() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumSize(MAX_SIZE)
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheEvictionTest.java   
public void testEviction_maxWeight() {
  CountingRemovalListener<Integer, Integer> removalListener = countingRemovalListener();
  IdentityLoader<Integer> loader = identityLoader();
  LoadingCache<Integer, Integer> cache =
      CacheBuilder.newBuilder()
          .maximumWeight(2 * MAX_SIZE)
          .weigher(constantWeigher(2))
          .removalListener(removalListener)
          .build(loader);
  for (int i = 0; i < 2 * MAX_SIZE; i++) {
    cache.getUnchecked(i);
    assertTrue(cache.size() <= MAX_SIZE);
  }

  assertEquals(MAX_SIZE, CacheTesting.accessQueueSize(cache));
  assertEquals(MAX_SIZE, cache.size());
  CacheTesting.processPendingNotifications(cache);
  assertEquals(MAX_SIZE, removalListener.getCount());
  CacheTesting.checkValidState(cache);
}
项目:guava    文件:CacheExpirationTest.java   
private void checkExpiration(
    LoadingCache<String, Integer> cache,
    WatchedCreatorLoader loader,
    FakeTicker ticker,
    CountingRemovalListener<String, Integer> removalListener) {

  for (int i = 0; i < 10; i++) {
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
  }

  for (int i = 0; i < 10; i++) {
    loader.reset();
    assertEquals(Integer.valueOf(VALUE_PREFIX + i), cache.getUnchecked(KEY_PREFIX + i));
    assertFalse("Creator should not have been called @#" + i, loader.wasCalled());
  }

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);

  assertEquals("Map must be empty by now", 0, cache.size());
  assertEquals("Eviction notifications must be received", 10, removalListener.getCount());

  CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
  // ensure that no new notifications are sent
  assertEquals("Eviction notifications must be received", 10, removalListener.getCount());
}
项目:guava-mock    文件:CacheLoadingTest.java   
public void testReloadAfterFailure() throws ExecutionException {
  final AtomicInteger count = new AtomicInteger();
  final Exception e = new IllegalStateException("exception to trigger failure on first load()");
  CacheLoader<Integer, String> failOnceFunction = new CacheLoader<Integer, String>() {

    @Override
    public String load(Integer key) throws Exception {
      if (count.getAndIncrement() == 0) {
        throw e;
      }
      return key.toString();
    }
  };
  CountingRemovalListener<Integer, String> removalListener = countingRemovalListener();
  LoadingCache<Integer, String> cache = CacheBuilder.newBuilder()
      .removalListener(removalListener)
      .build(failOnceFunction);

  try {
    cache.getUnchecked(1);
    fail();
  } catch (UncheckedExecutionException ue) {
    assertSame(e, ue.getCause());
  }

  assertEquals("1", cache.getUnchecked(1));
  assertEquals(0, removalListener.getCount());

  count.set(0);
  cache.refresh(2);
  checkLoggedCause(e);

  assertEquals("2", cache.getUnchecked(2));
  assertEquals(0, removalListener.getCount());

}
项目:guava-mock    文件:CacheEvictionTest.java   
public void testEviction_overflow() {
  CountingRemovalListener<Object, Object> removalListener = countingRemovalListener();
  IdentityLoader<Object> loader = identityLoader();
  LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(1L << 31)
      .weigher(constantWeigher(Integer.MAX_VALUE))
      .removalListener(removalListener)
      .build(loader);
  cache.getUnchecked(objectWithHash(0));
  cache.getUnchecked(objectWithHash(0));
  CacheTesting.processPendingNotifications(cache);
  assertEquals(1, removalListener.getCount());
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testExpiringGet_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runExpirationTest(cache, loader, ticker, removalListener);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testExpiringGet_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runExpirationTest(cache, loader, ticker, removalListener);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:guava-mock    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterBoth() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:guava-mock    文件:CacheBuilderTest.java   
@GwtIncompatible // CacheTesting
public void testNullCache() {
  CountingRemovalListener<Object, Object> listener = countingRemovalListener();
  LoadingCache<Object, Object> nullCache = new CacheBuilder<Object, Object>()
      .maximumSize(0)
      .removalListener(listener)
      .build(identityLoader());
  assertEquals(0, nullCache.size());
  Object key = new Object();
  assertSame(key, nullCache.getUnchecked(key));
  assertEquals(1, listener.getCount());
  assertEquals(0, nullCache.size());
  CacheTesting.checkEmpty(nullCache.asMap());
}
项目:googles-monorepo-demo    文件:CacheLoadingTest.java   
public void testReloadAfterFailure() throws ExecutionException {
  final AtomicInteger count = new AtomicInteger();
  final Exception e = new IllegalStateException("exception to trigger failure on first load()");
  CacheLoader<Integer, String> failOnceFunction = new CacheLoader<Integer, String>() {

    @Override
    public String load(Integer key) throws Exception {
      if (count.getAndIncrement() == 0) {
        throw e;
      }
      return key.toString();
    }
  };
  CountingRemovalListener<Integer, String> removalListener = countingRemovalListener();
  LoadingCache<Integer, String> cache = CacheBuilder.newBuilder()
      .removalListener(removalListener)
      .build(failOnceFunction);

  try {
    cache.getUnchecked(1);
    fail();
  } catch (UncheckedExecutionException ue) {
    assertSame(e, ue.getCause());
  }

  assertEquals("1", cache.getUnchecked(1));
  assertEquals(0, removalListener.getCount());

  count.set(0);
  cache.refresh(2);
  checkLoggedCause(e);

  assertEquals("2", cache.getUnchecked(2));
  assertEquals(0, removalListener.getCount());

}
项目:googles-monorepo-demo    文件:CacheEvictionTest.java   
public void testEviction_overflow() {
  CountingRemovalListener<Object, Object> removalListener = countingRemovalListener();
  IdentityLoader<Object> loader = identityLoader();
  LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(1L << 31)
      .weigher(constantWeigher(Integer.MAX_VALUE))
      .removalListener(removalListener)
      .build(loader);
  cache.getUnchecked(objectWithHash(0));
  cache.getUnchecked(objectWithHash(0));
  CacheTesting.processPendingNotifications(cache);
  assertEquals(1, removalListener.getCount());
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testExpiringGet_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runExpirationTest(cache, loader, ticker, removalListener);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testExpiringGet_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runExpirationTest(cache, loader, ticker, removalListener);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:googles-monorepo-demo    文件:CacheExpirationTest.java   
public void testRemovalScheduler_expireAfterBoth() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
项目:googles-monorepo-demo    文件:CacheBuilderTest.java   
@GwtIncompatible // CacheTesting
public void testNullCache() {
  CountingRemovalListener<Object, Object> listener = countingRemovalListener();
  LoadingCache<Object, Object> nullCache = new CacheBuilder<Object, Object>()
      .maximumSize(0)
      .removalListener(listener)
      .build(identityLoader());
  assertEquals(0, nullCache.size());
  Object key = new Object();
  assertSame(key, nullCache.getUnchecked(key));
  assertEquals(1, listener.getCount());
  assertEquals(0, nullCache.size());
  CacheTesting.checkEmpty(nullCache.asMap());
}
项目:guava-libraries    文件:CacheLoadingTest.java   
public void testReloadAfterFailure() throws ExecutionException {
  final AtomicInteger count = new AtomicInteger();
  final Exception e = new IllegalStateException("exception to trigger failure on first load()");
  CacheLoader<Integer, String> failOnceFunction = new CacheLoader<Integer, String>() {

    @Override
    public String load(Integer key) throws Exception {
      if (count.getAndIncrement() == 0) {
        throw e;
      }
      return key.toString();
    }
  };
  CountingRemovalListener<Integer, String> removalListener = countingRemovalListener();
  LoadingCache<Integer, String> cache = CacheBuilder.newBuilder()
      .removalListener(removalListener)
      .build(failOnceFunction);

  try {
    cache.getUnchecked(1);
    fail();
  } catch (UncheckedExecutionException ue) {
    assertSame(e, ue.getCause());
  }

  assertEquals("1", cache.getUnchecked(1));
  assertEquals(0, removalListener.getCount());

  count.set(0);
  cache.refresh(2);
  checkLoggedCause(e);

  assertEquals("2", cache.getUnchecked(2));
  assertEquals(0, removalListener.getCount());

}
项目:guava-libraries    文件:CacheEvictionTest.java   
public void testEviction_overflow() {
  CountingRemovalListener<Object, Object> removalListener = countingRemovalListener();
  IdentityLoader<Object> loader = identityLoader();
  LoadingCache<Object, Object> cache = CacheBuilder.newBuilder()
      .concurrencyLevel(1)
      .maximumWeight(1L << 31)
      .weigher(constantWeigher(Integer.MAX_VALUE))
      .removalListener(removalListener)
      .build(loader);
  cache.getUnchecked(objectWithHash(0));
  cache.getUnchecked(objectWithHash(0));
  CacheTesting.processPendingNotifications(cache);
  assertEquals(1, removalListener.getCount());
}
项目:guava-libraries    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:guava-libraries    文件:CacheExpirationTest.java   
public void testExpiration_expireAfterAccess() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  checkExpiration(cache, loader, ticker, removalListener);
}
项目:guava-libraries    文件:CacheExpirationTest.java   
public void testExpiringGet_expireAfterWrite() {
  FakeTicker ticker = new FakeTicker();
  CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
  WatchedCreatorLoader loader = new WatchedCreatorLoader();
  LoadingCache<String, Integer> cache = CacheBuilder.newBuilder()
      .expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
      .removalListener(removalListener)
      .ticker(ticker)
      .build(loader);
  runExpirationTest(cache, loader, ticker, removalListener);
}