package org.infinispan.partitionhandling; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; import java.util.Map; import org.infinispan.Cache; import org.infinispan.commons.util.CloseableIterator; import org.infinispan.commons.util.Closeables; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.context.Flag; import org.infinispan.distribution.MagicKey; import org.testng.annotations.Test; /** * Tests to make sure that replicated stream pays attention to partition status * * @author wburns * @since 7.0 */ @Test(groups = "functional", testName = "partitionhandling.StreamReplPartitionHandlingTest") public class StreamReplPartitionHandlingTest extends StreamDistPartitionHandlingTest { public StreamReplPartitionHandlingTest() { cacheMode = CacheMode.REPL_SYNC; } @Test(enabled = false) @Override public void testUsingIteratorButPartitionOccursBeforeRetrievingRemoteValues() throws InterruptedException { // This test is disabled since we don't remotely retrieve values } @Test(enabled = false) @Override public void testUsingIteratorButPartitionOccursAfterRetrievingRemoteValues() throws InterruptedException { // This test is disabled since we don't remotely retrieve values } @Override public void testRetrievalWhenPartitionIsDegradedButLocal() { Cache<MagicKey, String> cache0 = cache(0); cache0.put(new MagicKey(cache(1), cache(2)), "not-local"); cache0.put(new MagicKey(cache(0), cache(1)), "local"); splitCluster(new int[]{0, 1}, new int[]{2, 3}); partition(0).assertDegradedMode(); try (CloseableIterator<Map.Entry<MagicKey, String>> iterator = Closeables.iterator(cache0.getAdvancedCache() .withFlags(Flag.CACHE_MODE_LOCAL).entrySet().stream())) { assertNotNull(iterator.next()); assertNotNull(iterator.next()); assertFalse(iterator.hasNext()); } } }