You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by st...@apache.org on 2017/02/10 16:55:31 UTC
[29/45] commons-rdf git commit: COMMONSRDF-55: More tests
COMMONSRDF-55: More tests
Project: http://git-wip-us.apache.org/repos/asf/commons-rdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-rdf/commit/98da22af
Tree: http://git-wip-us.apache.org/repos/asf/commons-rdf/tree/98da22af
Diff: http://git-wip-us.apache.org/repos/asf/commons-rdf/diff/98da22af
Branch: refs/heads/COMMONSRDF-47
Commit: 98da22af438a1c0eaadf3cac7cd5e80f285fea4b
Parents: bb26473
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Feb 1 15:06:16 2017 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Feb 1 15:06:16 2017 +0000
----------------------------------------------------------------------
.../commons/rdf/jena/impl/AbstractQuadLike.java | 9 +++--
.../rdf/jena/DefaultGraphInQuadTest.java | 41 +++++++++++++++++++-
2 files changed, 46 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/98da22af/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
----------------------------------------------------------------------
diff --git a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
index 3100ae6..6127ee6 100644
--- a/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
+++ b/jena/src/main/java/org/apache/commons/rdf/jena/impl/AbstractQuadLike.java
@@ -22,15 +22,12 @@ import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
-import org.apache.commons.rdf.api.BlankNodeOrIRI;
-import org.apache.commons.rdf.api.IRI;
import org.apache.commons.rdf.api.QuadLike;
import org.apache.commons.rdf.api.RDFTerm;
import org.apache.commons.rdf.jena.JenaQuad;
import org.apache.commons.rdf.jena.JenaQuadLike;
import org.apache.commons.rdf.jena.JenaRDF;
import org.apache.commons.rdf.jena.JenaTriple;
-import org.apache.jena.graph.Factory;
import org.apache.jena.graph.Triple;
import org.apache.jena.sparql.core.Quad;
@@ -57,6 +54,12 @@ abstract class AbstractQuadLike<S extends RDFTerm, P extends RDFTerm, O extends
/**
* COMMONSRDF-55 - special handling of urn:x-arq:DefaultGraph and friends
+ * <p>
+ * This can recognize <urn:x-arq:DefaultGraph> and
+ * <urn:x-arq:DefaultGraphNode> from any IRI instance, so they can be
+ * replaced with Optional.empty(). Note that this code does not hardcode the
+ * internal Jena IRIs but uses Jena's constants {@link Quad#defaultGraphIRI}
+ * and {@link Quad#defaultGraphNodeGenerated}.
*/
private static class DefaultGraphChecker {
// Fixed UUID for comparison of defaultGraphNodeGenerated
http://git-wip-us.apache.org/repos/asf/commons-rdf/blob/98da22af/jena/src/test/java/org/apache/commons/rdf/jena/DefaultGraphInQuadTest.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/DefaultGraphInQuadTest.java b/jena/src/test/java/org/apache/commons/rdf/jena/DefaultGraphInQuadTest.java
index 739d7a4..477f460 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/DefaultGraphInQuadTest.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/DefaultGraphInQuadTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.simple.SimpleRDF;
import org.apache.jena.graph.Node;
import org.apache.jena.graph.NodeFactory;
import org.apache.jena.sparql.core.Quad;
@@ -53,6 +54,42 @@ public class DefaultGraphInQuadTest {
assertEquals(Quad.defaultGraphIRI, q.asJenaQuad().getGraph());
assertFalse(q.getGraphName().isPresent());
}
+
+ @Test
+ public void createFromForeignDefaultGraph() throws Exception {
+ // What if <urn:x-arq:DefaultGraph> appear in a non-Jena IRI?
+ IRI foreignDefaultGraph = new SimpleRDF().createIRI(Quad.defaultGraphIRI.getURI());
+ JenaQuad q = rdf.createQuad(foreignDefaultGraph, example, example, example);
+ assertTrue(q.asJenaQuad().isDefaultGraph());
+ assertEquals(Quad.defaultGraphIRI, q.asJenaQuad().getGraph());
+ assertFalse(q.getGraphName().isPresent());
+ }
+
+
+ @Test
+ public void createFromDefaultGraphNodeGeneratedIRINode() throws Exception {
+ // What if <urn:x-arq:DefaultGraphNode> appear as an IRI instance?
+ IRI foreignDefaultGraph = rdf.createIRI(Quad.defaultGraphNodeGenerated.getURI());
+ JenaQuad q = rdf.createQuad(foreignDefaultGraph, example, example, example);
+ assertTrue(q.asJenaQuad().isDefaultGraph());
+ assertFalse(q.getGraphName().isPresent());
+ // Unfortunately Quad.defaultGraphNodeGenerated is not preserved
+ // within JenaQuad
+ //assertEquals(Quad.defaultGraphNodeGenerated, q.asJenaQuad().getGraph());
+ }
+
+ @Test
+ public void createFromDefaultGraphNodeGeneratedIRIString() throws Exception {
+ // What if <urn:x-arq:DefaultGraphNode> appear in a non-Jena IRI?
+ IRI foreignDefaultGraph = (IRI) rdf.asRDFTerm((Quad.defaultGraphNodeGenerated));
+ JenaQuad q = rdf.createQuad(foreignDefaultGraph, example, example, example);
+ assertTrue(q.asJenaQuad().isDefaultGraph());
+ assertFalse(q.getGraphName().isPresent());
+ // Unfortunately Quad.defaultGraphNodeGenerated is not preserved
+ // within JenaQuad
+ assertEquals(Quad.defaultGraphNodeGenerated, q.asJenaQuad().getGraph());
+ }
+
@Test
public void defaultGraphIRI() throws Exception {
@@ -64,11 +101,13 @@ public class DefaultGraphInQuadTest {
@Test
public void defaultGraphNodeGenerated() throws Exception {
- // defaultGraphNodeGenerated might appear in parser output
+ // <urn:x-arq:DefaultGraphNode> might appear in parser output
Quad jenaQuad = Quad.create(Quad.defaultGraphNodeGenerated, exampleJena, exampleJena, exampleJena);
JenaQuad q = rdf.asQuad(jenaQuad);
assertFalse(q.getGraphName().isPresent());
assertTrue(q.asJenaQuad().isDefaultGraph());
+ // Preserves <urn:x-arq:DefaultGraphNode>
+ assertEquals(Quad.defaultGraphNodeGenerated, q.asJenaQuad().getGraph());
}
@Test