package com.mysema.rdfbean.virtuoso;
import org.junit.Ignore;
import org.junit.Test;
import com.mysema.commons.lang.CloseableIterator;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.model.*;
public class GraphQueryTest extends AbstractConnectionTest {
private static final QNODE<ID> subject = new QNODE<ID>(ID.class, "s");
private static final QNODE<UID> predicate = new QNODE<UID>(UID.class, "p");
private static final QNODE<NODE> object = new QNODE<NODE>(NODE.class, "o");
private RDFQuery query() {
return new RDFQueryImpl(connection);
}
@Test
public void Pattern_With_Parameters() {
CloseableIterator<STMT> stmts = query()
.where(Blocks.SPOC)
.set(QNODE.s, new UID(TEST.NS))
.limit(1)
.construct(Blocks.SPO);
try {
while (stmts.hasNext()) {
System.err.println(stmts.next());
}
} finally {
stmts.close();
}
}
@Test
public void Patterns() {
query().where(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object))
.limit(1)
.construct(Blocks.pattern(subject, predicate, object));
}
@Test
public void Patterns_as_Group() {
query().where(
Blocks.group(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object)))
.limit(1)
.construct(Blocks.pattern(subject, predicate, object));
}
@Test
@Ignore
public void Two_Patterns() {
query().where(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object))
.limit(1)
.construct(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object));
}
@Test
@Ignore
public void Group() {
query().where(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object))
.limit(1)
.construct(
Blocks.pattern(subject, RDF.type, RDFS.Class),
Blocks.pattern(subject, predicate, object));
}
}