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 2018/03/08 21:34:53 UTC

[6/8] jena git commit: JENA-1500, JENA-1499: Tests for empty graph behaviour.

JENA-1500, JENA-1499: Tests for empty graph behaviour.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ca943ee2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ca943ee2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ca943ee2

Branch: refs/heads/master
Commit: ca943ee2f61668208c8769fbbf4e98d5a0b17c1d
Parents: c06971f
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Mar 8 15:54:45 2018 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Mar 8 16:06:49 2018 +0000

----------------------------------------------------------------------
 .../sparql/core/AbstractDatasetGraphTests.java  | 28 ++++++-
 .../sparql/core/TestDatasetGraphCopyAdd.java    |  1 -
 .../jena/sparql/core/TestDatasetGraphLink.java  | 81 ++++++++++++++++++++
 3 files changed, 107 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/ca943ee2/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphTests.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphTests.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphTests.java
index 02fc8fa..10f416f 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphTests.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/AbstractDatasetGraphTests.java
@@ -31,8 +31,6 @@ import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.graph.Triple ;
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.core.Quad ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 import org.apache.jena.sparql.sse.SSE ;
 import org.junit.Test ;
@@ -272,6 +270,32 @@ public abstract class AbstractDatasetGraphTests
         
         assertTrue(dsg.isEmpty()) ;
         assertFalse(dsg.containsGraph(gn)) ;
+    }
+    
+    // Quad delete causes graph to not be visable.
+    // Not valid for all datasets (e.g. DatasetGraphMapLink)
+    @Test public void emptyGraph_1() {
+        DatasetGraph dsg = emptyDataset() ;
+        Node gn = NodeFactory.createURI("http://example/g") ;
+        Quad q = SSE.parseQuad("(:g :s :p :o)");
+        
+        dsg.add(q);
+        List<Node> nodes1 = Iter.toList(dsg.listGraphNodes());
+        assertEquals(1, nodes1.size());
+        dsg.delete(q);
+        List<Node> nodes2 = Iter.toList(dsg.listGraphNodes());
+        assertEquals(0, nodes2.size());
+    }
+    
+    @Test public void emptyGraph_2() {
+        DatasetGraph dsg = emptyDataset() ;
+        Node gn = NodeFactory.createURI("http://example/g") ;
+        Quad q = SSE.parseQuad("(:g :s :p :o)");
+        
+        dsg.add(q);
+        assertTrue(dsg.containsGraph(gn));
         
+        dsg.delete(q);
+        assertFalse(dsg.containsGraph(gn));
     }
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/ca943ee2/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphCopyAdd.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphCopyAdd.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphCopyAdd.java
index 481eca0..17e55f3 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphCopyAdd.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphCopyAdd.java
@@ -29,7 +29,6 @@ public class TestDatasetGraphCopyAdd extends AbstractDatasetGraphTests
     @Override
     protected DatasetGraph emptyDataset() { return DatasetGraphFactory.create() ; }
     
-    
     @Test public void copyAdd_01() {
         Graph graph = SSE.parseGraph("(graph (:s :p :o))") ;
         Node g = SSE.parseNode(":g") ;

http://git-wip-us.apache.org/repos/asf/jena/blob/ca943ee2/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphLink.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphLink.java b/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphLink.java
new file mode 100644
index 0000000..008034f
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/core/TestDatasetGraphLink.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.core;
+
+import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.graph.Graph ;
+import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.sse.SSE ;
+import static org.junit.Assert.*  ;
+
+import java.util.List;
+
+import org.junit.Test ;
+
+public class TestDatasetGraphLink extends AbstractDatasetGraphTests 
+{
+    @Override
+    protected DatasetGraph emptyDataset() { return DatasetGraphFactory.createGeneral() ; }
+
+    // Change the graph after adding should affect the linked graph.
+    // c.f. TestDatasetGraphCopyAdd.copyAdd_01
+    @Test public void linkAdd_01() {
+        Graph graph = SSE.parseGraph("(graph (:s :p :o))") ;
+        Node g = SSE.parseNode(":g") ;
+        DatasetGraph dsg = emptyDataset() ;
+        dsg.addGraph(g, graph);
+        graph.clear(); 
+        assertTrue(graph.isEmpty()) ;
+        assertTrue(dsg.getGraph(g).isEmpty()) ;
+    }
+    
+    // Empty graphs are visiable.
+    @Override
+    @Test public void emptyGraph_1() { }
+    @Test public void emptyGraph_1_link() { 
+        DatasetGraph dsg = emptyDataset() ;
+        Node gn = NodeFactory.createURI("http://example/g") ;
+        Quad q = SSE.parseQuad("(:g :s :p :o)");
+        dsg.add(q);
+        List<Node> nodes1 = Iter.toList(dsg.listGraphNodes());
+        assertEquals(1, nodes1.size());
+
+        // Variation on emptyGraph_1
+        dsg.delete(q);
+        List<Node> nodes2 = Iter.toList(dsg.listGraphNodes());
+        assertEquals(1, nodes2.size());
+    }
+
+    @Override
+    @Test public void emptyGraph_2() { }
+    @Test public void emptyGraph_2_link() {
+        DatasetGraph dsg = emptyDataset() ;
+        Node gn = NodeFactory.createURI("http://example/g") ;
+        Quad q = SSE.parseQuad("(:g :s :p :o)");
+        
+        dsg.add(q);
+        assertTrue(dsg.containsGraph(gn));
+        
+        // Variation on emptyGraph_2
+        dsg.delete(q);
+        assertTrue(dsg.containsGraph(gn));
+    }
+
+}