use of com.hazelcast.query.SqlPredicate in project hazelcast by hazelcast.
the class ClientQueryCacheListenerTest method shouldReceiveEvent_whenListening_withPredicate.
@Test
public void shouldReceiveEvent_whenListening_withPredicate() {
String mapName = randomString();
String cacheName = randomString();
HazelcastInstance instance = factory.newHazelcastClient();
IMap<Integer, Employee> map = instance.getMap(mapName);
CountDownLatch numberOfCaughtEvents = new CountDownLatch(10);
final QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, true);
cache.addEntryListener(new QueryCacheAdditionListener(numberOfCaughtEvents), new SqlPredicate("id > 100"), true);
final int putCount = 111;
for (int i = 0; i < putCount; i++) {
map.put(i, new Employee(i));
}
assertOpenEventually(numberOfCaughtEvents, 10);
}
use of com.hazelcast.query.SqlPredicate in project hazelcast by hazelcast.
the class ClientQueryCacheMethodsWithPredicateTest method test_values.
@Test
public void test_values() {
String mapName = randomString();
String cacheName = randomString();
HazelcastInstance instance = getInstance();
IMap<Integer, Employee> map = instance.getMap(mapName);
// populate map before construction of query cache
int count = 111;
for (int i = 0; i < count; i++) {
map.put(i, new Employee(i));
}
QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, true);
cache.addIndex("id", true);
// populate map after construction of query cache
for (int i = count; i < 2 * count; 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 * count - equalsOrBiggerThan;
assertValuesSizeEventually(expectedSize, new SqlPredicate("id >= " + equalsOrBiggerThan), cache);
}
use of com.hazelcast.query.SqlPredicate in project hazelcast by hazelcast.
the class ClientQueryCacheMethodsWithPredicateTest method test_keySet_onRemovedIndexes.
@Test
public void test_keySet_onRemovedIndexes() {
String mapName = randomString();
String cacheName = randomString();
HazelcastInstance instance = getInstance();
IMap<Integer, Employee> map = instance.getMap(mapName);
int count = 111;
for (int i = 0; i < count; i++) {
map.put(i, new Employee(i));
}
QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, true);
cache.addIndex("id", true);
for (int i = 17; i < count; i++) {
map.remove(i);
}
// just choose arbitrary numbers to prove whether #keySet with predicate is working
int smallerThan = 17;
int expectedSize = 17;
assertKeySetSizeEventually(expectedSize, new SqlPredicate("id < " + smallerThan), cache);
}
use of com.hazelcast.query.SqlPredicate in project hazelcast by hazelcast.
the class ClientQueryCacheMethodsWithPredicateTest method test_entrySet_whenIncludeValueFalse.
@Test
public void test_entrySet_whenIncludeValueFalse() {
String mapName = randomString();
String cacheName = randomString();
HazelcastInstance instance = getInstance();
IMap<Integer, Employee> map = instance.getMap(mapName);
int count = 111;
for (int i = 0; i < count; i++) {
map.put(i, new Employee(i));
}
QueryCache<Integer, Employee> cache = map.getQueryCache(cacheName, TRUE_PREDICATE, false);
cache.addIndex("id", true);
for (int i = 17; i < count; i++) {
map.remove(i);
}
// just choose arbitrary numbers to prove whether #entrySet with predicate is working
int smallerThan = 17;
int expectedSize = 0;
assertEntrySetSizeEventually(expectedSize, new SqlPredicate("id < " + smallerThan), cache);
}
use of com.hazelcast.query.SqlPredicate in project hazelcast by hazelcast.
the class ClientQueryCacheMethodsWithPredicateTest method test_keySet_whenIncludeValueFalse.
@Test
public void test_keySet_whenIncludeValueFalse() {
String mapName = randomString();
String cacheName = randomString();
HazelcastInstance instance = getInstance();
IMap<Integer, Employee> map = instance.getMap(mapName);
// populate map before construction of query cache
int count = 111;
for (int i = 0; i < count; 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 = count; i < 2 * count; 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 * count - equalsOrBiggerThan;
assertKeySetSizeEventually(expectedSize, new SqlPredicate("__key >= " + equalsOrBiggerThan), cache);
}
Aggregations