You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/10/26 11:36:14 UTC

[48/50] [abbrv] incubator-commonsrdf git commit: more extensive Jena tests

more extensive Jena tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/6fdc9903
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/6fdc9903
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/6fdc9903

Branch: refs/heads/master
Commit: 6fdc9903b70fe8c4cacd7c70c6ed012d93a7d8f9
Parents: 13464e2
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Wed Oct 26 12:10:32 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Wed Oct 26 12:10:32 2016 +0100

----------------------------------------------------------------------
 .../jena/TestJenaGraphToCommonsRDFGraph.java    | 93 +++++++++++++++++---
 1 file changed, 80 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/6fdc9903/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
index 13ee7e7..050de4e 100644
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/TestJenaGraphToCommonsRDFGraph.java
@@ -18,14 +18,22 @@
 
 package org.apache.commons.rdf.jena;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
 
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.BlankNodeOrIRI;
 import org.apache.commons.rdf.api.Graph ;
-import org.apache.commons.rdf.api.RDFTermFactory ;
-import org.apache.jena.riot.Lang ;
+import org.apache.commons.rdf.api.RDFTerm;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.simple.Types;
+import org.apache.jena.riot.Lang;
 import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 import org.junit.After;
@@ -34,7 +42,8 @@ import org.junit.Test;
 
 /** Adapt a Jena Graph after parsing data into it */
 public class TestJenaGraphToCommonsRDFGraph {
-    private Path turtleFile;
+    private static final boolean DEBUG = false;
+	private Path turtleFile;
 
     
     @Before
@@ -55,19 +64,77 @@ public class TestJenaGraphToCommonsRDFGraph {
         org.apache.jena.graph.Graph jGraph = GraphFactory.createGraphMem() ;        
         RDFDataMgr.read(jGraph, turtleFile.toUri().toString()) ;
         
+        JenaFactory factory = new JenaFactory() ;
+        
         // "graph" is a CommonsRDF graph 
-        Graph graph = new JenaFactory().fromJena(jGraph) ;
+        Graph graph = factory.fromJena(jGraph) ;
+        
+        
+        
+        // The below check expected statements from D.ttl
+        
+        JenaIRI p = factory.createIRI("http://example.com/p");
+		JenaIRI s = factory.createIRI("http://example.com/s");
+		JenaLiteral literal123 = factory.createLiteral("123", Types.XSD_INTEGER);
+		assertTrue(graph.contains(s, p, literal123));
+        
+        JenaIRI p1 = factory.createIRI("http://example.com/p1");
+        // Let's look up the BlankNode
+		BlankNodeOrIRI bnode1 = graph.stream(null, p1, null)
+        		.findFirst().map(Triple::getSubject).get();
+        assertTrue(bnode1 instanceof BlankNode);
+        
+        // Verify we can use BlankNode in query again
+        RDFTerm obj = graph.stream(bnode1, p1, null).findFirst().map(Triple::getObject).get();
+        
+        // Let's look up also that nested blank node
+        assertTrue(obj instanceof BlankNode);
+        BlankNode bnode2 = (BlankNode)obj;
         
+        
+        
+        JenaIRI q = factory.createIRI("http://example.com/q");
+        JenaLiteral literalR = factory.createLiteral("r", "en");
+		assertTrue(graph.contains(bnode2, q, literalR));
+        
+
+		// Can we add the same triple again as s/p/o 
+		// without affecting graph size?
+		// Just to be evil we add a blanknode-iri-blanknode statement
+        assertEquals(3, graph.size());
+		graph.add(bnode1, p1, bnode2);
+		assertEquals(3, graph.size());
+        
+		// Add the same Triple again
+		graph.stream(bnode2,null,null).findFirst().ifPresent(graph::add);
+		assertEquals(3, graph.size());
+		
+		
         // Add to CommonsRDF Graph
-        RDFTermFactory rft = new JenaFactory() ;
-        graph.add(rft.createIRI("http://example/s2"),
-                  rft.createIRI("http://example/p2"),
-                  rft.createLiteral("foo")) ;
-//        System.out.println("==== Write CommonsRDF graph\n") ;
-//        graph.stream().forEach(System.out::println) ;        
-//        System.out.println("\n==== Write Jena graph directly\n") ;
-        // And its in the Jena graph
-        RDFDataMgr.write(System.out, jGraph, Lang.TTL) ;
+        JenaIRI s2 = factory.createIRI("http://example/s2");
+		JenaIRI p2 = factory.createIRI("http://example/p2");
+		JenaLiteral foo = factory.createLiteral("foo");
+		graph.add(s2,
+        		  p2,
+        		  foo) ;
+		assertEquals(4, graph.size());
+		assertTrue(graph.contains(s2,p2,foo));
+        
+        // Verify the corresponding Jena Nodes are in Jena graph
+        assertTrue(jGraph.contains(s2.asJenaNode(), p2.asJenaNode(), foo.asJenaNode()));
+        
+        if (DEBUG) {
+	        System.out.println("==== Write CommonsRDF graph\n") ;
+	        graph.stream().forEach(System.out::println) ;        
+	        // And its in the Jena graph
+	        System.out.println("\n==== Write Jena graph directly\n") ;
+	        RDFDataMgr.write(System.out, jGraph, Lang.TTL) ;
+        }
+        
+        // Can stream modify the jGraph? Let's try to remove..
+        assertFalse(jGraph.isEmpty());
+        graph.stream().forEach(graph::remove);
+        assertTrue(jGraph.isEmpty());
     }
 }