package org.infinispan.it.compatibility; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertTrue; import java.util.Map; import java.util.Set; import org.infinispan.Cache; import org.infinispan.client.hotrod.RemoteCache; import org.infinispan.commons.api.BasicCache; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.test.AbstractInfinispanTest; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** * Test compatibility between embedded caches and Hot Rod endpoints for * operations that retrieve data in bulk, i.e. keySet, entrySet, getBulk...etc. * * @author Jiří Holuša * @since 6.0 */ @Test(groups = "functional", testName = "it.compatibility.EmbeddedHotRodBulkTest") public class EmbeddedHotRodBulkTest extends AbstractInfinispanTest { CompatibilityCacheFactory<Integer, Integer> cacheFactory; @BeforeClass protected void setup() throws Exception { cacheFactory = new CompatibilityCacheFactory<Integer, Integer>(CacheMode.LOCAL).setup(); } @AfterClass protected void teardown() { CompatibilityCacheFactory.killCacheFactories(cacheFactory); } private void populateCacheManager(BasicCache cache) { for (int i = 0; i < 100; i++) { cache.put(i, i); } } public void testEmbeddedPutHotRodGetBulk() { Cache<Integer, Integer> embedded = cacheFactory.getEmbeddedCache(); RemoteCache<Integer, Integer> remote = cacheFactory.getHotRodCache(); populateCacheManager(embedded); Map<Integer, Integer> get = remote.getBulk(); assertEquals(100, get.size()); for(int i = 0; i < 100; i++) { assertTrue(get.containsValue(i)); assertTrue(get.containsKey(i)); } } public void testEmbeddedPutHotRodGetBulkWithSize() { Cache<Integer, Integer> embedded = cacheFactory.getEmbeddedCache(); RemoteCache<Integer, Integer> remote = cacheFactory.getHotRodCache(); populateCacheManager(embedded); Map<Integer, Integer> get = remote.getBulk(50); assertEquals(50, get.size()); } public void testEmbeddedPutHotRodKeySet() { Cache<Integer, Integer> embedded = cacheFactory.getEmbeddedCache(); RemoteCache<Integer, Integer> remote = cacheFactory.getHotRodCache(); populateCacheManager(embedded); Set<Integer> keySet = remote.keySet(); assertEquals(100, keySet.size()); for(int i = 0; i < 100; i++) { assertTrue(keySet.contains(i)); } } public void testHotRodPutEmbeddedKeySet() { Cache<Integer, Integer> embedded = cacheFactory.getEmbeddedCache(); RemoteCache<Integer, Integer> remote = cacheFactory.getHotRodCache(); populateCacheManager(remote); Set<Integer> keySet = embedded.keySet(); assertEquals(100, keySet.size()); for(int i = 0; i < 100; i++) { assertTrue(keySet.contains(i)); } } }