package org.openstack.atlas.api.caching; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Ehcache; import net.sf.ehcache.Element; import org.junit.*; import org.junit.experimental.runners.Enclosed; import org.junit.runner.RunWith; @RunWith(Enclosed.class) public class AuthCacheTest { @Ignore public abstract static class AuthCacheTestBase { CacheManager cacheManager = new CacheManager(); Cache cache; @Before public void setUp() { cacheManager.removalAll(); cache = new Cache("testCache", 20000, true, false, 5, 2); cacheManager.addCache((Ehcache) cache); continueSetup(); } @After public void tearDown() { cacheManager.shutdown(); } public abstract void continueSetup(); } public static class WhenVerifyingConfiguration extends AuthCacheTestBase { @Override public void continueSetup() { cache = cacheManager.getCache("testCache"); } @Test public void should_be_able_to_retrieves_a_custom_cache() { Assert.assertNotNull(cache); } @Test public void should_be_able_to_get_all_cache_names() { String[] cacheNames = cacheManager.getCacheNames(); Assert.assertEquals(1, cacheNames.length); Assert.assertEquals("testCache", cacheNames[0]); } } public static class WhenWritingValuesToTheCache extends AuthCacheTestBase { Element element; @Override public void continueSetup() { cache = cacheManager.getCache("testCache"); element = new Element("key1", "value1"); cache.put(element); } @Test public void should_be_able_to_retrieves_the_custom_value_by_a_key() { Assert.assertEquals(element, cache.get("key1")); } } }