package org.infinispan.query.config;
import static org.testng.AssertJUnit.assertNotNull;
import org.infinispan.commons.CacheConfigurationException;
import org.infinispan.configuration.cache.CacheMode;
import org.infinispan.manager.CacheContainer;
import org.infinispan.query.backend.QueryInterceptor;
import org.infinispan.test.AbstractInfinispanTest;
import org.infinispan.test.TestingUtil;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
@Test(groups = "functional", testName = "query.config.CacheModeTest")
public class CacheModeTest extends AbstractInfinispanTest {
public void testLocal() {
doTest(CacheMode.LOCAL);
}
public void testReplicated() {
doTest(CacheMode.REPL_SYNC);
}
@Test(expectedExceptions = CacheConfigurationException.class,
expectedExceptionsMessageRegExp = "ISPN(\\d)*: Indexing can not be enabled on caches in Invalidation mode")
public void testInvalidated() {
doTest(CacheMode.INVALIDATION_SYNC);
}
public void testDistributed() {
doTest(CacheMode.DIST_SYNC);
}
private void doTest(CacheMode m) {
CacheContainer cc = null;
try {
cc = TestCacheManagerFactory.createCacheManager(m, true);
QueryInterceptor queryInterceptor =
TestingUtil.findInterceptor(cc.getCache(), QueryInterceptor.class);
assertNotNull("Didn't find a query interceptor in the chain!!", queryInterceptor);
} finally {
TestingUtil.killCacheManagers(cc);
}
}
}