package com.lordofthejars.nosqlunit.infinispan.integration; import static com.lordofthejars.nosqlunit.infinispan.ManagedInfinispan.ManagedInfinispanRuleBuilder.newManagedInfinispanRule; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.io.ByteArrayInputStream; import org.infinispan.client.hotrod.RemoteCacheManager; import org.infinispan.commons.api.BasicCache; import org.junit.After; import org.junit.ClassRule; import org.junit.Test; import com.lordofthejars.nosqlunit.infinispan.InfinispanOperation; import com.lordofthejars.nosqlunit.infinispan.ManagedInfinispan; import com.lordofthejars.nosqlunit.infinispan.User; public class WhenManagedInfinispanOperationsAreRequired { private static final String OBJECT_DATA = "{\n" + " \"data\": [\n" + " {\n" + " \"key\":\"key1\",\n" + " \"implementation\":\"com.lordofthejars.nosqlunit.infinispan.User\",\n" + " \"value\": {\n" + " \"username\":\"alex\"\n" + " } \n" + " },\n" + " {\n" + " \"key\":\"key2\",\n" + " \"value\":3\n" + " }"+ " ]\n" + "}"; @ClassRule public static ManagedInfinispan managedInfinispan = newManagedInfinispanRule().infinispanPath("/opt/infinispan-server").build(); private RemoteCacheManager remoteCacheManager = new RemoteCacheManager(); @After public void tearDown() { BasicCache<Object, Object> cache = remoteCacheManager.getCache(); cache.clear(); } @Test public void data_should_be_inserted_into_infinispan() { BasicCache<Object, Object> cache = remoteCacheManager.getCache(); InfinispanOperation infinispanOperation = new InfinispanOperation(cache); infinispanOperation.insert(new ByteArrayInputStream(OBJECT_DATA.getBytes())); BasicCache<String, User> usedCache = infinispanOperation.connectionManager(); assertThat(usedCache.get("key1"), is(new User("alex"))); } @Test public void data_should_be_removed_from_infinispan() { BasicCache<Object, Object> cache = remoteCacheManager.getCache(); InfinispanOperation infinispanOperation = new InfinispanOperation(cache); infinispanOperation.insert(new ByteArrayInputStream(OBJECT_DATA.getBytes())); infinispanOperation.deleteAll(); BasicCache<String, String> usedCache = infinispanOperation.connectionManager(); assertThat(usedCache.size(), is(0)); } @Test public void data_should_be_compared_between_expected_and_current_data() { BasicCache<Object, Object> cache = remoteCacheManager.getCache(); InfinispanOperation infinispanOperation = new InfinispanOperation(cache); infinispanOperation.insert(new ByteArrayInputStream(OBJECT_DATA.getBytes())); boolean sameDataset = infinispanOperation.databaseIs(new ByteArrayInputStream(OBJECT_DATA.getBytes())); assertThat(sameDataset, is(true)); } }