static void expireEntries(Cache<?, ?> cache, long expiringTime, FakeTicker ticker) { checkNotNull(ticker); expireEntries(toLocalCache(cache), expiringTime, ticker); }
static void expireEntries(LocalCache<?, ?> cchm, long expiringTime, FakeTicker ticker) { for (Segment<?, ?> segment : cchm.segments) { drainRecencyQueue(segment); } ticker.advance(2 * expiringTime, TimeUnit.MILLISECONDS); long now = ticker.read(); for (Segment<?, ?> segment : cchm.segments) { expireEntries(segment, now); assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment)); assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment)); assertEquals("Segments must be empty by now", 0, segmentSize(segment)); } cchm.processPendingNotifications(); }
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()); }
assertEquals(1, Iterators.size(cache.asMap().values().iterator())); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker); assertEquals("Eviction notifications must be received", 21, removalListener.getCount()); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);
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(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(cache, EXPIRING_TIME, ticker); // ensure that no new notifications are sent assertEquals("Eviction notifications must be received", 10, removalListener.getCount()); }
assertEquals(1, Iterators.size(cache.asMap().values().iterator())); CacheTesting.expireEntries(cache, EXPIRING_TIME, ticker); CacheTesting.expireEntries(cache, EXPIRING_TIME, ticker); assertEquals("Eviction notifications must be received", 21, removalListener.getCount()); CacheTesting.expireEntries(cache, EXPIRING_TIME, ticker);
static void expireEntries(Cache<?, ?> cache, long expiringTime, FakeTicker ticker) { checkNotNull(ticker); expireEntries(toLocalCache(cache), expiringTime, ticker); }
static void expireEntries( LocalCache<?, ?> cchm, long expiringTime, FakeTicker ticker) { for (Segment<?, ?> segment : cchm.segments) { drainRecencyQueue(segment); } ticker.advance(2 * expiringTime, TimeUnit.MILLISECONDS); long now = ticker.read(); for (Segment<?, ?> segment : cchm.segments) { expireEntries(segment, now); assertEquals("Expiration queue must be empty by now", 0, writeQueueSize(segment)); assertEquals("Expiration queue must be empty by now", 0, accessQueueSize(segment)); assertEquals("Segments must be empty by now", 0, segmentSize(segment)); } cchm.processPendingNotifications(); }
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()); }
assertEquals(1, Iterators.size(cache.asMap().values().iterator())); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker); assertEquals("Eviction notifications must be received", 21, removalListener.getCount()); CacheTesting.expireEntries((LoadingCache<?, ?>) cache, EXPIRING_TIME, ticker);