You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2015/08/17 17:10:20 UTC
[41/50] [abbrv] jena git commit: Add more tests of construct quad: 1)
duplication; 3) prefix; 3) short form
Add more tests of construct quad: 1) duplication; 3) prefix; 3) short
form
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/fcbbf9b6
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/fcbbf9b6
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/fcbbf9b6
Branch: refs/heads/JENA-491-construct-quads
Commit: fcbbf9b6549ccabcc9786a9fb59f2f2bde42c2f6
Parents: 54e48f3
Author: confidencesun <co...@gmail.com>
Authored: Fri Aug 14 22:25:41 2015 +0800
Committer: confidencesun <co...@gmail.com>
Committed: Fri Aug 14 22:25:41 2015 +0800
----------------------------------------------------------------------
.../org/apache/jena/sparql/api/TestAPI.java | 83 ++++++++++++++++++++
1 file changed, 83 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/fcbbf9b6/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
index ecc576a..5630804 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
@@ -28,6 +28,7 @@ import org.apache.jena.query.Query;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QueryFactory;
+import org.apache.jena.query.QueryParseException;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.QuerySolutionMap;
import org.apache.jena.query.ResultSet;
@@ -448,6 +449,88 @@ public class TestAPI extends BaseTest
assertTrue(IsoMatcher.isomorphic( expected, result.asDatasetGraph()) );
}
+ // Allow duplicated template quads in execConstructQuads()
+ @Test public void testARQConstructQuad_Duplicate_3() {
+ String queryString = "CONSTRUCT { GRAPH ?g1 {?s ?p ?o} GRAPH ?g1 {?s ?p ?o} } WHERE { ?s ?p ?o. GRAPH ?g1 {?s1 ?p1 ?o1} }";
+ Query q = QueryFactory.create(queryString, Syntax.syntaxARQ);
+
+ QueryExecution qExec = QueryExecutionFactory.create(q, d);
+
+ Iterator<Quad> ts = qExec.execConstructQuads();
+ long count = 0;
+ Quad expected = Quad.create( g1.asNode(), s.asNode(), p.asNode(), o.asNode());
+ while (ts.hasNext()) {
+ count++;
+ Quad qd = ts.next();
+ assertEquals(expected, qd);
+ }
+ assertEquals(6, count); // 6 duplicated quads
+ }
+
+ // Allow duplicated template quads in execConstructQuads()
+ @Test public void testARQConstructQuad_Prefix() {
+ String queryString = "PREFIX : <http://example/ns#> CONSTRUCT { GRAPH :g1 { ?s :p ?o} } WHERE { ?s ?p ?o }";
+ Query q = QueryFactory.create(queryString, Syntax.syntaxARQ);
+
+ QueryExecution qExec = QueryExecutionFactory.create(q, d);
+
+ Iterator<Quad> quads = qExec.execConstructQuads();
+ DatasetGraph result = DatasetGraphFactory.createMem();
+ long count = 0;
+ while (quads.hasNext()) {
+ count++;
+ Quad qd = quads.next();
+ result.add(qd);
+ }
+
+ DatasetGraph expected = DatasetGraphFactory.createMem();
+ expected.add(g1.asNode(), s.asNode(), p.asNode(), o.asNode());
+
+ assertEquals(1, count);
+ assertTrue(IsoMatcher.isomorphic( expected, result) );
+
+ }
+
+ // Test construct triple short form:
+ @Test public void testARQConstructQuad_ShortForm_1() {
+ String queryString = "CONSTRUCT WHERE {?s ?p ?o }";
+ Query q = QueryFactory.create(queryString, Syntax.syntaxARQ);
+
+ QueryExecution qExec = QueryExecutionFactory.create(q, d);
+
+ Model result = ModelFactory.createDefaultModel();
+ qExec.execConstruct(result);
+
+ assertEquals(1, result.size());
+ assertTrue(dft.isIsomorphicWith(result));
+ }
+
+ // Test construct quad short form:
+ @Test public void testARQConstructQuad_ShortForm_2() {
+ String queryString = "CONSTRUCT WHERE { GRAPH ?g {?s ?p ?o} }";
+ Query q = QueryFactory.create(queryString, Syntax.syntaxARQ);
+
+ QueryExecution qExec = QueryExecutionFactory.create(q, d);
+ Dataset result = qExec.execConstructDataset();
+
+ Dataset expected = DatasetFactory.createMem();
+ expected.addNamedModel(g1.getURI(), m);
+
+ assertTrue(IsoMatcher.isomorphic( expected.asDatasetGraph(), result.asDatasetGraph()) );
+ }
+
+ // Test bad construct quad short form:
+ @Test public void testARQConstructQuad_ShortForm_bad() {
+ String queryString = "CONSTRUCT WHERE { GRAPH ?g {?s ?p ?o. FILTER isIRI(?o)} }";
+ try {
+ QueryFactory.create(queryString, Syntax.syntaxARQ);
+ }catch (QueryParseException e){
+ return;
+ }
+ fail("Short form of construct quad MUST be simple graph patterns!");
+ }
+
+
private QueryExecution makeQExec(String queryString)
{
Query q = QueryFactory.create(queryString) ;