Search in sources :

Example 16 with Employee

use of com.hazelcast.mapreduce.helpers.Employee in project hazelcast by hazelcast.

the class ClientQueryCacheIndexTest method test_entrySet_onIndexedKeys_whenValuesNotCached.

@Test
public void test_entrySet_onIndexedKeys_whenValuesNotCached() {
    String mapName = randomString();
    String cacheName = randomString();
    HazelcastInstance client = factory.newHazelcastClient();
    IMap<Integer, Employee> map = client.getMap(mapName);
    int putCount = 111;
    for (int i = 0; i < putCount; i++) {
        map.put(i, new Employee(i));
    }
    final QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, false);
    // here add index to key. (key --> integer; value --> Employee)
    cache.addIndex("__key", true);
    for (int i = 17; i < putCount; i++) {
        map.remove(i);
    }
    // just choose arbitrary numbers to prove whether #entrySet with predicate is working
    int smallerThan = 17;
    int expectedSize = 17;
    assertEntrySetSizeEventually(expectedSize, new SqlPredicate("__key < " + smallerThan), cache);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) Employee(com.hazelcast.mapreduce.helpers.Employee) SqlPredicate(com.hazelcast.query.SqlPredicate) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 17 with Employee

use of com.hazelcast.mapreduce.helpers.Employee in project hazelcast by hazelcast.

the class ClientQueryCacheIndexTest method test_values_withoutIndex_whenValuesNotCached.

@Test
public void test_values_withoutIndex_whenValuesNotCached() {
    String mapName = randomString();
    String cacheName = randomString();
    HazelcastInstance client = factory.newHazelcastClient();
    IMap<Integer, Employee> map = client.getMap(mapName);
    int putCount = 111;
    for (int i = 0; i < putCount; i++) {
        map.put(i, new Employee(i));
    }
    QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, false);
    for (int i = 17; i < putCount; i++) {
        map.remove(i);
    }
    // just choose arbitrary numbers to prove whether #entrySet with predicate is working
    int smallerThan = 17;
    int expectedSize = 0;
    assertValuesSizeEventually(expectedSize, new SqlPredicate("__key < " + smallerThan), cache);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) Employee(com.hazelcast.mapreduce.helpers.Employee) SqlPredicate(com.hazelcast.query.SqlPredicate) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 18 with Employee

use of com.hazelcast.mapreduce.helpers.Employee in project hazelcast by hazelcast.

the class ClientQueryCacheIndexTest method test_keySet_withPredicate_whenValuesAreNotCached.

@Test
public void test_keySet_withPredicate_whenValuesAreNotCached() {
    String mapName = randomString();
    String cacheName = randomString();
    QueryCacheConfig queryCacheConfig = new QueryCacheConfig(cacheName);
    queryCacheConfig.setDelaySeconds(1);
    queryCacheConfig.setBatchSize(3);
    ClientConfig clientConfig = new ClientConfig();
    clientConfig.addQueryCacheConfig(mapName, queryCacheConfig);
    HazelcastInstance client = factory.newHazelcastClient();
    IMap<Integer, Employee> map = client.getMap(mapName);
    // populate map before construction of query cache
    int putCount = 111;
    for (int i = 0; i < putCount; i++) {
        map.put(i, new Employee(i));
    }
    QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, false);
    cache.addIndex("__key", true);
    // populate map after construction of query cache
    for (int i = putCount; i < 2 * putCount; i++) {
        map.put(i, new Employee(i));
    }
    // just choose arbitrary numbers for querying in order to prove whether #keySet with predicate is correctly working
    int equalsOrBiggerThan = 27;
    int expectedSize = 2 * putCount - equalsOrBiggerThan;
    assertKeySetSizeEventually(expectedSize, new SqlPredicate("__key >= " + equalsOrBiggerThan), cache);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) Employee(com.hazelcast.mapreduce.helpers.Employee) QueryCacheConfig(com.hazelcast.config.QueryCacheConfig) SqlPredicate(com.hazelcast.query.SqlPredicate) ClientConfig(com.hazelcast.client.config.ClientConfig) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Example 19 with Employee

use of com.hazelcast.mapreduce.helpers.Employee in project hazelcast by hazelcast.

the class ClientQueryCacheIndexTest method assertValuesSizeEventually.

private void assertValuesSizeEventually(final int expectedSize, final Predicate predicate, final QueryCache<Integer, Employee> cache) {
    AssertTask task = new AssertTask() {

        @Override
        public void run() throws Exception {
            int size = cache.size();
            Collection<Employee> values = cache.values(predicate);
            assertEquals("cache size = " + size, expectedSize, values.size());
        }
    };
    assertTrueEventually(task, 15);
}
Also used : Employee(com.hazelcast.mapreduce.helpers.Employee) AssertTask(com.hazelcast.test.AssertTask)

Example 20 with Employee

use of com.hazelcast.mapreduce.helpers.Employee in project hazelcast by hazelcast.

the class ClientQueryCacheListenerTest method shouldReceiveEvent_whenListeningKey_withPredicate.

@Test
public void shouldReceiveEvent_whenListeningKey_withPredicate() {
    String mapName = randomString();
    String cacheName = randomString();
    HazelcastInstance instance = factory.newHazelcastClient();
    IMap<Integer, Employee> map = instance.getMap(mapName);
    CountDownLatch numberOfCaughtEvents = new CountDownLatch(1);
    QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, true);
    int keyToListen = 109;
    cache.addEntryListener(new QueryCacheAdditionListener(numberOfCaughtEvents), new SqlPredicate("id > 100"), keyToListen, true);
    int putCount = 111;
    for (int i = 0; i < putCount; i++) {
        map.put(i, new Employee(i));
    }
    assertOpenEventually(numberOfCaughtEvents, 10);
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) Employee(com.hazelcast.mapreduce.helpers.Employee) SqlPredicate(com.hazelcast.query.SqlPredicate) CountDownLatch(java.util.concurrent.CountDownLatch) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Aggregations

Employee (com.hazelcast.mapreduce.helpers.Employee)35 ParallelTest (com.hazelcast.test.annotation.ParallelTest)32 QuickTest (com.hazelcast.test.annotation.QuickTest)32 Test (org.junit.Test)32 SqlPredicate (com.hazelcast.query.SqlPredicate)28 HazelcastInstance (com.hazelcast.core.HazelcastInstance)20 CountDownLatch (java.util.concurrent.CountDownLatch)6 AssertTask (com.hazelcast.test.AssertTask)5 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 ClientConfig (com.hazelcast.client.config.ClientConfig)1 QueryCacheConfig (com.hazelcast.config.QueryCacheConfig)1 IMap (com.hazelcast.core.IMap)1 TestHazelcastInstanceFactory (com.hazelcast.test.TestHazelcastInstanceFactory)1 BigInteger (java.math.BigInteger)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Set (java.util.Set)1