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/28 10:34:38 UTC
[08/12] incubator-commonsrdf git commit: *RDFTermFactoryTest ->
*RDFTest
*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 <st...@apache.org>
Authored: Fri Oct 28 11:15:09 2016 +0100
Committer: Stian Soiland-Reyes <st...@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.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430");
- assertEquals("http://example.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430",
- cyrillic.getIRIString());
- assertEquals("<http://example.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430>",
- cyrillic.ntriplesString());
-
- IRI deseret = factory.createIRI("http://\U00010400.example.com/\U00010400");
- assertEquals("http://\U00010400.example.com/\U00010400", deseret.getIRIString());
- assertEquals("<http://\U00010400.example.com/\U00010400>", 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.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430");
+ assertEquals("http://example.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430",
+ cyrillic.getIRIString());
+ assertEquals("<http://example.\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u0435/\u041a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430>",
+ cyrillic.ntriplesString());
+
+ IRI deseret = factory.createIRI("http://\U00010400.example.com/\U00010400");
+ assertEquals("http://\U00010400.example.com/\U00010400", deseret.getIRIString());
+ assertEquals("<http://\U00010400.example.com/\U00010400>", 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();
+ }
+
+}