package org.infinispan.api.flags;
import static org.infinispan.context.Flag.CACHE_MODE_LOCAL;
import java.lang.reflect.Method;
import org.infinispan.AdvancedCache;
import org.infinispan.configuration.cache.CacheMode;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.distribution.MagicKey;
import org.infinispan.persistence.UnnecessaryLoadingTest;
import org.infinispan.persistence.dummy.DummyInMemoryStoreConfigurationBuilder;
import org.infinispan.test.fwk.CleanupAfterMethod;
import org.testng.annotations.Test;
/**
* FlagsEnabledTest for non transactional caches.
*
* @author Pedro Ruivo
* @since 6.0
*/
@Test(groups = "functional", testName = "api.flags.NonTxFlagsEnabledTest")
@CleanupAfterMethod
public class NonTxFlagsEnabledTest extends FlagsEnabledTest {
public NonTxFlagsEnabledTest() {
super("non-tx-replication");
}
@Override
@Test(enabled = false, description = "non transactional cache")
public void testReplicateSkipCacheLoaderWithinTxInCoordinator(Method m) throws Exception {
}
@Override
@Test(enabled = false, description = "non transactional cache")
public void testReplicateSkipCacheLoaderWithinTxInNonCoordinator(Method m) throws Exception {
}
public void testCacheLocalInNonOwner() {
addClusterEnabledCacheManager(getConfigurationBuilder());
waitForClusterToForm(cacheName);
final AdvancedCache<Object, String> cache1 = advancedCache(0, cacheName);
final AdvancedCache<Object, String> cache2 = advancedCache(1, cacheName);
final AdvancedCache<Object, String> cache3 = advancedCache(2, cacheName);
final Object key = new MagicKey("k-no", cache1);
cache3.withFlags(CACHE_MODE_LOCAL).put(key, "value");
assertCacheValue(cache3, key, "value");
assertCacheValue(cache1, key, null);
assertCacheValue(cache2, key, null);
}
@Override
protected void createCacheManagers() throws Throwable {
ConfigurationBuilder builder = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, false);
builder
.persistence().addStore(DummyInMemoryStoreConfigurationBuilder.class);
createClusteredCaches(2, cacheName, builder);
}
private ConfigurationBuilder getConfigurationBuilder() {
ConfigurationBuilder builder = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, false);
builder
.persistence().addStore(UnnecessaryLoadingTest.CountingStoreConfigurationBuilder.class)
.persistence().addStore(DummyInMemoryStoreConfigurationBuilder.class);
return builder;
}
}