package org.infinispan.jcache.remote;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.hotRodCacheConfiguration;
import java.net.URI;
import java.util.Properties;
import javax.cache.CacheException;
import javax.cache.CacheManager;
import javax.cache.Caching;
import javax.cache.configuration.MutableConfiguration;
import javax.cache.spi.CachingProvider;
import org.infinispan.client.hotrod.test.SingleHotRodServerTest;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
public class JCacheCreateCachePredefinedTest extends SingleHotRodServerTest {
static String CACHE_NAME_UNTOUCHED = "jcache-remote-predefined-untouched";
static String CACHE_NAME_TOUCHED = "jcache-remote-predefined-touched";
private CacheManager jcacheManager;
@Override
protected EmbeddedCacheManager createCacheManager() throws Exception {
EmbeddedCacheManager cm = TestCacheManagerFactory.createCacheManager();
cm.defineConfiguration(CACHE_NAME_UNTOUCHED, hotRodCacheConfiguration().build());
cm.defineConfiguration(CACHE_NAME_TOUCHED, hotRodCacheConfiguration().build());
return cm;
}
@Override
protected void setup() throws Exception {
super.setup();
CachingProvider provider = Caching.getCachingProvider();
URI name = URI.create(JCacheCreateCachePredefinedTest.class.getName());
ClassLoader cl = JCacheCreateCachePredefinedTest.class.getClassLoader();
Properties properties = new Properties();
properties.put("infinispan.client.hotrod.server_list", hotrodServer.getHost() + ":" + hotrodServer.getPort());
properties.put("infinispan.jcache.remote.managed_access", "false");
jcacheManager = provider.getCacheManager(name, cl, properties);
}
@Test(expectedExceptions = CacheException.class, expectedExceptionsMessageRegExp = ".*ISPN021015:.*")
public void testCreateCachePredefinedTouched() {
jcacheManager.getCache(CACHE_NAME_TOUCHED); // touch it
jcacheManager.createCache(CACHE_NAME_TOUCHED, new MutableConfiguration<>());
}
@Test(expectedExceptions = CacheException.class, expectedExceptionsMessageRegExp = ".*ISPN021052:.*")
public void testCreateCachePredefinedUntouched() {
jcacheManager.createCache(CACHE_NAME_UNTOUCHED, new MutableConfiguration<>());
}
}