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/09/05 15:36:12 UTC

[6/6] incubator-commonsrdf git commit: Jena and RDF4j integratoin test

Jena and RDF4j integratoin test


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

Branch: refs/heads/rdf4j-jena-compat
Commit: 84c703204170f11b9b4410add47fa723744e7f80
Parents: d7b7c78
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Sep 5 16:34:45 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Sep 5 16:35:45 2016 +0100

----------------------------------------------------------------------
 integration-tests/pom.xml                       | 67 +++++++++++++++++
 .../rdf/integrationtests/JenaRDF4JTest.java     | 78 ++++++++++++++++++++
 pom.xml                                         |  1 +
 3 files changed, 146 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/84c70320/integration-tests/pom.xml
----------------------------------------------------------------------
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
new file mode 100644
index 0000000..196f4d5
--- /dev/null
+++ b/integration-tests/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.apache.commons</groupId>
+		<artifactId>commons-rdf-parent</artifactId>
+		<version>0.3.0-incubating-SNAPSHOT</version>
+	</parent>
+	<artifactId>commons-rdf-integration-tests</artifactId>
+	<dependencies>
+	<dependency>
+		<groupId>${project.groupId}</groupId>
+		<artifactId>commons-rdf-api</artifactId>
+		<version>${project.version}</version>
+	</dependency>
+
+	<dependency>
+		<groupId>${project.groupId}</groupId>
+		<artifactId>commons-rdf-simple</artifactId>
+		<version>${project.version}</version>
+	</dependency>
+	<dependency>
+		<groupId>${project.groupId}</groupId>
+		<artifactId>commons-rdf-rdf4j</artifactId>
+		<version>${project.version}</version>
+	</dependency>
+	<dependency>
+		<groupId>${project.groupId}</groupId>
+		<artifactId>commons-rdf-jena</artifactId>
+		<version>${project.version}</version>
+	</dependency>
+	<dependency>
+		<groupId>${project.groupId}</groupId>
+		<artifactId>commons-rdf-api</artifactId>
+		<version>${project.version}</version>
+		<type>test-jar</type>
+		<scope>test</scope>
+	</dependency>	
+	<dependency>
+		<groupId>junit</groupId>
+		<artifactId>junit</artifactId>
+		<scope>test</scope>
+	</dependency>
+		
+</dependencies>
+	
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/84c70320/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
----------------------------------------------------------------------
diff --git a/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
new file mode 100644
index 0000000..50b5c68
--- /dev/null
+++ b/integration-tests/src/test/java/org/apache/commons/rdf/integrationtests/JenaRDF4JTest.java
@@ -0,0 +1,78 @@
+package org.apache.commons.rdf.integrationtests;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.commons.rdf.api.BlankNode;
+import org.apache.commons.rdf.api.Graph;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.Literal;
+import org.apache.commons.rdf.api.RDFTermFactory;
+import org.apache.commons.rdf.api.Triple;
+import org.apache.commons.rdf.jena.RDFTermFactoryJena;
+import org.apache.commons.rdf.rdf4j.RDF4JTermFactory;
+import org.apache.commons.rdf.simple.SimpleRDFTermFactory;
+import org.junit.Test;
+
+public class JenaRDF4JTest {
+
+	private RDFTermFactory simpleFactory = new SimpleRDFTermFactory();
+	private RDFTermFactory jenaFactory = new RDFTermFactoryJena();
+	private RDFTermFactory rdf4jFactory = new RDF4JTermFactory();
+
+	@Test
+	public void jenaToRdf4j() throws Exception {
+		nodesIntoOther(jenaFactory, rdf4jFactory);
+	}
+
+	@Test
+	public void rdf4jToJena() throws Exception {
+		nodesIntoOther(rdf4jFactory, jenaFactory);
+	}
+
+	@Test
+	public void simpletoJena() throws Exception {
+		nodesIntoOther(simpleFactory, jenaFactory);
+	}
+
+	@Test
+	public void simpleToRdf4j() throws Exception {
+		nodesIntoOther(simpleFactory, rdf4jFactory);
+	}
+
+	public void nodesIntoOther(RDFTermFactory fromFactory, RDFTermFactory toFactory) throws Exception {
+		Graph g = fromFactory.createGraph();
+		BlankNode s = toFactory.createBlankNode();
+		IRI p = toFactory.createIRI("http://example.com/p");
+		Literal o = toFactory.createLiteral("Hello");
+
+		g.add(s, p, o);
+
+		// blankNode should still work with g.contains()
+		assertTrue(g.contains(s, p, o));
+		Triple t1 = g.stream().findAny().get();
+
+		// Can't make assumptions about mappegetPredicated BlankNode equality
+		// assertEquals(s, t.getSubject());
+		assertEquals(p, t1.getPredicate());
+		assertEquals(o, t1.getObject());
+
+		IRI s2 = toFactory.createIRI("http://example.com/s2");
+		g.add(s2, p, s);
+		assertTrue(g.contains(s2, p, s));
+
+		// This should be mapped to the same BlankNode
+		// (even if it has a different identifier), e.g.
+		// we should be able to do:
+
+		Triple t2 = g.stream(s2, p, null).findAny().get();
+
+		BlankNode bnode = (BlankNode) t2.getObject();
+		// And that (possibly adapted) BlankNode object should
+		// match the subject of t1 statement
+		assertEquals(bnode, t1.getSubject());
+		// And can be used as a key:
+		Triple t3 = g.stream(bnode, p, null).findAny().get();
+		assertEquals(t1, t3);
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/84c70320/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 539204d..2f3abbf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -222,6 +222,7 @@
         <module>simple</module>
         <module>rdf4j</module>
         <module>jena</module>
+        <module>integration-tests</module>
     </modules>
 
     <dependencyManagement>