commonsrdf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From st...@apache.org
Subject [08/12] incubator-commonsrdf git commit: *RDFTermFactoryTest -> *RDFTest
Date Fri, 28 Oct 2016 10:34:38 GMT
*RDFTermFactoryTest -> *RDFTest

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

Branch: refs/heads/COMMONSRDF-46
Commit: de6842f9828fc7c9678c014d3650cd569e131294
Parents: b7016f0
Author: Stian Soiland-Reyes <stain@apache.org>
Authored: Fri Oct 28 11:15:09 2016 +0100
Committer: Stian Soiland-Reyes <stain@apache.org>
Committed: Fri Oct 28 11:15:09 2016 +0100

----------------------------------------------------------------------
 .../rdf/api/AbstractRDFTermFactoryTest.java     | 334 -------------------
 .../apache/commons/rdf/api/AbstractRDFTest.java | 334 +++++++++++++++++++
 .../apache/commons/rdf/jena/JenaRDFTest.java    |  32 ++
 .../rdf/jena/TestRDFTermFactoryJena.java        |  32 --
 .../rdf/jsonldjava/JsonLdFactoryTest.java       |  56 ----
 .../commons/rdf/jsonldjava/JsonLdRDFTest.java   |  56 ++++
 .../rdf/rdf4j/MemoryRDFTermFactoryTest.java     |  37 --
 .../commons/rdf/rdf4j/MemoryStoreRDFTest.java   |  37 ++
 .../org/apache/commons/rdf/rdf4j/RDF4JTest.java |  37 ++
 .../rdf/rdf4j/Rdf4JRDFTermFactoryTest.java      |  37 --
 .../SimpleNoRelativeIRIRDFTermFactoryTest.java  |  46 ---
 .../rdf/simple/SimpleNoRelativeIRIRDTest.java   |  46 +++
 .../rdf/simple/SimpleRDFTermFactoryTest.java    |  33 --
 .../commons/rdf/simple/SimpleRDFTest.java       |  33 ++
 14 files changed, 575 insertions(+), 575 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
deleted file mode 100644
index 97ee5fa..0000000
--- a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTermFactoryTest.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/**
- * 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.commons.rdf.api;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotSame;
-
-import java.util.Objects;
-
-import org.junit.Assume;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Test RDF implementation (and thus its RDFTerm implementations)
- * <p>
- * To add to your implementation's tests, create a subclass with a name ending
- * in <code>Test</code> and provide {@link #createFactory()} which minimally
- * supports one of the operations, but ideally supports all operations.
- *
- * @see RDF
- */
-public abstract class AbstractRDFTermFactoryTest {
-
-    private RDF factory;
-
-    /**
-     * 
-     * This method must be overridden by the implementing test to provide a
-     * factory for the test to create {@link Literal}, {@link IRI} etc.
-     * 
-     * @return {@link RDF} instance to be tested.
-     */
-    protected abstract RDF createFactory();
-
-    @Before
-    public void setUp() {
-        factory = createFactory();
-    }
-
-    @Test
-    public void testCreateBlankNode() throws Exception {
-        BlankNode bnode = factory.createBlankNode();
-
-        BlankNode bnode2 = factory.createBlankNode();
-        assertNotEquals(
-                "Second blank node has not got a unique internal identifier",
-                bnode.uniqueReference(), bnode2.uniqueReference());
-    }
-
-    @Test
-    public void testCreateBlankNodeIdentifierEmpty() throws Exception {
-        try {
-            factory.createBlankNode("");
-        } catch (IllegalArgumentException e) {
-            // Expected exception
-        }
-    }
-
-    @Test
-    public void testCreateBlankNodeIdentifier() throws Exception {
-        factory.createBlankNode("example1");
-    }
-
-    @Test
-    public void testCreateBlankNodeIdentifierTwice() throws Exception {
-        BlankNode bnode1, bnode2, bnode3;
-        bnode1 = factory.createBlankNode("example1");
-        bnode2 = factory.createBlankNode("example1");
-        bnode3 = factory.createBlankNode("differ");
-        // We don't know what the identifier is, but it MUST be the same
-        assertEquals(bnode1.uniqueReference(), bnode2.uniqueReference());
-        // We don't know what the ntriplesString is, but it MUST be the same
-        assertEquals(bnode1.ntriplesString(), bnode2.ntriplesString());
-        // and here it MUST differ
-        assertNotEquals(bnode1.uniqueReference(),
-                bnode3.uniqueReference());
-        assertNotEquals(bnode1.ntriplesString(), bnode3.ntriplesString());
-    }
-
-    @Test
-    public void testCreateBlankNodeIdentifierTwiceDifferentFactories() throws Exception {
-        BlankNode bnode1, differentFactory;
-        bnode1 = factory.createBlankNode();
-        // it MUST differ from a second factory
-        differentFactory = createFactory().createBlankNode();
-        
-        // NOTE: We can't make similar assumption if we provide a 
-        // name to createBlankNode(String) as its documentation
-        // only says:
-        // 
-        // * BlankNodes created using this method with the same parameter, for
-        // * different instances of RDFFactory, SHOULD NOT be equivalent.
-        //
-        // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
-        assertNotEquals(bnode1, differentFactory);
-        assertNotEquals(bnode1.uniqueReference(),
-                differentFactory.uniqueReference());
-        // but we can't require:
-        //assertNotEquals(bnode1.ntriplesString(), differentFactory.ntriplesString());
-    }
-
-
-    @Test
-    public void testCreateGraph() {
-        Graph graph = factory.createGraph();
-
-        assertEquals("Graph was not empty", 0, graph.size());
-        graph.add(factory.createBlankNode(),
-                factory.createIRI("http://example.com/"),
-                factory.createBlankNode());
-
-        Graph graph2 = factory.createGraph();
-        assertNotSame(graph, graph2);
-        assertEquals("Graph was empty after adding", 1, graph.size());
-        assertEquals("New graph was not empty", 0, graph2.size());
-    }
-
-    @Test
-    public void testCreateIRI() throws Exception {
-        IRI example = factory.createIRI("http://example.com/");
-
-        assertEquals("http://example.com/", example.getIRIString());
-        assertEquals("<http://example.com/>", example.ntriplesString());
-
-        IRI term = factory.createIRI("http://example.com/vocab#term");
-        assertEquals("http://example.com/vocab#term", term.getIRIString());
-        assertEquals("<http://example.com/vocab#term>", term.ntriplesString());
-
-        // and now for the international fun!
-
-        IRI latin1 = factory.createIRI("http://accént.example.com/première");
-        assertEquals("http://accént.example.com/première",
-                latin1.getIRIString());
-        assertEquals("<http://accént.example.com/première>",
-                latin1.ntriplesString());
-
-        IRI cyrillic = factory.createIRI("http://example.испытание/Кириллица");
-        assertEquals("http://example.испытание/Кириллица",
-                cyrillic.getIRIString());
-        assertEquals("<http://example.испытание/Кириллица>",
-                cyrillic.ntriplesString());
-
-        IRI deseret = factory.createIRI("http://𐐀.example.com/𐐀");
-        assertEquals("http://𐐀.example.com/𐐀", deseret.getIRIString());
-        assertEquals("<http://𐐀.example.com/𐐀>", deseret.ntriplesString());
-    }
-
-    @Test
-    public void testCreateLiteral() throws Exception {
-        Literal example = factory.createLiteral("Example");
-        assertEquals("Example", example.getLexicalForm());
-        assertFalse(example.getLanguageTag().isPresent());
-        assertEquals("http://www.w3.org/2001/XMLSchema#string", example
-                .getDatatype().getIRIString());
-        // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html
-        assertEquals("\"Example\"", example.ntriplesString());
-    }
-
-    @Test
-    public void testCreateLiteralDateTime() throws Exception {
-        Literal dateTime = factory
-                    .createLiteral(
-                            "2014-12-27T00:50:00T-0600",
-                            factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTime"));
-        assertEquals("2014-12-27T00:50:00T-0600", dateTime.getLexicalForm());
-        assertFalse(dateTime.getLanguageTag().isPresent());
-        assertEquals("http://www.w3.org/2001/XMLSchema#dateTime", dateTime
-                .getDatatype().getIRIString());
-        assertEquals(
-                "\"2014-12-27T00:50:00T-0600\"^^<http://www.w3.org/2001/XMLSchema#dateTime>",
-                dateTime.ntriplesString());
-    }
-
-    @Test
-    public void testCreateLiteralLang() throws Exception {
-        Literal example = factory.createLiteral("Example", "en");
-
-        assertEquals("Example", example.getLexicalForm());
-        assertEquals("en", example.getLanguageTag().get());
-        assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
-                example.getDatatype().getIRIString());
-        assertEquals("\"Example\"@en", example.ntriplesString());
-    }
-
-    @Test
-    public void testCreateLiteralLangISO693_3() throws Exception {
-        // see https://issues.apache.org/jira/browse/JENA-827
-        Literal vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827
-
-        assertEquals("vls", vls.getLanguageTag().get());
-        assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
-                vls.getDatatype().getIRIString());
-        assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString());
-    }
-
-    @Test
-    public void testCreateLiteralString() throws Exception {
-        Literal example = factory.createLiteral("Example", factory
-                    .createIRI("http://www.w3.org/2001/XMLSchema#string"));
-        assertEquals("Example", example.getLexicalForm());
-        assertFalse(example.getLanguageTag().isPresent());
-        assertEquals("http://www.w3.org/2001/XMLSchema#string", example
-                .getDatatype().getIRIString());
-        // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html
-        assertEquals("\"Example\"", example.ntriplesString());
-    }
-
-    @Test
-    public void testCreateTripleBnodeBnode() {
-        BlankNode subject = factory.createBlankNode("b1");
-        IRI predicate = factory.createIRI("http://example.com/pred");
-        BlankNode object = factory.createBlankNode("b2");
-        Triple triple = factory.createTriple(subject, predicate, object);
-
-        // bnode equivalence should be OK as we used the same
-        // factory and have not yet inserted Triple into a Graph
-        assertEquals(subject, triple.getSubject());
-        assertEquals(predicate, triple.getPredicate());
-        assertEquals(object, triple.getObject());
-    }
-
-    @Test
-    public void testCreateTripleBnodeIRI() {
-    	BlankNode subject = factory.createBlankNode("b1");
-    	IRI predicate = factory.createIRI("http://example.com/pred");
-    	IRI object = factory.createIRI("http://example.com/obj");
-    	Triple triple = factory.createTriple(subject, predicate, object);
-
-        // bnode equivalence should be OK as we used the same
-        // factory and have not yet inserted Triple into a Graph
-        assertEquals(subject, triple.getSubject());
-        assertEquals(predicate, triple.getPredicate());
-        assertEquals(object, triple.getObject());
-    }
-
-    @Test
-    public void testCreateTripleBnodeTriple() {
-    	BlankNode subject = factory.createBlankNode();
-    	IRI predicate = factory.createIRI("http://example.com/pred");
-    	Literal object = factory.createLiteral("Example", "en");
-    	Triple triple = factory.createTriple(subject, predicate, object);
- 
-        // bnode equivalence should be OK as we used the same
-        // factory and have not yet inserted Triple into a Graph
-        assertEquals(subject, triple.getSubject());
-        assertEquals(predicate, triple.getPredicate());
-        assertEquals(object, triple.getObject());
-    }
-
-    @Test
-    public void testPossiblyInvalidBlankNode() throws Exception {
-        BlankNode withColon;
-        try {
-            withColon = factory.createBlankNode("with:colon");
-        } catch (IllegalArgumentException ex) {
-            // Good!
-            return;
-        }
-        // Factory allows :colon, which is OK as long as it's not causing an
-        // invalid ntriplesString
-        assertFalse(withColon.ntriplesString().contains("with:colon"));
-
-        // and creating it twice gets the same ntriplesString
-        assertEquals(withColon.ntriplesString(),
-                factory.createBlankNode("with:colon").ntriplesString());
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testInvalidIRI() throws Exception {
-        factory.createIRI("<no_brackets>");
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testInvalidLiteralLang() throws Exception {
-        factory.createLiteral("Example", "with space");
-    }
-
-    @Test(expected = Exception.class)
-    public void testInvalidTriplePredicate() {
-        BlankNode subject = factory.createBlankNode("b1");
-        BlankNode predicate = factory.createBlankNode("b2");
-        BlankNode object = factory.createBlankNode("b3");
-        factory.createTriple(subject, (IRI) predicate, object);
-    }
-
-    @Test
-    public void hashCodeBlankNode() throws Exception {
-        BlankNode bnode1 = factory.createBlankNode();
-        assertEquals(bnode1.uniqueReference().hashCode(), bnode1.hashCode());
-    }
-
-    @Test
-    public void hashCodeIRI() throws Exception {
-        IRI iri = factory.createIRI("http://example.com/");
-        assertEquals(iri.getIRIString().hashCode(), iri.hashCode());
-    }
-
-    @Test
-    public void hashCodeLiteral() throws Exception {
-        Literal literal = factory.createLiteral("Hello");
-        assertEquals(Objects.hash(
-                    literal.getLexicalForm(),
-                    literal.getDatatype(),
-                    literal.getLanguageTag()
-                ),
-                literal.hashCode());
-    }
-
-    @Test
-    public void hashCodeTriple() throws Exception {
-        IRI iri = factory.createIRI("http://example.com/");
-        Triple triple = factory.createTriple(iri, iri, iri);
-        assertEquals(Objects.hash(iri, iri, iri),
-                     triple.hashCode());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
----------------------------------------------------------------------
diff --git a/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
new file mode 100644
index 0000000..c664da8
--- /dev/null
+++ b/api/src/test/java/org/apache/commons/rdf/api/AbstractRDFTest.java
@@ -0,0 +1,334 @@
+/**
+ * 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.commons.rdf.api;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotSame;
+
+import java.util.Objects;
+
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Test RDF implementation (and thus its RDFTerm implementations)
+ * <p>
+ * To add to your implementation's tests, create a subclass with a name ending
+ * in <code>Test</code> and provide {@link #createFactory()} which minimally
+ * supports one of the operations, but ideally supports all operations.
+ *
+ * @see RDF
+ */
+public abstract class AbstractRDFTest {
+
+    private RDF factory;
+
+    /**
+     * 
+     * This method must be overridden by the implementing test to provide a
+     * factory for the test to create {@link Literal}, {@link IRI} etc.
+     * 
+     * @return {@link RDF} instance to be tested.
+     */
+    protected abstract RDF createFactory();
+
+    @Before
+    public void setUp() {
+        factory = createFactory();
+    }
+
+    @Test
+    public void testCreateBlankNode() throws Exception {
+        BlankNode bnode = factory.createBlankNode();
+
+        BlankNode bnode2 = factory.createBlankNode();
+        assertNotEquals(
+                "Second blank node has not got a unique internal identifier",
+                bnode.uniqueReference(), bnode2.uniqueReference());
+    }
+
+    @Test
+    public void testCreateBlankNodeIdentifierEmpty() throws Exception {
+        try {
+            factory.createBlankNode("");
+        } catch (IllegalArgumentException e) {
+            // Expected exception
+        }
+    }
+
+    @Test
+    public void testCreateBlankNodeIdentifier() throws Exception {
+        factory.createBlankNode("example1");
+    }
+
+    @Test
+    public void testCreateBlankNodeIdentifierTwice() throws Exception {
+        BlankNode bnode1, bnode2, bnode3;
+        bnode1 = factory.createBlankNode("example1");
+        bnode2 = factory.createBlankNode("example1");
+        bnode3 = factory.createBlankNode("differ");
+        // We don't know what the identifier is, but it MUST be the same
+        assertEquals(bnode1.uniqueReference(), bnode2.uniqueReference());
+        // We don't know what the ntriplesString is, but it MUST be the same
+        assertEquals(bnode1.ntriplesString(), bnode2.ntriplesString());
+        // and here it MUST differ
+        assertNotEquals(bnode1.uniqueReference(),
+                bnode3.uniqueReference());
+        assertNotEquals(bnode1.ntriplesString(), bnode3.ntriplesString());
+    }
+
+    @Test
+    public void testCreateBlankNodeIdentifierTwiceDifferentFactories() throws Exception {
+        BlankNode bnode1, differentFactory;
+        bnode1 = factory.createBlankNode();
+        // it MUST differ from a second factory
+        differentFactory = createFactory().createBlankNode();
+        
+        // NOTE: We can't make similar assumption if we provide a 
+        // name to createBlankNode(String) as its documentation
+        // only says:
+        // 
+        // * BlankNodes created using this method with the same parameter, for
+        // * different instances of RDFFactory, SHOULD NOT be equivalent.
+        //
+        // https://github.com/apache/incubator-commonsrdf/pull/7#issuecomment-92312779
+        assertNotEquals(bnode1, differentFactory);
+        assertNotEquals(bnode1.uniqueReference(),
+                differentFactory.uniqueReference());
+        // but we can't require:
+        //assertNotEquals(bnode1.ntriplesString(), differentFactory.ntriplesString());
+    }
+
+
+    @Test
+    public void testCreateGraph() {
+        Graph graph = factory.createGraph();
+
+        assertEquals("Graph was not empty", 0, graph.size());
+        graph.add(factory.createBlankNode(),
+                factory.createIRI("http://example.com/"),
+                factory.createBlankNode());
+
+        Graph graph2 = factory.createGraph();
+        assertNotSame(graph, graph2);
+        assertEquals("Graph was empty after adding", 1, graph.size());
+        assertEquals("New graph was not empty", 0, graph2.size());
+    }
+
+    @Test
+    public void testCreateIRI() throws Exception {
+        IRI example = factory.createIRI("http://example.com/");
+
+        assertEquals("http://example.com/", example.getIRIString());
+        assertEquals("<http://example.com/>", example.ntriplesString());
+
+        IRI term = factory.createIRI("http://example.com/vocab#term");
+        assertEquals("http://example.com/vocab#term", term.getIRIString());
+        assertEquals("<http://example.com/vocab#term>", term.ntriplesString());
+
+        // and now for the international fun!
+
+        IRI latin1 = factory.createIRI("http://accént.example.com/première");
+        assertEquals("http://accént.example.com/première",
+                latin1.getIRIString());
+        assertEquals("<http://accént.example.com/première>",
+                latin1.ntriplesString());
+
+        IRI cyrillic = factory.createIRI("http://example.испытание/Кириллица");
+        assertEquals("http://example.испытание/Кириллица",
+                cyrillic.getIRIString());
+        assertEquals("<http://example.испытание/Кириллица>",
+                cyrillic.ntriplesString());
+
+        IRI deseret = factory.createIRI("http://𐐀.example.com/𐐀");
+        assertEquals("http://𐐀.example.com/𐐀", deseret.getIRIString());
+        assertEquals("<http://𐐀.example.com/𐐀>", deseret.ntriplesString());
+    }
+
+    @Test
+    public void testCreateLiteral() throws Exception {
+        Literal example = factory.createLiteral("Example");
+        assertEquals("Example", example.getLexicalForm());
+        assertFalse(example.getLanguageTag().isPresent());
+        assertEquals("http://www.w3.org/2001/XMLSchema#string", example
+                .getDatatype().getIRIString());
+        // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html
+        assertEquals("\"Example\"", example.ntriplesString());
+    }
+
+    @Test
+    public void testCreateLiteralDateTime() throws Exception {
+        Literal dateTime = factory
+                    .createLiteral(
+                            "2014-12-27T00:50:00T-0600",
+                            factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTime"));
+        assertEquals("2014-12-27T00:50:00T-0600", dateTime.getLexicalForm());
+        assertFalse(dateTime.getLanguageTag().isPresent());
+        assertEquals("http://www.w3.org/2001/XMLSchema#dateTime", dateTime
+                .getDatatype().getIRIString());
+        assertEquals(
+                "\"2014-12-27T00:50:00T-0600\"^^<http://www.w3.org/2001/XMLSchema#dateTime>",
+                dateTime.ntriplesString());
+    }
+
+    @Test
+    public void testCreateLiteralLang() throws Exception {
+        Literal example = factory.createLiteral("Example", "en");
+
+        assertEquals("Example", example.getLexicalForm());
+        assertEquals("en", example.getLanguageTag().get());
+        assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
+                example.getDatatype().getIRIString());
+        assertEquals("\"Example\"@en", example.ntriplesString());
+    }
+
+    @Test
+    public void testCreateLiteralLangISO693_3() throws Exception {
+        // see https://issues.apache.org/jira/browse/JENA-827
+        Literal vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827
+
+        assertEquals("vls", vls.getLanguageTag().get());
+        assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
+                vls.getDatatype().getIRIString());
+        assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString());
+    }
+
+    @Test
+    public void testCreateLiteralString() throws Exception {
+        Literal example = factory.createLiteral("Example", factory
+                    .createIRI("http://www.w3.org/2001/XMLSchema#string"));
+        assertEquals("Example", example.getLexicalForm());
+        assertFalse(example.getLanguageTag().isPresent());
+        assertEquals("http://www.w3.org/2001/XMLSchema#string", example
+                .getDatatype().getIRIString());
+        // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html
+        assertEquals("\"Example\"", example.ntriplesString());
+    }
+
+    @Test
+    public void testCreateTripleBnodeBnode() {
+        BlankNode subject = factory.createBlankNode("b1");
+        IRI predicate = factory.createIRI("http://example.com/pred");
+        BlankNode object = factory.createBlankNode("b2");
+        Triple triple = factory.createTriple(subject, predicate, object);
+
+        // bnode equivalence should be OK as we used the same
+        // factory and have not yet inserted Triple into a Graph
+        assertEquals(subject, triple.getSubject());
+        assertEquals(predicate, triple.getPredicate());
+        assertEquals(object, triple.getObject());
+    }
+
+    @Test
+    public void testCreateTripleBnodeIRI() {
+    	BlankNode subject = factory.createBlankNode("b1");
+    	IRI predicate = factory.createIRI("http://example.com/pred");
+    	IRI object = factory.createIRI("http://example.com/obj");
+    	Triple triple = factory.createTriple(subject, predicate, object);
+
+        // bnode equivalence should be OK as we used the same
+        // factory and have not yet inserted Triple into a Graph
+        assertEquals(subject, triple.getSubject());
+        assertEquals(predicate, triple.getPredicate());
+        assertEquals(object, triple.getObject());
+    }
+
+    @Test
+    public void testCreateTripleBnodeTriple() {
+    	BlankNode subject = factory.createBlankNode();
+    	IRI predicate = factory.createIRI("http://example.com/pred");
+    	Literal object = factory.createLiteral("Example", "en");
+    	Triple triple = factory.createTriple(subject, predicate, object);
+ 
+        // bnode equivalence should be OK as we used the same
+        // factory and have not yet inserted Triple into a Graph
+        assertEquals(subject, triple.getSubject());
+        assertEquals(predicate, triple.getPredicate());
+        assertEquals(object, triple.getObject());
+    }
+
+    @Test
+    public void testPossiblyInvalidBlankNode() throws Exception {
+        BlankNode withColon;
+        try {
+            withColon = factory.createBlankNode("with:colon");
+        } catch (IllegalArgumentException ex) {
+            // Good!
+            return;
+        }
+        // Factory allows :colon, which is OK as long as it's not causing an
+        // invalid ntriplesString
+        assertFalse(withColon.ntriplesString().contains("with:colon"));
+
+        // and creating it twice gets the same ntriplesString
+        assertEquals(withColon.ntriplesString(),
+                factory.createBlankNode("with:colon").ntriplesString());
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testInvalidIRI() throws Exception {
+        factory.createIRI("<no_brackets>");
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testInvalidLiteralLang() throws Exception {
+        factory.createLiteral("Example", "with space");
+    }
+
+    @Test(expected = Exception.class)
+    public void testInvalidTriplePredicate() {
+        BlankNode subject = factory.createBlankNode("b1");
+        BlankNode predicate = factory.createBlankNode("b2");
+        BlankNode object = factory.createBlankNode("b3");
+        factory.createTriple(subject, (IRI) predicate, object);
+    }
+
+    @Test
+    public void hashCodeBlankNode() throws Exception {
+        BlankNode bnode1 = factory.createBlankNode();
+        assertEquals(bnode1.uniqueReference().hashCode(), bnode1.hashCode());
+    }
+
+    @Test
+    public void hashCodeIRI() throws Exception {
+        IRI iri = factory.createIRI("http://example.com/");
+        assertEquals(iri.getIRIString().hashCode(), iri.hashCode());
+    }
+
+    @Test
+    public void hashCodeLiteral() throws Exception {
+        Literal literal = factory.createLiteral("Hello");
+        assertEquals(Objects.hash(
+                    literal.getLexicalForm(),
+                    literal.getDatatype(),
+                    literal.getLanguageTag()
+                ),
+                literal.hashCode());
+    }
+
+    @Test
+    public void hashCodeTriple() throws Exception {
+        IRI iri = factory.createIRI("http://example.com/");
+        Triple triple = factory.createTriple(iri, iri, iri);
+        assertEquals(Objects.hash(iri, iri, iri),
+                     triple.hashCode());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java b/jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
new file mode 100644
index 0000000..87a4618
--- /dev/null
+++ b/jena/src/test/java/org/apache/commons/rdf/jena/JenaRDFTest.java
@@ -0,0 +1,32 @@
+/**
+ * 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.commons.rdf.jena;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.RDF;
+
+public class JenaRDFTest extends AbstractRDFTest {
+	
+    @Override
+    public RDF createFactory() {
+        return new JenaRDF();
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
----------------------------------------------------------------------
diff --git a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java b/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
deleted file mode 100644
index 870546a..0000000
--- a/jena/src/test/java/org/apache/commons/rdf/jena/TestRDFTermFactoryJena.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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.commons.rdf.jena;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDF;
-
-public class TestRDFTermFactoryJena extends AbstractRDFTermFactoryTest {
-	
-    @Override
-    public RDF createFactory() {
-        return new JenaRDF();
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
deleted file mode 100644
index 22010f7..0000000
--- a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdFactoryTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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.commons.rdf.jsonldjava;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDF;
-import org.junit.Assume;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class JsonLdFactoryTest extends AbstractRDFTermFactoryTest {
-
-	@Override
-	public RDF createFactory() {
-		return new JsonLdRDF();
-	}
-	
-	// TODO: Add support for checking for invalid lang/iri/blanknode IDs
-	
-	@Test
-	@Override
-	public void testInvalidLiteralLang() throws Exception {
-		Assume.assumeFalse("JSONLD-Java does not validate lang strings", false);		
-		super.testInvalidLiteralLang();
-	}
-	
-	@Test
-	@Override
-	public void testInvalidIRI() throws Exception {
-		Assume.assumeFalse("JSONLD-Java does not validate IRIs", false);
-		super.testInvalidIRI();
-	}
-	
-	@Ignore
-	@Test
-	@Override
-	public void testPossiblyInvalidBlankNode() throws Exception {
-		// TODO: Fix blank node in ntriplesString()
-		super.testPossiblyInvalidBlankNode();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTest.java
----------------------------------------------------------------------
diff --git a/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTest.java b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTest.java
new file mode 100644
index 0000000..14099e8
--- /dev/null
+++ b/jsonld-java/src/test/java/org/apache/commons/rdf/jsonldjava/JsonLdRDFTest.java
@@ -0,0 +1,56 @@
+/**
+ * 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.commons.rdf.jsonldjava;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.RDF;
+import org.junit.Assume;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class JsonLdRDFTest extends AbstractRDFTest {
+
+	@Override
+	public RDF createFactory() {
+		return new JsonLdRDF();
+	}
+	
+	// TODO: Add support for checking for invalid lang/iri/blanknode IDs
+	
+	@Test
+	@Override
+	public void testInvalidLiteralLang() throws Exception {
+		Assume.assumeFalse("JSONLD-Java does not validate lang strings", false);		
+		super.testInvalidLiteralLang();
+	}
+	
+	@Test
+	@Override
+	public void testInvalidIRI() throws Exception {
+		Assume.assumeFalse("JSONLD-Java does not validate IRIs", false);
+		super.testInvalidIRI();
+	}
+	
+	@Ignore
+	@Test
+	@Override
+	public void testPossiblyInvalidBlankNode() throws Exception {
+		// TODO: Fix blank node in ntriplesString()
+		super.testPossiblyInvalidBlankNode();
+	}
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
deleted file mode 100644
index 0a44a5e..0000000
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryRDFTermFactoryTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * 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.commons.rdf.rdf4j;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDF;
-import org.junit.Assume;
-
-public class MemoryRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
-
-	@Override
-	public RDF createFactory() {
-		return new MemoryGraphTest.MemoryStoreRDF();
-	}
-	
-	@Override
-	public void testInvalidLiteralLang() throws Exception {
-		Assume.assumeTrue("RDF4J doesn't check Lang strings",false);
-		super.testInvalidLiteralLang();
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java
new file mode 100644
index 0000000..fd4efcb
--- /dev/null
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java
@@ -0,0 +1,37 @@
+/**
+ * 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.commons.rdf.rdf4j;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.RDF;
+import org.junit.Assume;
+
+public class MemoryStoreRDFTest extends AbstractRDFTest {
+
+	@Override
+	public RDF createFactory() {
+		return new MemoryGraphTest.MemoryStoreRDF();
+	}
+	
+	@Override
+	public void testInvalidLiteralLang() throws Exception {
+		Assume.assumeTrue("RDF4J doesn't check Lang strings",false);
+		super.testInvalidLiteralLang();
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JTest.java
new file mode 100644
index 0000000..c10ea9a
--- /dev/null
+++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/RDF4JTest.java
@@ -0,0 +1,37 @@
+/**
+ * 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.commons.rdf.rdf4j;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.RDF;
+import org.junit.Assume;
+
+public class RDF4JTest extends AbstractRDFTest {
+
+	@Override
+	public RDF createFactory() {
+		return new RDF4J();
+	}
+	
+	@Override
+	public void testInvalidLiteralLang() throws Exception {
+		Assume.assumeTrue("RDF4J doesn't check Lang strings",false);
+		super.testInvalidLiteralLang();
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
deleted file mode 100644
index 29c8ab0..0000000
--- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/Rdf4JRDFTermFactoryTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * 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.commons.rdf.rdf4j;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDF;
-import org.junit.Assume;
-
-public class Rdf4JRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
-
-	@Override
-	public RDF createFactory() {
-		return new RDF4J();
-	}
-	
-	@Override
-	public void testInvalidLiteralLang() throws Exception {
-		Assume.assumeTrue("RDD4J doesn't check Lang strings",false);
-		super.testInvalidLiteralLang();
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
deleted file mode 100644
index 3167243..0000000
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDFTermFactoryTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * 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.commons.rdf.simple;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.IRI;
-import org.apache.commons.rdf.api.RDF;
-
-import java.net.URI;
-
-/**
- * Test simple IRI without relative IRI support.
- * <p>
- * Ensures that {@link AbstractRDFTermFactoryTest#testCreateIRIRelative()} is
- * correctly skipped (without causing an error).
- */
-public class SimpleNoRelativeIRIRDFTermFactoryTest extends
-        AbstractRDFTermFactoryTest {
-    @Override
-    public RDF createFactory() {
-        return new SimpleRDF() {
-            @Override
-            public IRI createIRI(String iri) {
-                if (!URI.create(iri).isAbsolute()) {
-                    throw new IllegalArgumentException("IRIs must be absolute");
-                }
-                return super.createIRI(iri);
-            }
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDTest.java
new file mode 100644
index 0000000..abec6c0
--- /dev/null
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleNoRelativeIRIRDTest.java
@@ -0,0 +1,46 @@
+/**
+ * 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.commons.rdf.simple;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.IRI;
+import org.apache.commons.rdf.api.RDF;
+
+import java.net.URI;
+
+/**
+ * Test simple IRI without relative IRI support.
+ * <p>
+ * Ensures that {@link AbstractRDFTest#testCreateIRIRelative()} is
+ * correctly skipped (without causing an error).
+ */
+public class SimpleNoRelativeIRIRDTest extends
+        AbstractRDFTest {
+    @Override
+    public RDF createFactory() {
+        return new SimpleRDF() {
+            @Override
+            public IRI createIRI(String iri) {
+                if (!URI.create(iri).isAbsolute()) {
+                    throw new IllegalArgumentException("IRIs must be absolute");
+                }
+                return super.createIRI(iri);
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
deleted file mode 100644
index 816eef9..0000000
--- a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTermFactoryTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 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.commons.rdf.simple;
-
-import org.apache.commons.rdf.api.AbstractRDFTermFactoryTest;
-import org.apache.commons.rdf.api.RDF;
-
-/**
- * Simple RDF Test
- */
-public class SimpleRDFTermFactoryTest extends AbstractRDFTermFactoryTest {
-
-    @Override
-    public RDF createFactory() {
-        return new SimpleRDF();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/de6842f9/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTest.java
----------------------------------------------------------------------
diff --git a/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTest.java b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTest.java
new file mode 100644
index 0000000..31915de
--- /dev/null
+++ b/simple/src/test/java/org/apache/commons/rdf/simple/SimpleRDFTest.java
@@ -0,0 +1,33 @@
+/**
+ * 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.commons.rdf.simple;
+
+import org.apache.commons.rdf.api.AbstractRDFTest;
+import org.apache.commons.rdf.api.RDF;
+
+/**
+ * Simple RDF Test
+ */
+public class SimpleRDFTest extends AbstractRDFTest {
+
+    @Override
+    public RDF createFactory() {
+        return new SimpleRDF();
+    }
+
+}


Mime
View raw message