Search in sources :

Example 21 with CompletionListenerFuture

use of javax.cache.integration.CompletionListenerFuture in project cache2k by cache2k.

the class CacheLoaderTest method shouldLoadSingleExistingEntryUsingLoadAll.

/**
 * Ensure that {@link Cache#loadAll(Set, boolean, javax.cache.integration.CompletionListener)}
 * for an existing single entry will cause it to be reloaded.
 */
@Test
public void shouldLoadSingleExistingEntryUsingLoadAll() throws Exception {
    RecordingCacheLoader<String> cacheLoader = new RecordingCacheLoader<String>();
    cacheLoaderServer.setCacheLoader(cacheLoader);
    String key = "message";
    HashSet<String> keys = new HashSet<>();
    keys.add(key);
    assertThat(cache.containsKey(key), is(false));
    String value = "other";
    cache.put(key, value);
    assertThat(cache.containsKey(key), is(true));
    assertThat(cache.get(key), is(value));
    CompletionListenerFuture future = new CompletionListenerFuture();
    cache.loadAll(keys, true, future);
    // wait for the load to complete
    future.get();
    assertThat(future.isDone(), is(true));
    assertThat(cache.get(key), is(equalTo(key)));
    assertThat(cacheLoader.getLoadCount(), is(1));
    assertThat(cacheLoader.hasLoaded(key), is(true));
}
Also used : CompletionListenerFuture(javax.cache.integration.CompletionListenerFuture) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 22 with CompletionListenerFuture

use of javax.cache.integration.CompletionListenerFuture in project cache2k by cache2k.

the class CacheLoaderWithoutReadThroughTest method shouldNotLoadMultipleNullValuesUsingLoadAll.

/**
 * Ensure that {@link Cache#loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)}
 * won't load <code>null</code> values.
 */
@Test
public void shouldNotLoadMultipleNullValuesUsingLoadAll() throws Exception {
    NullValueCacheLoader<String, String> cacheLoader = new NullValueCacheLoader<>();
    cacheLoaderServer.setCacheLoader(cacheLoader);
    HashSet<String> keys = new HashSet<>();
    keys.add("gudday");
    keys.add("hello");
    keys.add("howdy");
    keys.add("bonjour");
    CompletionListenerFuture future = new CompletionListenerFuture();
    cache.loadAll(keys, false, future);
    // wait for the load to complete
    future.get();
    assertThat(future.isDone(), is(true));
    for (String key : keys) {
        assertThat(cache.containsKey(key), is(false));
    }
}
Also used : CompletionListenerFuture(javax.cache.integration.CompletionListenerFuture) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 23 with CompletionListenerFuture

use of javax.cache.integration.CompletionListenerFuture in project cache2k by cache2k.

the class CacheLoaderWithoutReadThroughTest method shouldLoadSingleMissingEntryUsingLoadAll.

/**
 * Ensure that {@link Cache#loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)}
 * for a non-existent single value will cause it to be loaded.
 */
@Test
public void shouldLoadSingleMissingEntryUsingLoadAll() throws Exception {
    RecordingCacheLoader<String> cacheLoader = new RecordingCacheLoader<String>();
    cacheLoaderServer.setCacheLoader(cacheLoader);
    String key = "message";
    HashSet<String> keys = new HashSet<>();
    keys.add(key);
    assertThat(cache.containsKey(key), is(false));
    CompletionListenerFuture future = new CompletionListenerFuture();
    cache.loadAll(keys, false, future);
    // wait for the load to complete
    future.get();
    assertThat(future.isDone(), is(true));
    assertThat(cache.get(key), is(equalTo(key)));
    assertThat(cacheLoader.getLoadCount(), is(1));
    assertThat(cacheLoader.hasLoaded(key), is(true));
}
Also used : CompletionListenerFuture(javax.cache.integration.CompletionListenerFuture) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 24 with CompletionListenerFuture

use of javax.cache.integration.CompletionListenerFuture in project cache2k by cache2k.

the class CacheLoaderWithoutReadThroughTest method shouldLoadMultipleNonExistingEntryUsingLoadAll.

/**
 * Ensure that {@link Cache#loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)} )}
 * for multiple non-existing entries will be loaded.
 */
@Test
public void shouldLoadMultipleNonExistingEntryUsingLoadAll() throws Exception {
    RecordingCacheLoader<String> cacheLoader = new RecordingCacheLoader<String>();
    cacheLoaderServer.setCacheLoader(cacheLoader);
    HashSet<String> keys = new HashSet<>();
    keys.add("gudday");
    keys.add("hello");
    keys.add("howdy");
    keys.add("bonjour");
    for (String key : keys) {
        assertThat(cache.containsKey(key), is(false));
    }
    CompletionListenerFuture future = new CompletionListenerFuture();
    cache.loadAll(keys, false, future);
    // wait for the load to complete
    future.get();
    assertThat(future.isDone(), is(true));
    assertThat(cacheLoader.getLoadCount(), is(keys.size()));
    for (String key : keys) {
        assertThat(cache.get(key), is(equalTo(key)));
        assertThat(cacheLoader.hasLoaded(key), is(true));
    }
}
Also used : CompletionListenerFuture(javax.cache.integration.CompletionListenerFuture) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 25 with CompletionListenerFuture

use of javax.cache.integration.CompletionListenerFuture in project cache2k by cache2k.

the class CacheLoaderWithoutReadThroughTest method shouldNotLoadWithNullKeysUsingLoadAll.

/**
 * Ensure that {@link Cache#loadAll(java.util.Set, boolean, javax.cache.integration.CompletionListener)}
 * using a <code>null</code> key will raise an exception
 */
@Test
public void shouldNotLoadWithNullKeysUsingLoadAll() throws Exception {
    RecordingCacheLoader<String> cacheLoader = new RecordingCacheLoader<String>();
    cacheLoaderServer.setCacheLoader(cacheLoader);
    try {
        CompletionListenerFuture future = new CompletionListenerFuture();
        cache.loadAll(null, false, future);
        fail("Expected a NullPointerException");
    } catch (NullPointerException e) {
    // SKIP: expected
    } finally {
        assertThat(cacheLoader.getLoadCount(), is(0));
    }
}
Also used : CompletionListenerFuture(javax.cache.integration.CompletionListenerFuture) Test(org.junit.Test)

Aggregations

CompletionListenerFuture (javax.cache.integration.CompletionListenerFuture)32 Test (org.junit.Test)30 HashSet (java.util.HashSet)26 IgniteCacheAbstractTest (org.apache.ignite.internal.processors.cache.IgniteCacheAbstractTest)3 ExecutionException (java.util.concurrent.ExecutionException)2 Duration (javax.cache.expiry.Duration)2 GridCommonAbstractTest (org.apache.ignite.testframework.junits.common.GridCommonAbstractTest)2 TimeStep (com.hazelcast.simulator.test.annotations.TimeStep)1 HashMap (java.util.HashMap)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 MutableConfiguration (javax.cache.configuration.MutableConfiguration)1 CreatedExpiryPolicy (javax.cache.expiry.CreatedExpiryPolicy)1 ExpiryPolicy (javax.cache.expiry.ExpiryPolicy)1 Affinity (org.apache.ignite.cache.affinity.Affinity)1 SqlQuery (org.apache.ignite.cache.query.SqlQuery)1 GridCacheAbstractSelfTest (org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest)1 Transaction (org.apache.ignite.transactions.Transaction)1 TransactionConcurrency (org.apache.ignite.transactions.TransactionConcurrency)1 TransactionIsolation (org.apache.ignite.transactions.TransactionIsolation)1