@Test public void testCleanUpObsoleteEntries() throws InterruptedException { // Use more than one entry to detect ConcurrentModificationException ObjectCache<String, String> cache = createCacheWith4Entries(1); Thread.sleep(3); cache.checkCleanUpObsoleteEntries(); assertEquals(0, cache.size()); assertEquals(4, cache.getCountExpired()); }
@Test public void testExpired() throws InterruptedException { ObjectCache<String, String> cache = new ObjectCache(ObjectCache.ReferenceType.STRONG, 4, 1); cache.put("1", "a"); Thread.sleep(3); assertNull(cache.get("1")); assertEquals(0, cache.size()); assertEquals(1, cache.getCountExpired()); }
private ObjectCache<String, String> createCacheWith4Entries(int expirationMillis) { ObjectCache<String, String> cache = new ObjectCache(ObjectCache.ReferenceType.STRONG, 4, expirationMillis); cache.put("1", "a"); cache.put("2", "b"); cache.put("3", "c"); cache.put("4", "d"); assertEquals(4, cache.size()); return cache; } }
@Test public void testMaxSize() { ObjectCache<String, String> cache = createCacheWith4Entries(0); cache.put("5", "e"); assertEquals(4, cache.size()); assertNull(cache.get("1")); assertEquals(cache.get("5"), "e"); assertEquals(1, cache.getCountEvicted()); }