package org.infinispan.persistence; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.persistence.dummy.DummyInMemoryStoreConfigurationBuilder; import org.infinispan.test.MultipleCacheManagersTest; import org.testng.annotations.Test; /** * This test aims to ensure that a replicated cache with a shared loader, when using passivation and eviction, doesn't * remove entries from the cache store when activating. */ @Test(testName = "persistence.ReplicatedSharedEvictingLoaderTest", groups = "functional") public class ReplicatedSharedEvictingLoaderTest extends MultipleCacheManagersTest { @Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder c = getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC); c .persistence() .passivation(true) .addStore(DummyInMemoryStoreConfigurationBuilder.class) .shared(true) .storeName("ReplicatedSharedEvictingLoaderTest"); createCluster(c, 2); waitForClusterToForm(); } public void testRemovalFromCacheStoreOnEvict() { cache(0).put("k", "v"); assert "v".equals(cache(0).get("k")); assert "v".equals(cache(1).get("k")); cache(0).evict("k"); cache(1).evict("k"); assert "v".equals(cache(0).get("k")); assert "v".equals(cache(1).get("k")); } }