@Test(expected = IllegalStateException.class) public void testCreateCacheNegative() { getDirectMappedCache( -1, CacheEvictionCallback.NULL ); }
@Test(expected = IllegalArgumentException.class) public void testNullValue() { CascadingCache<Object, Object> cache = getDirectMappedCache( 10, CacheEvictionCallback.NULL ); cache.put( "a", null ); }
@Test(expected = IllegalArgumentException.class) public void testContainsValueNull() { CascadingCache<Object, Object> cache = getDirectMappedCache( 10, CacheEvictionCallback.NULL ); cache.containsValue( null ); }
@Test(expected = IllegalArgumentException.class) public void testContainsKeyNull() { CascadingCache<Object, Object> cache = getDirectMappedCache( 10, CacheEvictionCallback.NULL ); cache.containsKey( null ); }
@Test(expected = IllegalArgumentException.class) public void testNullKey() { CascadingCache<Object, Object> cache = getDirectMappedCache( 10, CacheEvictionCallback.NULL ); cache.put( null, "a" ); }
@Test public void testDirectMappedCacheEviction() { TestCacheEvictionCallBack callBack = new TestCacheEvictionCallBack(); CascadingCache<Object, Object> cache = getDirectMappedCache( 10, callBack ); Collider key = new Collider( "key" ); String value = "value"; cache.put( key, value ); assertEquals( 1, cache.size() ); assertEquals( 0, callBack.evictionCounter ); Collider secondKey = new Collider( "anotherKey" ); cache.put( secondKey, value ); assertEquals( 1, cache.size() ); assertEquals( 1, callBack.evictionCounter ); assertTrue( cache.containsKey( secondKey ) ); assertTrue( cache.containsValue( value ) ); assertSame( value, cache.get( secondKey ) ); assertTrue( callBack.evictedEntries.get( 0 ).getKey().equals( key ) ); assertTrue( callBack.evictedEntries.get( 0 ).getValue().equals( value ) ); }
@Test public void testMaxCapacity() { TestCacheEvictionCallBack callBack = new TestCacheEvictionCallBack(); CascadingCache<Object, Object> cache = getDirectMappedCache( 10, callBack ); for( int i = 0; i < cache.getCapacity() + 10; i++ ) cache.put( i, i ); assertEquals( cache.getCapacity(), cache.size() ); assertEquals( 10, callBack.evictionCounter ); }
@Test public void testDirectMappedCache() { CascadingCache<Object, Object> cache = getDirectMappedCache( 10, CacheEvictionCallback.NULL ); assertNotNull( cache ); assertEquals( 0, cache.size() ); String key = "abc"; String value = "def"; cache.put( key, value ); assertEquals( 1, cache.size() ); assertTrue( cache.containsKey( key ) ); assertTrue( cache.containsValue( value ) ); assertSame( value, cache.get( key ) ); Set<Object> keys = cache.keySet(); assertEquals( 1, keys.size() ); assertTrue( keys.contains( key ) ); Collection<Object> values = cache.values(); assertTrue( values.contains( value ) ); cache.clear(); assertEquals( 0, cache.size() ); assertFalse( cache.containsKey( key ) ); assertFalse( cache.containsValue( value ) ); }