package org.infinispan.cdi.embedded.test.cachemanager.registration; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import java.util.Set; import javax.inject.Inject; import org.infinispan.Cache; import org.infinispan.cdi.embedded.test.DefaultTestEmbeddedCacheManagerProducer; import org.infinispan.cdi.embedded.test.testutil.Deployments; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.test.fwk.TestResourceTrackingListener; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.testng.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.testng.annotations.Listeners; import org.testng.annotations.Test; /** * Tests that configured caches are registered in the corresponding cache manager. * * @author Kevin Pollet <kevin.pollet@serli.com> (C) 2011 SERLI */ @Listeners(TestResourceTrackingListener.class) @Test(groups = "functional", testName = "cdi.test.cachemanager.embedded.registration.CacheRegistrationTest") public class CacheRegistrationTest extends Arquillian { @Deployment public static Archive<?> deployment() { return Deployments.baseDeployment() .addPackage(CacheRegistrationTest.class.getPackage()) .addClass(DefaultTestEmbeddedCacheManagerProducer.class); } @Inject private EmbeddedCacheManager defaultCacheManager; @Inject private Cache<String, String> cache; @VeryLarge @Inject private EmbeddedCacheManager specificCacheManager; public void testCacheRegistrationInDefaultCacheManager() { // Make sure the cache is registered cache.put("foo", "bar"); final Set<String> cacheNames = defaultCacheManager.getCacheConfigurationNames(); assertEquals(cacheNames.size(), 2); assertTrue(cacheNames.contains("small")); assertTrue(cacheNames.contains("large")); } public void testCacheRegistrationInSpecificCacheManager() { // Make sure the cache is registered cache.put("foo", "bar"); final Set<String> cacheNames = specificCacheManager.getCacheConfigurationNames(); assertEquals(cacheNames.size(), 1); assertTrue(cacheNames.contains("very-large")); } }