package org.infinispan.config;
import org.infinispan.distribution.ch.TopologyAwareConsistentHash;
import org.infinispan.interceptors.IsMarshallableInterceptor;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.test.AbstractInfinispanTest;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
import java.util.List;
/**
* Tests that configuration elements are overriden when new configurations are
* derived from existing ones.
*
* @author Galder ZamarreƱo
* @since 5.0
*/
@Test(groups = "functional", testName = "config.ConfigurationOverridesTest")
public class ConfigurationOverridesTest extends AbstractInfinispanTest {
public void testConfigOverrides() {
EmbeddedCacheManager cm = TestCacheManagerFactory.createLocalCacheManager(false);
try {
Configuration c = new Configuration().fluent()
.clustering().hash()
.consistentHashClass(TopologyAwareConsistentHash.class)
.versioning().enable()
.build();
Configuration c2 = cm.defineConfiguration("a", c);
assert c2.getConsistentHashClass().equals(
TopologyAwareConsistentHash.class.getName());
assert c2.isEnableVersioning();
c = new Configuration().fluent().dataContainer()
.dataContainerClass(QueryableDataContainer.class).build();
c2 = cm.defineConfiguration("b", c);
assert c2.getDataContainerClass().equals(
QueryableDataContainer.class.getName());
IsMarshallableInterceptor intercept = new IsMarshallableInterceptor();
c = new Configuration().fluent().customInterceptors()
.add(intercept).last().build();
c2 = cm.defineConfiguration("c", c);
List<CustomInterceptorConfig> intercepts = c2.getCustomInterceptors();
assert intercepts.size() == 1;
assert intercepts.get(0).getInterceptor().equals(intercept);
} finally {
cm.stop();
}
}
}