use of com.hazelcast.query.SampleTestObjects.ValueType in project hazelcast by hazelcast.
the class QueryAdvancedTest method testMapWithIndexAfterShutDown.
@Test
public void testMapWithIndexAfterShutDown() {
Config config = getConfig();
String mapName = "default";
config.getMapConfig(mapName).addIndexConfig(new IndexConfig(IndexType.HASH, "typeName"));
HazelcastInstance[] instances = createHazelcastInstanceFactory(3).newInstances(config);
final IMap<Integer, ValueType> map = instances[0].getMap(mapName);
final int sampleSize1 = 100;
final int sampleSize2 = 30;
int totalSize = sampleSize1 + sampleSize2;
for (int i = 0; i < sampleSize1; i++) {
map.put(i, new ValueType("type" + i));
}
for (int i = sampleSize1; i < totalSize; i++) {
map.put(i, new ValueType("typex"));
}
Collection typexValues = map.values(Predicates.sql("typeName = typex"));
assertEquals(sampleSize2, typexValues.size());
instances[1].shutdown();
assertEquals(totalSize, map.size());
assertTrueEventually(() -> {
final Collection values = map.values(Predicates.sql("typeName = typex"));
assertEquals(sampleSize2, values.size());
});
instances[2].shutdown();
assertEquals(totalSize, map.size());
assertTrueEventually(() -> {
final Collection values = map.values(Predicates.sql("typeName = typex"));
assertEquals(sampleSize2, values.size());
});
}
use of com.hazelcast.query.SampleTestObjects.ValueType in project hazelcast by hazelcast.
the class QueryBasicTest method testInPredicateWithEmptyArray.
@Test(timeout = 1000 * 90)
public void testInPredicateWithEmptyArray() {
TestHazelcastInstanceFactory nodeFactory = createHazelcastInstanceFactory(2);
Config cfg = getConfig();
cfg.setProperty(QueryEngineImpl.DISABLE_MIGRATION_FALLBACK.getName(), "true");
HazelcastInstance instance = nodeFactory.newHazelcastInstance(cfg);
final IMap<String, Value> map = instance.getMap("default");
for (int i = 0; i < 10; i++) {
final Value v = new Value("name" + i, new ValueType("type" + i), i);
map.put("" + i, v);
}
String[] emptyArray = new String[2];
final Predicate predicate = Predicates.newPredicateBuilder().getEntryObject().get("name").in(emptyArray);
final Collection<Value> values = map.values(predicate);
assertEquals(values.size(), 0);
}
use of com.hazelcast.query.SampleTestObjects.ValueType in project hazelcast by hazelcast.
the class QueryBasicTest method issue393SqlInInteger.
@Test(timeout = 1000 * 90)
public void issue393SqlInInteger() {
HazelcastInstance instance = createHazelcastInstance(getConfig());
IMap<String, Value> map = instance.getMap("default");
map.addIndex(IndexType.HASH, "index");
for (int i = 0; i < 4; i++) {
Value v = new Value("name" + i, new ValueType("type" + i), i);
map.put("" + i, v);
}
Predicate predicate = Predicates.sql("index IN (0, 2)");
Collection<Value> values = map.values(predicate);
String[] expectedValues = new String[] { "name0", "name2" };
assertEquals(expectedValues.length, values.size());
List<String> names = new ArrayList<>();
for (Value configObject : values) {
names.add(configObject.getName());
}
String[] array = names.toArray(new String[0]);
Arrays.sort(array);
assertArrayEquals(names.toString(), expectedValues, array);
}
use of com.hazelcast.query.SampleTestObjects.ValueType in project hazelcast by hazelcast.
the class QueryBasicTest method testIndexingEnumAttributeWithSqlIssue597.
/**
* see pull request 616
*/
@Test(timeout = 1000 * 90)
public void testIndexingEnumAttributeWithSqlIssue597() {
HazelcastInstance instance = createHazelcastInstance(getConfig());
IMap<Integer, Value> map = instance.getMap("default");
map.addIndex(IndexType.SORTED, "state");
for (int i = 0; i < 4; i++) {
Value v = new Value(i % 2 == 0 ? State.STATE1 : State.STATE2, new ValueType(), i);
map.put(i, v);
}
Collection<Value> values = map.values(Predicates.sql("state = 'STATE1'"));
int[] expectedValues = new int[] { 0, 2 };
assertEquals(expectedValues.length, values.size());
int[] indexes = new int[2];
int index = 0;
for (Value configObject : values) {
indexes[index++] = configObject.getIndex();
}
Arrays.sort(indexes);
assertArrayEquals(indexes, expectedValues);
}
use of com.hazelcast.query.SampleTestObjects.ValueType in project hazelcast by hazelcast.
the class QueryIndexTest method testInnerIndex.
@Test(timeout = 1000 * 60)
public void testInnerIndex() {
HazelcastInstance instance = createTestHazelcastInstance();
IMap<String, SampleTestObjects.Value> map = instance.getMap("default");
map.addIndex(IndexType.HASH, "name");
map.addIndex(IndexType.HASH, "type.typeName");
for (int i = 0; i < 10; i++) {
Value v = new Value("name" + i, i < 5 ? null : new ValueType("type" + i), i);
map.put("" + i, v);
}
Predicate predicate = Predicates.newPredicateBuilder().getEntryObject().get("type.typeName").in("type8", "type6");
Collection<SampleTestObjects.Value> values = map.values(predicate);
assertEquals(2, values.size());
List<String> typeNames = new ArrayList<>();
for (Value configObject : values) {
typeNames.add(configObject.getType().getTypeName());
}
String[] array = typeNames.toArray(new String[0]);
Arrays.sort(array);
assertArrayEquals(typeNames.toString(), new String[] { "type6", "type8" }, array);
}
Aggregations