use of com.baidu.hugegraph.backend.query.ConditionQuery in project incubator-hugegraph by apache.
the class VertexCoreTest method testScanVertexInPaging.
@Test
public void testScanVertexInPaging() {
HugeGraph graph = graph();
Assume.assumeTrue("Not support scan", storeFeatures().supportsScanToken() || storeFeatures().supportsScanKeyRange());
this.init10VerticesAndCommit();
List<Vertex> vertices = new LinkedList<>();
ConditionQuery query = new ConditionQuery(HugeType.VERTEX);
String backend = graph.backend();
if (backend.equals("cassandra") || backend.equals("scylladb")) {
query.scan(String.valueOf(Long.MIN_VALUE), String.valueOf(Long.MAX_VALUE));
} else {
query.scan(BackendTable.ShardSplitter.START, BackendTable.ShardSplitter.END);
}
query.limit(1);
String page = PageInfo.PAGE_NONE;
while (page != null) {
query.page(page);
Iterator<Vertex> iterator = graph.vertices(query);
while (iterator.hasNext()) {
Vertex vertex = iterator.next();
Assert.assertTrue(query.test((HugeElement) vertex));
vertices.add(vertex);
}
page = PageInfo.pageInfo(iterator);
CloseableIterator.closeIterator(iterator);
}
Assert.assertEquals(10, vertices.size());
}
use of com.baidu.hugegraph.backend.query.ConditionQuery in project incubator-hugegraph by apache.
the class ConditionQueryFlattenTest method testFlattenWithIn.
@Test
public void testFlattenWithIn() {
Id key = IdGenerator.of("c1");
ConditionQuery query = new ConditionQuery(HugeType.VERTEX);
query.query(Condition.in(key, ImmutableList.of("1", "2", "3")));
Assert.assertEquals(1, query.conditions().size());
List<ConditionQuery> queries = ConditionQueryFlatten.flatten(query);
Assert.assertEquals(3, queries.size());
List<Condition> expect = ImmutableList.of(Condition.eq(key, "1"), Condition.eq(key, "2"), Condition.eq(key, "3"));
List<Condition> actual = new ArrayList<>();
for (ConditionQuery q : queries) {
Assert.assertEquals(1, q.conditions().size());
actual.add(q.conditions().iterator().next());
}
Assert.assertEquals(expect, actual);
}
use of com.baidu.hugegraph.backend.query.ConditionQuery in project incubator-hugegraph by apache.
the class ConditionQueryFlattenTest method testFlattenWithNotIn.
@Test
public void testFlattenWithNotIn() {
Id key = IdGenerator.of("c1");
ConditionQuery query = new ConditionQuery(HugeType.VERTEX);
query.query(Condition.nin(key, ImmutableList.of("1", "2", "3")));
Assert.assertEquals(1, query.conditions().size());
List<ConditionQuery> queries = ConditionQueryFlatten.flatten(query);
Assert.assertEquals(1, queries.size());
List<Condition> expect = ImmutableList.of(Condition.neq(key, "1"), Condition.neq(key, "2"), Condition.neq(key, "3"));
Collection<Condition> actual = queries.iterator().next().conditions();
Assert.assertEquals(expect, actual);
}
use of com.baidu.hugegraph.backend.query.ConditionQuery in project incubator-hugegraph by apache.
the class ConditionQueryFlattenTest method testFlattenWithAndTree.
@Test
public void testFlattenWithAndTree() {
Condition c1 = Condition.eq(IdGenerator.of("c1"), "1");
Condition c2 = Condition.eq(IdGenerator.of("c2"), "2");
Condition c3 = Condition.eq(IdGenerator.of("c3"), "3");
Condition c4 = Condition.eq(IdGenerator.of("c4"), "4");
ConditionQuery query = new ConditionQuery(HugeType.VERTEX);
query.query(c1.and(c2).and(c3.and(c4)));
Assert.assertEquals(1, query.conditions().size());
List<ConditionQuery> queries = ConditionQueryFlatten.flatten(query);
Assert.assertEquals(1, queries.size());
List<Collection<Condition>> expect;
expect = ImmutableList.of(ImmutableList.of(c1, c2, c3, c4));
List<Collection<Condition>> actual = new ArrayList<>();
for (ConditionQuery q : queries) {
actual.add(q.conditions());
}
Assert.assertEquals(expect, actual);
}
Aggregations