You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/10/09 19:16:18 UTC
svn commit: r1530718 [7/10] - in /jena/Experimental/new-test: ./
src/test/java/com/hp/hpl/jena/graph/
src/test/java/com/hp/hpl/jena/graph/compose/
src/test/java/com/hp/hpl/jena/graph/impl/
src/test/java/com/hp/hpl/jena/mem/ src/test/java/com/hp/hpl/jen...
Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelContractTests.java (from r1525342, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractModelContractTests.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractModelContractTests.java&r1=1525342&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractModelContractTests.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelContractTests.java Wed Oct 9 17:16:15 2013
@@ -18,7 +18,6 @@
package com.hp.hpl.jena.rdf.model;
-import static com.hp.hpl.jena.testing_framework.GraphHelper.iteratorToSet;
import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
@@ -32,11 +31,8 @@ import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
-
import javax.xml.XMLConstants;
import javax.xml.namespace.NamespaceContext;
import javax.xml.parsers.DocumentBuilder;
@@ -45,18 +41,20 @@ import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
+import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
+import org.xenei.junit.contract.Contract;
import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
import com.hp.hpl.jena.graph.GraphEvents;
import com.hp.hpl.jena.rdf.model.impl.StmtIteratorImpl;
import com.hp.hpl.jena.shared.Command;
import com.hp.hpl.jena.shared.PropertyNotFoundException;
-import com.hp.hpl.jena.testing_framework.AbstractModelProducerUser;
+import com.hp.hpl.jena.testing_framework.AbstractModelProducer;
import com.hp.hpl.jena.testing_framework.ModelHelper.LitTestObj;
import com.hp.hpl.jena.testing_framework.TestFileData;
import com.hp.hpl.jena.vocabulary.RDF;
@@ -69,21 +67,31 @@ import com.hp.hpl.jena.vocabulary.RDFS;
* independent or not.
*
*/
-public abstract class AbstractModelContractTests extends AbstractModelProducerUser {
+@Contract(Model.class)
+public abstract class ModelContractTests {
private Model model;
private RecordingModelListener SL;
- private static Logger log = LoggerFactory
- .getLogger(AbstractModelContractTests.class);
+ private static Logger LOG = LoggerFactory
+ .getLogger(ModelContractTests.class);
+
+ @Contract.Inject("com.hp.hpl.jena.testing_framework.AbstractModelProducer<%s>")
+ abstract public AbstractModelProducer<Model> getProducer();
@Before
- final public void setupAbstractModelTest() {
- model = getModelProducer().newModel();
+ final public void beforeModelContractTests() {
+ model = getProducer().newInstance();
+ SL = new RecordingModelListener();
+ }
+
+ @After
+ final public void afterModelContractTest() {
+ model = getProducer().newInstance();
SL = new RecordingModelListener();
}
/*
- * MODEL INTERFACE TESTS
+ * MODEL INTERFACE TESTS
*/
/**
@@ -781,24 +789,28 @@ public abstract class AbstractModelContr
} catch (final NullPointerException expected) { // expected}
}
- Literal lit = model.createLiteral( "13" , true );
- //"13^^http://www.w3.org/2001/XMLSchema#integer", true);
+ Literal lit = model.createLiteral("13", true);
+ // "13^^http://www.w3.org/2001/XMLSchema#integer", true);
assertTrue("Literal is not attached to the model",
lit.getModel() == model);
assertFalse("Literal is in the model", model.containsResource(lit));
assertEquals("Language is missing", "", lit.getLanguage());
- assertEquals( "Wrong datatype URI", "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral", lit.getDatatypeURI());
- assertEquals("Value is class is wrong", String.class, lit.getValue().getClass());
+ assertEquals("Wrong datatype URI",
+ "http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral",
+ lit.getDatatypeURI());
+ assertEquals("Value is class is wrong", String.class, lit.getValue()
+ .getClass());
assertEquals("Int value is wrong", "13", lit.getValue());
-
- lit = model.createLiteral( "13" , false );
- //"13^^http://www.w3.org/2001/XMLSchema#integer", true);
+
+ lit = model.createLiteral("13", false);
+ // "13^^http://www.w3.org/2001/XMLSchema#integer", true);
assertTrue("Literal is not attached to the model",
lit.getModel() == model);
assertFalse("Literal is in the model", model.containsResource(lit));
assertEquals("Language is missing", "", lit.getLanguage());
- assertNull( "Wrong datatype URI", lit.getDatatypeURI());
- assertEquals("Value is class is wrong", String.class, lit.getValue().getClass());
+ assertNull("Wrong datatype URI", lit.getDatatypeURI());
+ assertEquals("Value is class is wrong", String.class, lit.getValue()
+ .getClass());
assertEquals("Int value is wrong", "13", lit.getValue());
}
@@ -1062,7 +1074,7 @@ public abstract class AbstractModelContr
@Test
public void testCreateTypedLiteral_Object_RDFDatatype() {
Float f = 4.3f;
- Literal lit = model.createTypedLiteral( f , XSDDatatype.XSDfloat);
+ Literal lit = model.createTypedLiteral(f, XSDDatatype.XSDfloat);
assertTrue("List is not attached to the model", lit.getModel() == model);
assertFalse("List is in the model", model.containsResource(lit));
assertEquals("Language is not empty", "", lit.getLanguage());
@@ -1097,32 +1109,31 @@ public abstract class AbstractModelContr
@Test
public void testDifference() {
- if (model.supportsSetOperations())
- {
- txnBegin(model);
- modelAdd(
- model,
- "a R b; a R 5; a R _1; a R 'foo'; a P 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'; _2 P 'foo'");
- txnCommit(model);
+ if (model.supportsSetOperations()) {
+ txnBegin(model);
+ modelAdd(
+ model,
+ "a R b; a R 5; a R _1; a R 'foo'; a P 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'; _2 P 'foo'");
+ txnCommit(model);
- // subset of model
- Model subset = memModel("a R b; a R 5; a R _1; a R 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'");
+ // subset of model
+ Model subset = memModel("a R b; a R 5; a R _1; a R 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'");
- // disjoint with model
- Model disjoint = memModel(" _3 R b; _3 R 5; _3 R _1; _3 R 'foo'");
+ // disjoint with model
+ Model disjoint = memModel(" _3 R b; _3 R 5; _3 R _1; _3 R 'foo'");
- Model result = model.difference(subset);
+ Model result = model.difference(subset);
- assertTrue("model does not contain some results",
- model.containsAll(result));
- assertFalse("result contains some subset nodes",
- result.containsAny(subset));
-
- result = model.difference(disjoint);
- assertFalse("result contains some disjoint nodes",
- result.containsAny(disjoint));
- assertTrue("model does not contain some results",
- model.containsAll(result));
+ assertTrue("model does not contain some results",
+ model.containsAll(result));
+ assertFalse("result contains some subset nodes",
+ result.containsAny(subset));
+
+ result = model.difference(disjoint);
+ assertFalse("result contains some disjoint nodes",
+ result.containsAny(disjoint));
+ assertTrue("model does not contain some results",
+ model.containsAll(result));
}
}
@@ -1366,35 +1377,36 @@ public abstract class AbstractModelContr
* is dependent.
*/
@Test
- public abstract void testIndependent();
+ public void testIndependent() {
+ assertEquals(getProducer().areIndependent(), model.independent());
+ }
@Test
public void testIntersection() {
- if (model.supportsSetOperations())
- {
- txnBegin(model);
- modelAdd(
- model,
- "a R b; a R 5; a R _1; a R 'foo'; a P 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'; _2 P 'foo'");
- txnCommit(model);
+ if (model.supportsSetOperations()) {
+ txnBegin(model);
+ modelAdd(
+ model,
+ "a R b; a R 5; a R _1; a R 'foo'; a P 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'; _2 P 'foo'");
+ txnCommit(model);
- // subset of model
- Model subset = memModel("a R b; a R 5; a R _1; a R 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'");
+ // subset of model
+ Model subset = memModel("a R b; a R 5; a R _1; a R 'foo'; _2 R b; _2 R 5; _2 R _1; _2 R 'foo'");
- // disjoint with model
- Model disjoint = memModel(" _3 R b; _3 R 5; _3 R _1; _3 R 'foo'");
+ // disjoint with model
+ Model disjoint = memModel(" _3 R b; _3 R 5; _3 R _1; _3 R 'foo'");
- Model result = model.intersection(subset);
+ Model result = model.intersection(subset);
- assertTrue("model does not contain some results",
- model.containsAll(result));
- assertTrue("subset does not contain some results",
- subset.containsAll(result));
- assertTrue("result does not contain some subset elements",
- result.containsAll(subset));
+ assertTrue("model does not contain some results",
+ model.containsAll(result));
+ assertTrue("subset does not contain some results",
+ subset.containsAll(result));
+ assertTrue("result does not contain some subset elements",
+ result.containsAll(subset));
- result = model.intersection(disjoint);
- assertTrue("result contains entries", result.isEmpty());
+ result = model.intersection(disjoint);
+ assertTrue("result contains entries", result.isEmpty());
}
}
@@ -1440,14 +1452,14 @@ public abstract class AbstractModelContr
modelAdd(model, "a R b; a R 5; a R _1; _1 P 'foo'; _2 P 'bar'");
txnCommit(model);
- Model model2 = modelWithStatements(getModelProducer(),
+ Model model2 = modelWithStatements(getProducer(),
"a R b; a R 5; a R _10; _10 P 'foo'; _20 P 'bar'");
assertTrue("model is not isomorphic with model2",
model.isIsomorphicWith(model2));
assertTrue("model2 is not isomorphic with model",
model2.isIsomorphicWith(model));
- model2 = modelWithStatements(getModelProducer(),
+ model2 = modelWithStatements(getProducer(),
"c R b; c R 5; c R _10; _10 P 'foo'; _20 P 'bar'");
assertFalse("model is isomorphic with model2",
model.isIsomorphicWith(model2));
@@ -1548,7 +1560,8 @@ public abstract class AbstractModelContr
txnBegin(model);
modelAdd(model, "a R b; a R 5; a R _1; _1 P 'foo'; _1 R b; _1 R z");
txnCommit(model);
- RDFNode[] nodes = { rdfNode("b"), rdfNode("5"), rdfNode("_1"), rdfNode("z") };
+ RDFNode[] nodes = { rdfNode("b"), rdfNode("5"), rdfNode("_1"),
+ rdfNode("z") };
List<RDFNode> list = model.listObjectsOfProperty(p).toList();
assertEquals("Wrong number of subjects", nodes.length, list.size());
@@ -1722,7 +1735,7 @@ public abstract class AbstractModelContr
modelAdd(model, S2);
modelAdd(model, S3);
Resource anon = model.createResource();
- model.createResource("http://example").addProperty(RDF.type, anon);
+ model.createResource("http://example").addProperty(RDF.type, anon);
txnCommit(model);
checkReturns(S1, model.listStatements(null, P, O));
@@ -1739,15 +1752,16 @@ public abstract class AbstractModelContr
stmts.addAll(Arrays.asList(statements(S1)));
stmts.addAll(Arrays.asList(statements(S1)));
// add one for the anonymous statement added programmaticly
- assertEquals("wrong number of statements", stmts.size()+1, lst.size());
+ assertEquals("wrong number of statements", stmts.size() + 1, lst.size());
for (Statement s : stmts) {
assertTrue("Missing statement " + s, lst.contains(s));
}
-
+
// test locating anonymous nodes
- assertEquals(1, model.listStatements( null, null, resource("_C") ).toList().size());
- assertEquals(1, model.listStatements( null, null, anon ).toList().size());
-
+ assertEquals(1, model.listStatements(null, null, resource("_C"))
+ .toList().size());
+ assertEquals(1, model.listStatements(null, null, anon).toList().size());
+
}
@Test
@@ -1812,12 +1826,14 @@ public abstract class AbstractModelContr
// test with null RDF selector
lst = model.listStatements(
new SimpleSelector(null, null, (RDFNode) null)).toList();
- assertEquals("Wrong number of statments", (num * num * ent)+num, lst.size());
+ assertEquals("Wrong number of statments", (num * num * ent) + num,
+ lst.size());
// test with null literal string selector
lst = model.listStatements(
new SimpleSelector(null, null, (String) null)).toList();
- assertEquals("Wrong number of statments", (num * num * ent)+num, lst.size());
+ assertEquals("Wrong number of statments", (num * num * ent) + num,
+ lst.size());
//
// Object selectors
@@ -1919,7 +1935,7 @@ public abstract class AbstractModelContr
lst = model.listStatements(
new SimpleSelector(subject[0], null, (RDFNode) null)).toList();
- assertEquals("Wrong number of statements", (num * ent)+1, lst.size());
+ assertEquals("Wrong number of statements", (num * ent) + 1, lst.size());
for (Statement s : lst) {
assertEquals("Wrong subject", subject[0], s.getSubject());
}
@@ -2082,56 +2098,47 @@ public abstract class AbstractModelContr
assertTrue("missing " + r, lst.contains(r));
}
}
-
+
@Test
- public void testListSubjects_DoesNoRemove()
- {
- final Model m = modelWithStatements(getModelProducer(),
+ public void testListSubjects_DoesNoRemove() {
+ final Model m = modelWithStatements(getProducer(),
"a P b; b Q c; c R a");
final ResIterator it = m.listSubjects();
it.next();
- try
- {
+ try {
it.remove();
Assert.fail("listSubjects should not support .remove()");
- }
- catch (final UnsupportedOperationException e)
- {
+ } catch (final UnsupportedOperationException e) {
// expected
}
}
@Test
- public void testListSubjects_WorksAfterRemoveProperties()
- {
- final Model m = modelWithStatements(getModelProducer(),
+ public void testListSubjects_WorksAfterRemoveProperties() {
+ final Model m = modelWithStatements(getProducer(),
"p1 before terminal; p2 before terminal");
- txnBegin( m );
+ txnBegin(m);
m.createResource("eh:/p1").removeProperties();
- txnCommit( m );
+ txnCommit(m);
assertIsoModels(
- modelWithStatements(getModelProducer(), "p2 before terminal"), m);
- Assert.assertEquals(resourceSet("p2"), m.listSubjects()
- .toSet());
- }
-
- @Test
- public void testListSubjects_WorksAfterRemovePropertiesWithLots()
- {
- final Model m = modelWithStatements(getModelProducer(),
- "p2 before terminal");
+ modelWithStatements(getProducer(), "p2 before terminal"), m);
+ Assert.assertEquals(resourceSet("p2"), m.listSubjects().toSet());
+ }
+
+ @Test
+ public void testListSubjects_WorksAfterRemovePropertiesWithLots() {
+ final Model m = modelWithStatements(getProducer(), "p2 before terminal");
txnBegin(m);
- for (int i = 0; i < 100; i += 1)
- {
+ for (int i = 0; i < 100; i += 1) {
modelAdd(m, "p1 hasValue " + i);
}
m.createResource("eh:/p1").removeProperties();
- txnCommit( m );
+ txnCommit(m);
assertIsoModels(
- modelWithStatements(getModelProducer(), "p2 before terminal"), m);
- Assert.assertEquals(resourceSet("p2"), m.listSubjects()
- .toSet());
+ modelWithStatements(getProducer(), "p2 before terminal"), m);
+ Assert.assertEquals(resourceSet("p2"), m.listSubjects().toSet());
}
+
/**
* List the subjects
*
@@ -2260,12 +2267,14 @@ public abstract class AbstractModelContr
// test with null RDF selector
result = model.query(new SimpleSelector(null, null, (RDFNode) null));
lst = result.listStatements().toList();
- assertEquals("Wrong number of statments", (num * num * ent)+num, lst.size());
+ assertEquals("Wrong number of statments", (num * num * ent) + num,
+ lst.size());
// test with null literal string selector
result = model.query(new SimpleSelector(null, null, (String) null));
lst = result.listStatements().toList();
- assertEquals("Wrong number of statments", (num * num * ent)+num, lst.size());
+ assertEquals("Wrong number of statments", (num * num * ent) + num,
+ lst.size());
//
// Object selectors
@@ -2343,8 +2352,7 @@ public abstract class AbstractModelContr
}
// with resource selector
- result = model.query(new SimpleSelector(null, RDF.type,
- RDFS.Resource));
+ result = model.query(new SimpleSelector(null, RDF.type, RDFS.Resource));
lst = result.listStatements().toList();
assertEquals("Wrong number of statements", num, lst.size());
for (Statement s : lst) {
@@ -2369,7 +2377,7 @@ public abstract class AbstractModelContr
result = model.query(new SimpleSelector(subject[0], null,
(RDFNode) null));
lst = result.listStatements().toList();
- assertEquals("Wrong number of statements", (num * ent+1), lst.size());
+ assertEquals("Wrong number of statements", (num * ent + 1), lst.size());
for (Statement s : lst) {
assertEquals("Wrong subject", subject[0], s.getSubject());
}
@@ -2514,22 +2522,22 @@ public abstract class AbstractModelContr
}
-
-
/**
* Verifies that the reader reads an RDF/XML file.
*
* <ul>
- * <li> URIs in RDF inside jena are always absolute</li>
- * <li>the "base" argument in a read provides the base to make relative URIs absolute.</li>
- * <li>If the "base" on a read is not provided some reasonable value will be constructed
- * (e.g. file name) so there is no way to create an internal representation of a relative
- * URI through the read() methods.</li>
- * <li>the "base" argument in a write provides a mechanism to convert absolute URIs to
- * relative URIs in that URIs that have a namespace matching the base are written as
- * relative URIs</li>
- * <li>if the "base" is not provided no conversion to relative URIs will be performed.</li>
- * </ul>
+ * <li>URIs in RDF inside jena are always absolute</li>
+ * <li>the "base" argument in a read provides the base to make relative URIs
+ * absolute.</li>
+ * <li>If the "base" on a read is not provided some reasonable value will be
+ * constructed (e.g. file name) so there is no way to create an internal
+ * representation of a relative URI through the read() methods.</li>
+ * <li>the "base" argument in a write provides a mechanism to convert
+ * absolute URIs to relative URIs in that URIs that have a namespace
+ * matching the base are written as relative URIs</li>
+ * <li>if the "base" is not provided no conversion to relative URIs will be
+ * performed.</li>
+ * </ul>
*/
@Test
public void testRead_InputStream_String() {
@@ -2549,9 +2557,9 @@ public abstract class AbstractModelContr
"end graph missing",
SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
GraphEvents.finishRead })));
-
- assertTrue( "Can not find resolved relative statement",
- model.contains( resource( "foo:/bar/e"), null, (RDFNode)null));
+
+ assertTrue("Can not find resolved relative statement",
+ model.contains(resource("foo:/bar/e"), null, (RDFNode) null));
is = TestFileData.getRDFInput();
@@ -2562,14 +2570,12 @@ public abstract class AbstractModelContr
model.removeAll();
SL.clear();
try {
- assertSame("read() must return model", model, model.read(is, null));
- txnCommit(model);
- fail( "Should have thrown exception because of relative URIs");
- }
- catch (Exception expected)
- {
+ assertSame("read() must return model", model, model.read(is, null));
+ txnCommit(model);
+ fail("Should have thrown exception because of relative URIs");
+ } catch (Exception expected) {
// expected
- txnRollback( model );
+ txnRollback(model);
}
SL.assertHasStart("someEvent", model, GraphEvents.startRead);
@@ -2680,24 +2686,23 @@ public abstract class AbstractModelContr
model.removeAll();
SL.clear();
try {
- assertSame("read() must return model", model, model.read(reader, null));
- txnCommit(model);
- fail( "Should have thrown exception because of relative URIs");
- }
- catch (Exception expected)
- {
+ assertSame("read() must return model", model,
+ model.read(reader, null));
+ txnCommit(model);
+ fail("Should have thrown exception because of relative URIs");
+ } catch (Exception expected) {
// expected
- txnRollback( model );
+ txnRollback(model);
}
SL.assertHasStart("someEvent", model, GraphEvents.startRead);
-// assertTrue(
-// "Start graph missing",
-// SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
-// GraphEvents.startRead })));
-// assertTrue(
-// "end graph missing",
-// SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
-// GraphEvents.finishRead })));
+ // assertTrue(
+ // "Start graph missing",
+ // SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
+ // GraphEvents.startRead })));
+ // assertTrue(
+ // "end graph missing",
+ // SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ // GraphEvents.finishRead })));
// FIXME add tests for relative .
// Resource s = ResourceFactory.createProperty( null, "e"
@@ -2728,7 +2733,7 @@ public abstract class AbstractModelContr
"end graph missing",
SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
GraphEvents.finishRead })));
-
+
// FIXME add tests for converting relative to base.
// assertTrue( "Can not find resolved relative statement",
// model.contains( resource( "foo:/bar/e"), property( "foo:/bar/p5")));
@@ -2763,29 +2768,29 @@ public abstract class AbstractModelContr
@Test
public void testRead_String() throws Exception {
String fileName = getFileName("TestReaders.rdf");
-
- try {
- model.register(SL);
- txnBegin(model);
- assertSame("read() must return model", model, model.read(fileName));
- txnCommit(model);
+ try {
- assertTrue(
- "Start graph missing",
- SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.startRead })));
- assertTrue(
- "end graph missing",
- SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.finishRead })));
+ model.register(SL);
+ txnBegin(model);
+ assertSame("read() must return model", model, model.read(fileName));
+ txnCommit(model);
- // FIXME add tests for converting relative to base.
- // assertTrue( "Can not find resolved relative statement",
- // model.contains( resource( "foo:/bar/e"), property( "foo:/bar/p5")));
- }
- finally {
- new File( fileName ).delete();
+ assertTrue(
+ "Start graph missing",
+ SL.hasStart(Arrays.asList(new Object[] { "someEvent",
+ model, GraphEvents.startRead })));
+ assertTrue(
+ "end graph missing",
+ SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ GraphEvents.finishRead })));
+
+ // FIXME add tests for converting relative to base.
+ // assertTrue( "Can not find resolved relative statement",
+ // model.contains( resource( "foo:/bar/e"), property(
+ // "foo:/bar/p5")));
+ } finally {
+ new File(fileName).delete();
}
}
@@ -2793,57 +2798,58 @@ public abstract class AbstractModelContr
@Test
public void testRead_String_String() throws Exception {
String fileName = TestFileData.getTTLName();
-
+
try {
- model.register(SL);
- txnBegin(model);
- assertSame("read() must return model", model,
- model.read(fileName, "N-TRIPLE"));
- txnCommit(model);
+ model.register(SL);
+ txnBegin(model);
+ assertSame("read() must return model", model,
+ model.read(fileName, "N-TRIPLE"));
+ txnCommit(model);
- assertTrue(
- "Start graph missing",
- SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.startRead })));
- assertTrue(
- "end graph missing",
- SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.finishRead })));
+ assertTrue(
+ "Start graph missing",
+ SL.hasStart(Arrays.asList(new Object[] { "someEvent",
+ model, GraphEvents.startRead })));
+ assertTrue(
+ "end graph missing",
+ SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ GraphEvents.finishRead })));
} finally {
- new File( fileName ).delete();
+ new File(fileName).delete();
}
-
+
fileName = TestFileData.getRDFName();
try {
- // FIXME add tests for converting relative to base.
- // assertTrue( "Can not find resolved relative statement",
- // model.contains( resource( "foo:/bar/e"), property( "foo:/bar/p5")));
+ // FIXME add tests for converting relative to base.
+ // assertTrue( "Can not find resolved relative statement",
+ // model.contains( resource( "foo:/bar/e"), property(
+ // "foo:/bar/p5")));
- txnBegin(model);
- model.removeAll();
- SL.clear();
- assertSame("read() must return model", model,
- model.read(fileName, null));
- txnCommit(model);
-
- assertTrue(
- "Start graph missing",
- SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.startRead })));
- assertTrue(
- "end graph missing",
- SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.finishRead })));
+ txnBegin(model);
+ model.removeAll();
+ SL.clear();
+ assertSame("read() must return model", model,
+ model.read(fileName, null));
+ txnCommit(model);
- // FIXME add tests for relative .
- // Resource s = ResourceFactory.createProperty( null, "e"
- // ).asResource();
- // Property p = ResourceFactory.createProperty( null, "p5");
- // assertTrue( "Can not find relative statement", model.contains( s, p
- // ));
- }
- finally {
- new File( fileName ).delete();
+ assertTrue(
+ "Start graph missing",
+ SL.hasStart(Arrays.asList(new Object[] { "someEvent",
+ model, GraphEvents.startRead })));
+ assertTrue(
+ "end graph missing",
+ SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ GraphEvents.finishRead })));
+
+ // FIXME add tests for relative .
+ // Resource s = ResourceFactory.createProperty( null, "e"
+ // ).asResource();
+ // Property p = ResourceFactory.createProperty( null, "p5");
+ // assertTrue( "Can not find relative statement", model.contains( s,
+ // p
+ // ));
+ } finally {
+ new File(fileName).delete();
}
}
@@ -2853,52 +2859,53 @@ public abstract class AbstractModelContr
String fileName = TestFileData.getTTLName();
try {
- String lang = "N-TRIPLE";
+ String lang = "N-TRIPLE";
- model.register(SL);
- txnBegin(model);
- assertSame("read() must return model", model,
- model.read(fileName, "foo:/bar/", lang));
- txnCommit(model);
-
- assertTrue(
- "Start graph missing",
- SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.startRead })));
- assertTrue(
- "end graph missing",
- SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.finishRead })));
+ model.register(SL);
+ txnBegin(model);
+ assertSame("read() must return model", model,
+ model.read(fileName, "foo:/bar/", lang));
+ txnCommit(model);
- // FIXME add tests for converting relative to base.
- // assertTrue( "Can not find resolved relative statement",
- // model.contains( resource( "foo:/bar/e"), property( "foo:/bar/p5")));
+ assertTrue(
+ "Start graph missing",
+ SL.hasStart(Arrays.asList(new Object[] { "someEvent",
+ model, GraphEvents.startRead })));
+ assertTrue(
+ "end graph missing",
+ SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ GraphEvents.finishRead })));
+
+ // FIXME add tests for converting relative to base.
+ // assertTrue( "Can not find resolved relative statement",
+ // model.contains( resource( "foo:/bar/e"), property(
+ // "foo:/bar/p5")));
- txnBegin(model);
- model.removeAll();
- SL.clear();
- assertSame("read() must return model", model,
- model.read(fileName, null, lang));
- txnCommit(model);
-
- assertTrue(
- "Start graph missing",
- SL.hasStart(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.startRead })));
- assertTrue(
- "end graph missing",
- SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
- GraphEvents.finishRead })));
+ txnBegin(model);
+ model.removeAll();
+ SL.clear();
+ assertSame("read() must return model", model,
+ model.read(fileName, null, lang));
+ txnCommit(model);
- // FIXME add tests for relative .
- // Resource s = ResourceFactory.createProperty( null, "e"
- // ).asResource();
- // Property p = ResourceFactory.createProperty( null, "p5");
- // assertTrue( "Can not find relative statement", model.contains( s, p
- // ));
- }
- finally {
- new File( fileName ).delete();
+ assertTrue(
+ "Start graph missing",
+ SL.hasStart(Arrays.asList(new Object[] { "someEvent",
+ model, GraphEvents.startRead })));
+ assertTrue(
+ "end graph missing",
+ SL.hasEnd(Arrays.asList(new Object[] { "someEvent", model,
+ GraphEvents.finishRead })));
+
+ // FIXME add tests for relative .
+ // Resource s = ResourceFactory.createProperty( null, "e"
+ // ).asResource();
+ // Property p = ResourceFactory.createProperty( null, "p5");
+ // assertTrue( "Can not find relative statement", model.contains( s,
+ // p
+ // ));
+ } finally {
+ new File(fileName).delete();
}
}
@@ -3129,32 +3136,34 @@ public abstract class AbstractModelContr
assertFalse("Listener recorded " + s, SL.contains(s));
}
}
-
+
@Test
- public void testRemoveAllReifications_Statement()
- {
+ public void testRemoveAllReifications_Statement() {
Statement s = statement("S P O");
txnBegin(model);
- modelAdd( model, "S P O; S P2 O2; S2 P O");
+ modelAdd(model, "S P O; S P2 O2; S2 P O");
model.createReifiedStatement("foo:bar", s);
model.createReifiedStatement("foo:bap", s);
- model.createReifiedStatement("foo:baz", statement( "S P2 O"));
+ model.createReifiedStatement("foo:baz", statement("S P2 O"));
txnCommit(model);
-
+
model.register(SL);
txnBegin(model);
model.removeAllReifications(s);
-
- Statement[] removed = { statement( "foo:bar rdf:subject S" ), statement( "foo:bar rdf:predicate P" ), statement( "foo:bar rdf:object O" ),
- statement( "foo:bar rdf:type rdf:Statement"),
- statement( "foo:bap rdf:subject S" ), statement( "foo:bap rdf:predicate P" ), statement( "foo:bap rdf:object O" ),
- statement( "foo:bap rdf:type rdf:Statement")};
-
- for (Statement stmt : removed)
- {
- assertTrue( "Missing remove "+stmt, SL.contains( "remove", stmt ));
+
+ Statement[] removed = { statement("foo:bar rdf:subject S"),
+ statement("foo:bar rdf:predicate P"),
+ statement("foo:bar rdf:object O"),
+ statement("foo:bar rdf:type rdf:Statement"),
+ statement("foo:bap rdf:subject S"),
+ statement("foo:bap rdf:predicate P"),
+ statement("foo:bap rdf:object O"),
+ statement("foo:bap rdf:type rdf:Statement") };
+
+ for (Statement stmt : removed) {
+ assertTrue("Missing remove " + stmt, SL.contains("remove", stmt));
}
-
+
// verify remaining reificaiton exists
List<ReifiedStatement> rsList = model.listReifiedStatements().toList();
assertEquals("Statement was not reified", 1, rsList.size());
@@ -3163,86 +3172,85 @@ public abstract class AbstractModelContr
}
@Test
- public void testRemoveReification_ReifiedStatement()
- {
+ public void testRemoveReification_ReifiedStatement() {
Statement s = statement("S P O");
txnBegin(model);
- modelAdd( model, "S P O; S P2 O2; S2 P O");
+ modelAdd(model, "S P O; S P2 O2; S2 P O");
ReifiedStatement rs = model.createReifiedStatement("foo:bar", s);
model.createReifiedStatement("foo:bap", s);
- model.createReifiedStatement("foo:baz", statement( "S P2 O"));
+ model.createReifiedStatement("foo:baz", statement("S P2 O"));
txnCommit(model);
-
+
model.register(SL);
txnBegin(model);
model.removeReification(rs);
-
- Statement[] removed = { statement( "foo:bar rdf:subject S" ), statement( "foo:bar rdf:predicate P" ), statement( "foo:bar rdf:object O" ),
- statement( "foo:bar rdf:type rdf:Statement")
- };
-
- for (Statement stmt : removed)
- {
- assertTrue( "Missing remove "+stmt, SL.contains( "remove", stmt ));
+
+ Statement[] removed = { statement("foo:bar rdf:subject S"),
+ statement("foo:bar rdf:predicate P"),
+ statement("foo:bar rdf:object O"),
+ statement("foo:bar rdf:type rdf:Statement") };
+
+ for (Statement stmt : removed) {
+ assertTrue("Missing remove " + stmt, SL.contains("remove", stmt));
}
-
+
// verify remaining reificaiton exists
List<ReifiedStatement> rsList = model.listReifiedStatements().toList();
assertEquals("Statement was not reified", 2, rsList.size());
assertNotEquals(rsList.get(0).getURI(), rsList.get(1).getURI());
- List<String> lst = Arrays.asList( new String[]{"foo:baz", "foo:bap"});
- assertTrue( "Unexpected "+ rsList.get(0).getURI(), lst.contains( rsList.get(0).getURI() ));
- assertTrue( "Unexpected "+ rsList.get(1).getURI(), lst.contains( rsList.get(1).getURI() ));
+ List<String> lst = Arrays.asList(new String[] { "foo:baz", "foo:bap" });
+ assertTrue("Unexpected " + rsList.get(0).getURI(),
+ lst.contains(rsList.get(0).getURI()));
+ assertTrue("Unexpected " + rsList.get(1).getURI(),
+ lst.contains(rsList.get(1).getURI()));
}
-
+
/**
- * size will return the number of statements in a concrete model, for a virtualized model such as one created by an
- * inference engine, it will return an estimated lower bound for the numberof statements in the model but it is
- * possible for a subsequent listStatements on such a model to discover more statements than size() indicated.
+ * size will return the number of statements in a concrete model, for a
+ * virtualized model such as one created by an inference engine, it will
+ * return an estimated lower bound for the numberof statements in the model
+ * but it is possible for a subsequent listStatements on such a model to
+ * discover more statements than size() indicated.
*/
@Test
- public void testSize()
- {
+ public void testSize() {
txnBegin(model);
modelAdd(model, "a P 1; b P 2; c P 3; a P2 'foo'; c P 2");
txnCommit(model);
- assertTrue( "Size is reported too small", 5<=model.size());
+ assertTrue("Size is reported too small", 5 <= model.size());
}
-
+
@Test
public void testSupportsSetOperations() {
- Model m = memModel( "S P O");
- if (model.supportsSetOperations())
- {
+ Model m = memModel("S P O");
+ if (model.supportsSetOperations()) {
// these should all work
- model.union( m );
- model.intersection( m );
- model.difference( m );
- }
- else
- {
+ model.union(m);
+ model.intersection(m);
+ model.difference(m);
+ } else {
// these should throw exceptions
try {
- model.union( m );
- fail( "Should have thrown UnsupportedOperationException");
+ model.union(m);
+ fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException expected) {
// expected
}
try {
- model.intersection( m );
- fail( "Should have thrown UnsupportedOperationException");
+ model.intersection(m);
+ fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException expected) {
// expected
}
try {
- model.difference( m );
- fail( "Should have thrown UnsupportedOperationException");
+ model.difference(m);
+ fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException expected) {
// expected
}
}
}
-
+
@Test
public void testSupportsTransactions() {
if (model.supportsTransactions()) {
@@ -3256,7 +3264,7 @@ public abstract class AbstractModelContr
} else {
try {
model.begin();
- fail( "Should have thrown UnsupportedOperationException");
+ fail("Should have thrown UnsupportedOperationException");
} catch (UnsupportedOperationException expected) {
// expected
}
@@ -3264,10 +3272,8 @@ public abstract class AbstractModelContr
}
@Test
- public void testUnion()
- {
- if (model.supportsSetOperations())
- {
+ public void testUnion() {
+ if (model.supportsSetOperations()) {
txnBegin(model);
modelAdd(
model,
@@ -3281,246 +3287,254 @@ public abstract class AbstractModelContr
Model disjoint = memModel(" _3 R b; _3 R 5; _3 R _1; _3 R 'foo'");
Model result = model.union(subset);
-
+
assertTrue("result does not contain some model statements",
result.containsAll(model));
- assertEquals( "Wrong number of statements", 10, result.listStatements().toList().size() );
+ assertEquals("Wrong number of statements", 10, result
+ .listStatements().toList().size());
- result = model.union( disjoint );
+ result = model.union(disjoint);
assertTrue("result does not contain some model statements",
result.containsAll(model));
assertTrue("result does not contain some disjoint statements",
result.containsAll(disjoint));
-
- assertEquals( "Wrong number of statements", 14, result.listStatements().toList().size() );
+
+ assertEquals("Wrong number of statements", 14, result
+ .listStatements().toList().size());
}
}
-
+
@Test
public void testUnregister_ModelChangedListener() {
// adding and removed results in no reports
model.register(SL);
- assertSame( "Unregister must return the model", model, model.unregister(SL));
- txnBegin( model );
+ assertSame("Unregister must return the model", model,
+ model.unregister(SL));
+ txnBegin(model);
model.add(statement("X R 1"));
- txnCommit( model );
+ txnCommit(model);
SL.assertHas(new Object[] {});
-
+
// adding 2x an removed results in 1 reports
SL.clear();
model.register(SL);
model.register(SL);
model.unregister(SL);
- txnBegin( model );
+ txnBegin(model);
model.add(statement("X R 2"));
- txnCommit( model );
+ txnCommit(model);
SL.assertHas(new Object[] { "add", statement("X R 2") });
-
+
// removing all +1 does not result in an error
- model.unregister(SL); // remove the one
+ model.unregister(SL); // remove the one
model.unregister(SL); // remove one that does not exist
-
- txnBegin( model );
+
+ txnBegin(model);
model.add(statement("X R 3"));
- txnCommit( model );
-
+ txnCommit(model);
+
}
@Test
- public void testWrite_OutputStream() throws Exception
- {
+ public void testWrite_OutputStream() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- model.write( baos );
-
+
+ model.write(baos);
+
// parse as XML and do xpath to see if the items exist
- ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray());
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setNamespaceAware(true);
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(bais);
- XPath xPath = XPathFactory.newInstance().newXPath();
+ XPath xPath = XPathFactory.newInstance().newXPath();
xPath.setNamespaceContext(new HardcodedNamespaceResolver());
- //org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile("//rdf:Descripiton[@rdf:about='eh:/S']").evaluate(doc, XPathConstants.NODE);
- org.w3c.dom.Node desc = (org.w3c.dom.Node) xPath.compile( "//rdf:Description[contains(@rdf:about, 'eh:/S')]").evaluate(doc, XPathConstants.NODE);
- assertNotNull( "Can not find the subject eh:/S", desc );
- org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile( "eh:P3").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P3", n );
- assertEquals( "P3 not saved correctly", "foo", n.getTextContent());
-
- n = (org.w3c.dom.Node) xPath.compile( "eh:P[contains(@rdf:resource,'eh:/O')]").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P", n );
-
- n = (org.w3c.dom.Node) xPath.compile( "eh:P2/@rdf:nodeID").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P2", n );
+ // org.w3c.dom.Node n = (org.w3c.dom.Node)
+ // xPath.compile("//rdf:Descripiton[@rdf:about='eh:/S']").evaluate(doc,
+ // XPathConstants.NODE);
+ org.w3c.dom.Node desc = (org.w3c.dom.Node) xPath.compile(
+ "//rdf:Description[contains(@rdf:about, 'eh:/S')]").evaluate(
+ doc, XPathConstants.NODE);
+ assertNotNull("Can not find the subject eh:/S", desc);
+ org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile("eh:P3")
+ .evaluate(desc, XPathConstants.NODE);
+ assertNotNull("Can not find eh:P3", n);
+ assertEquals("P3 not saved correctly", "foo", n.getTextContent());
+
+ n = (org.w3c.dom.Node) xPath.compile(
+ "eh:P[contains(@rdf:resource,'eh:/O')]").evaluate(desc,
+ XPathConstants.NODE);
+ assertNotNull("Can not find eh:P", n);
+
+ n = (org.w3c.dom.Node) xPath.compile("eh:P2/@rdf:nodeID").evaluate(
+ desc, XPathConstants.NODE);
+ assertNotNull("Can not find eh:P2", n);
}
-
+
private class HardcodedNamespaceResolver implements NamespaceContext {
- /**
- * This method returns the uri for all prefixes needed. Wherever possible
- * it uses XMLConstants.
- *
- * @param prefix
- * @return uri
- */
- @Override
+ /**
+ * This method returns the uri for all prefixes needed. Wherever
+ * possible it uses XMLConstants.
+ *
+ * @param prefix
+ * @return uri
+ */
+ @Override
public String getNamespaceURI(String prefix) {
- if (prefix == null) {
- throw new IllegalArgumentException("No prefix provided!");
- } else if (prefix.equals("rdf")) {
- return "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
- } else if (prefix.equals("eh")) {
- return "eh:/";
- } else {
- return XMLConstants.NULL_NS_URI;
- }
- }
+ if (prefix == null) {
+ throw new IllegalArgumentException("No prefix provided!");
+ } else if (prefix.equals("rdf")) {
+ return "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+ } else if (prefix.equals("eh")) {
+ return "eh:/";
+ } else {
+ return XMLConstants.NULL_NS_URI;
+ }
+ }
- @Override
+ @Override
public String getPrefix(String namespaceURI) {
- // Not needed in this context.
- return null;
- }
+ // Not needed in this context.
+ return null;
+ }
- @Override
+ @Override
public Iterator<String> getPrefixes(String namespaceURI) {
- // Not needed in this context.
- return null;
- }
+ // Not needed in this context.
+ return null;
+ }
}
-
+
@Test
- public void testWrite_OutputStream_String() throws Exception
- {
+ public void testWrite_OutputStream_String() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- model.write( baos, "N-TRIPLES" );
-
+
+ model.write(baos, "N-TRIPLES");
+
String result = baos.toString();
-
- assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> \"foo\""));
- assertTrue( "Missing P2", result.contains( "<eh:/S> <eh:/P2> _:"));
- assertTrue( "Missing P", result.contains( "<eh:/S> <eh:/P> <eh:/O>"));
-
+
+ assertTrue("Missing P3", result.contains("<eh:/S> <eh:/P3> \"foo\""));
+ assertTrue("Missing P2", result.contains("<eh:/S> <eh:/P2> _:"));
+ assertTrue("Missing P", result.contains("<eh:/S> <eh:/P> <eh:/O>"));
+
}
@Test
- public void testWrite_OutputStream_String_String() throws Exception
- {
+ public void testWrite_OutputStream_String_String() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- model.add( resource("S"), property("P4"), model.createResource("A"));
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ model.add(resource("S"), property("P4"), model.createResource("A"));
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- model.write( baos, "N-TRIPLES", "foo://bar" );
-
+
+ model.write(baos, "N-TRIPLES", "foo://bar");
+
String result = baos.toString();
-
- assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> \"foo\""));
- assertTrue( "Missing P2", result.contains( "<eh:/S> <eh:/P2> _:"));
- assertTrue( "Missing P", result.contains( "<eh:/S> <eh:/P> <eh:/O>"));
+
+ assertTrue("Missing P3", result.contains("<eh:/S> <eh:/P3> \"foo\""));
+ assertTrue("Missing P2", result.contains("<eh:/S> <eh:/P2> _:"));
+ assertTrue("Missing P", result.contains("<eh:/S> <eh:/P> <eh:/O>"));
// TODO figure out how to work iwth base
- // assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> <foo://bar/A>"));
-
+ // assertTrue( "Missing P3", result.contains(
+ // "<eh:/S> <eh:/P3> <foo://bar/A>"));
+
}
-
+
@Test
- public void testWrite_Writer() throws Exception
- {
+ public void testWrite_Writer() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Writer writer = new OutputStreamWriter( baos );
-
- model.write( writer );
-
+ Writer writer = new OutputStreamWriter(baos);
+
+ model.write(writer);
+
// parse as XML and do xpaht to see if the items exist
- ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray());
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
dbFactory.setNamespaceAware(true);
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(bais);
- XPath xPath = XPathFactory.newInstance().newXPath();
+ XPath xPath = XPathFactory.newInstance().newXPath();
xPath.setNamespaceContext(new HardcodedNamespaceResolver());
- //org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile("//rdf:Descripiton[@rdf:about='eh:/S']").evaluate(doc, XPathConstants.NODE);
- org.w3c.dom.Node desc = (org.w3c.dom.Node) xPath.compile( "//rdf:Description[contains(@rdf:about, 'eh:/S')]").evaluate(doc, XPathConstants.NODE);
- assertNotNull( "Can not find the subject eh:/S", desc );
- org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile( "eh:P3").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P3", n );
- assertEquals( "P3 not saved correctly", "foo", n.getTextContent());
-
- n = (org.w3c.dom.Node) xPath.compile( "eh:P[contains(@rdf:resource,'eh:/O')]").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P", n );
-
- n = (org.w3c.dom.Node) xPath.compile( "eh:P2/@rdf:nodeID").evaluate(desc, XPathConstants.NODE);
- assertNotNull( "Can not find eh:P2", n );
+ // org.w3c.dom.Node n = (org.w3c.dom.Node)
+ // xPath.compile("//rdf:Descripiton[@rdf:about='eh:/S']").evaluate(doc,
+ // XPathConstants.NODE);
+ org.w3c.dom.Node desc = (org.w3c.dom.Node) xPath.compile(
+ "//rdf:Description[contains(@rdf:about, 'eh:/S')]").evaluate(
+ doc, XPathConstants.NODE);
+ assertNotNull("Can not find the subject eh:/S", desc);
+ org.w3c.dom.Node n = (org.w3c.dom.Node) xPath.compile("eh:P3")
+ .evaluate(desc, XPathConstants.NODE);
+ assertNotNull("Can not find eh:P3", n);
+ assertEquals("P3 not saved correctly", "foo", n.getTextContent());
+
+ n = (org.w3c.dom.Node) xPath.compile(
+ "eh:P[contains(@rdf:resource,'eh:/O')]").evaluate(desc,
+ XPathConstants.NODE);
+ assertNotNull("Can not find eh:P", n);
+
+ n = (org.w3c.dom.Node) xPath.compile("eh:P2/@rdf:nodeID").evaluate(
+ desc, XPathConstants.NODE);
+ assertNotNull("Can not find eh:P2", n);
}
-
+
@Test
- public void testWrite_Writer_String() throws Exception
- {
+ public void testWrite_Writer_String() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Writer writer = new OutputStreamWriter( baos );
-
- model.write( writer, "N-TRIPLES" );
-
+ Writer writer = new OutputStreamWriter(baos);
+
+ model.write(writer, "N-TRIPLES");
+
String result = baos.toString();
-
- assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> \"foo\""));
- assertTrue( "Missing P2", result.contains( "<eh:/S> <eh:/P2> _:"));
- assertTrue( "Missing P", result.contains( "<eh:/S> <eh:/P> <eh:/O>"));
-
+
+ assertTrue("Missing P3", result.contains("<eh:/S> <eh:/P3> \"foo\""));
+ assertTrue("Missing P2", result.contains("<eh:/S> <eh:/P2> _:"));
+ assertTrue("Missing P", result.contains("<eh:/S> <eh:/P> <eh:/O>"));
+
}
@Test
- public void testWrite_Writer_String_String() throws Exception
- {
+ public void testWrite_Writer_String_String() throws Exception {
txnBegin(model);
- modelAdd(model,
- "S P O; S P2 _1; S P3 'foo'");
- model.add( resource("S"), property("P4"), model.createResource("A"));
- txnCommit(model);
-
+ modelAdd(model, "S P O; S P2 _1; S P3 'foo'");
+ model.add(resource("S"), property("P4"), model.createResource("A"));
+ txnCommit(model);
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Writer writer = new OutputStreamWriter( baos );
-
- model.write( writer, "N-TRIPLES", "foo://bar/" );
-
+ Writer writer = new OutputStreamWriter(baos);
+
+ model.write(writer, "N-TRIPLES", "foo://bar/");
+
String result = baos.toString();
-
- assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> \"foo\""));
- assertTrue( "Missing P2", result.contains( "<eh:/S> <eh:/P2> _:"));
- assertTrue( "Missing P", result.contains( "<eh:/S> <eh:/P> <eh:/O>"));
+
+ assertTrue("Missing P3", result.contains("<eh:/S> <eh:/P3> \"foo\""));
+ assertTrue("Missing P2", result.contains("<eh:/S> <eh:/P2> _:"));
+ assertTrue("Missing P", result.contains("<eh:/S> <eh:/P> <eh:/O>"));
// TODO figure out how to work iwth base
- // assertTrue( "Missing P3", result.contains( "<eh:/S> <eh:/P3> <foo://bar/A>"));
-
+ // assertTrue( "Missing P3", result.contains(
+ // "<eh:/S> <eh:/P3> <foo://bar/A>"));
+
}
-
-
+
}
Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java?rev=1530718&r1=1530717&r2=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelFactoryTest.java Wed Oct 9 17:16:15 2013
@@ -31,62 +31,51 @@ import com.hp.hpl.jena.reasoner.rulesys.
import com.hp.hpl.jena.reasoner.rulesys.Rule;
import com.hp.hpl.jena.shared.PrefixMapping;
import com.hp.hpl.jena.test.JenaTestBase;
-import com.hp.hpl.jena.testing_framework.AbstractModelProducerUser;
-import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
-
import org.junit.Assert;
import org.junit.Test;
/**
- * Tests the ModelFactory code. Very skeletal at the moment. It's really
- * testing that the methods actually exists, but it doesn't check much in
- * the way of behaviour.
+ * Tests the ModelFactory code. Very skeletal at the moment. It's really testing
+ * that the methods actually exists, but it doesn't check much in the way of
+ * behaviour.
*
*/
-public class ModelFactoryTest
-{
+public class ModelFactoryTest {
@Test
- public void testAssembleModelFromModel()
- {
- // TODO Assert.assertNotNull( ModelFactory.assembleModelFrom( ModelFactory.createDefaultModel()) );
+ public void testAssembleModelFromModel() {
+ // TODO Assert.assertNotNull( ModelFactory.assembleModelFrom(
+ // ModelFactory.createDefaultModel()) );
}
@Test
- public void testAssmbleModelFromRoot()
- {
+ public void testAssmbleModelFromRoot() {
// TODO Model assembleModelFrom( Resource root )
}
/**
* Test that ModelFactory.createDefaultModel() exists. [Should check that
- * the Model
- * is truly a "default" model.]
+ * the Model is truly a "default" model.]
*/
@Test
- public void testCreateDefaultModel()
- {
+ public void testCreateDefaultModel() {
Model m = ModelFactory.createDefaultModel();
try {
Assert.assertNotNull(m);
- }
- finally {
- if (m != null)
- {
+ } finally {
+ if (m != null) {
m.close();
}
}
}
@Test
- public void testCreateInfModel()
- {
+ public void testCreateInfModel() {
Model model = ModelFactory.createDefaultModel();
final String rule = "-> (eg:r eg:p eg:v).";
final Reasoner r = new GenericRuleReasoner(Rule.parseRules(rule));
- final InfGraph ig = r
- .bind(model.getGraph());
+ final InfGraph ig = r.bind(model.getGraph());
final InfModel im = ModelFactory.createInfModel(ig);
JenaTestBase.assertInstanceOf(InfModel.class, im);
Assert.assertEquals(1, im.size());
@@ -97,8 +86,7 @@ public class ModelFactoryTest
* graphs. (We don't check that Union works - that's done in the Union
* tests, we hope.)
*/
- public void testCreateUnion()
- {
+ public void testCreateUnion() {
final Model m1 = ModelFactory.createDefaultModel();
final Model m2 = ModelFactory.createDefaultModel();
final Model m = ModelFactory.createUnion(m1, m2);
@@ -107,19 +95,16 @@ public class ModelFactoryTest
Assert.assertSame(m2.getGraph(), ((Union) m.getGraph()).getR());
}
- public void testFindAssemblerRoots()
- {
+ public void testFindAssemblerRoots() {
// TODO Set ModelFactory.findAssemblerRoots( Model model )
}
- public void testGetDefaultPrefixMapping()
- {
+ public void testGetDefaultPrefixMapping() {
Assert.assertSame(ModelCom.getDefaultModelPrefixes(),
ModelFactory.getDefaultModelPrefixes());
}
- public void testSetDefaultPrefixMapping()
- {
+ public void testSetDefaultPrefixMapping() {
final PrefixMapping original = ModelCom.getDefaultModelPrefixes();
final PrefixMapping pm = PrefixMapping.Factory.create();
ModelFactory.setDefaultModelPrefixes(pm);
@@ -128,5 +113,4 @@ public class ModelFactoryTest
ModelCom.setDefaultModelPrefixes(original);
}
-
}
Modified: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java?rev=1530718&r1=1530717&r2=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/ModelTestBase.java Wed Oct 9 17:16:15 2013
@@ -275,4 +275,4 @@
// super(name);
// }
//
-//}
+// }
Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFListContractTests.java (from r1525287, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFListContractTests.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFListContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFListContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFListContractTests.java&r1=1525287&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFListContractTests.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFListContractTests.java Wed Oct 9 17:16:15 2013
@@ -33,8 +33,7 @@ import com.hp.hpl.jena.rdf.model.Propert
import com.hp.hpl.jena.rdf.model.RDFList;
import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.rdf.model.Resource;
-import com.hp.hpl.jena.testing_framework.AbstractModelProducerUser;
-import com.hp.hpl.jena.testing_framework.ModelProducerInterface;
+import com.hp.hpl.jena.testing_framework.INodeProducer;
import com.hp.hpl.jena.util.iterator.Map1;
import com.hp.hpl.jena.vocabulary.RDF;
@@ -50,6 +49,7 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.xenei.junit.contract.Contract;
/**
* <p>
@@ -59,46 +59,39 @@ import org.slf4j.LoggerFactory;
*
*
*/
-public class AbstractRDFListContractTests extends
-AbstractModelProducerUser {
-
- @Override
- public ModelProducerInterface getModelProducer() {
- // TODO Auto-generated method stub
- return null;
- }
-
+@Contract(RDFList.class)
+public abstract class RDFListContractTests {
+
+ @Contract.Inject( "org.xenei.junit.contract.IProducer<%s>" )
+ abstract public INodeProducer<RDFList> getListProducer();
+
private Model model;
-
+
@Before
- final public void setupAbstractRDFListTest()
- {
- model = getModelProducer().newModel();
+ final public void beforeRDFListContractTests() {
+ model = getListProducer().getModel();
}
-
+
// Constants
// ////////////////////////////////
public static final String NS = "uri:urn:x-rdf:test#";
/** Test that an iterator delivers the expected values */
- protected static void iteratorTest( final Iterator<?> i,
- final Object[] expected )
- {
- final Logger logger = LoggerFactory.getLogger(AbstractRDFListContractTests.class);
+ protected static void iteratorTest(final Iterator<?> i,
+ final Object[] expected) {
+ final Logger logger = LoggerFactory
+ .getLogger(RDFListContractTests.class);
final List<Object> expList = new ArrayList<Object>();
- for (final Object element : expected)
- {
+ for (final Object element : expected) {
expList.add(element);
}
- while (i.hasNext())
- {
+ while (i.hasNext()) {
final Object next = i.next();
// debugging
- if (!expList.contains(next))
- {
+ if (!expList.contains(next)) {
logger.debug("TestList - Unexpected iterator result: " + next);
}
@@ -109,11 +102,9 @@ AbstractModelProducerUser {
+ " was not removed from the list ", expList.remove(next));
}
- if (!(expList.size() == 0))
- {
+ if (!(expList.size() == 0)) {
logger.debug("TestList - Expected iterator results not found");
- for (final Object object : expList)
- {
+ for (final Object object : expList) {
logger.debug("TestList - missing: " + object);
}
}
@@ -138,42 +129,26 @@ AbstractModelProducerUser {
// External signature methods
// ////////////////////////////////
/*
- * public static TestSuite suite() {
- * TestSuite s = new TestSuite( "TestList" );
- * TestList tl = new TestList();
- * for (int i = 0; i <= 5; i++) {
- * s.addTest( new CountTest( i ) );
- * s.addTest( new TailTest( i ) );
- * }
+ * public static TestSuite suite() { TestSuite s = new TestSuite( "TestList"
+ * ); TestList tl = new TestList(); for (int i = 0; i <= 5; i++) {
+ * s.addTest( new CountTest( i ) ); s.addTest( new TailTest( i ) ); }
*
- * s.addTest( new ValidityTest() );
- * s.addTest( new HeadTest() );
- * s.addTest( new SetHeadTest() );
- * s.addTest( new SetTailTest() );
- * s.addTest( new ConsTest() );
- * s.addTest( new AddTest() );
- * s.addTest( new TestListGet() );
- * s.addTest( new ReplaceTest() );
- * s.addTest( new IndexTest1() );
- * s.addTest( new IndexTest2() );
- * s.addTest( new AppendTest() );
- * s.addTest( new ConcatenateTest() );
- * s.addTest( new ConcatenateTest2() );
- * s.addTest( new ApplyTest() );
- * s.addTest( new ReduceTest() );
- * s.addTest( new RemoveTest() );
- * s.addTest( new Map1Test() );
- * s.addTest( new ListEqualsTest() );
- * s.addTest( new ListSubclassTest() );
- * s.addTest( new UserDefinedListTest() );
+ * s.addTest( new ValidityTest() ); s.addTest( new HeadTest() ); s.addTest(
+ * new SetHeadTest() ); s.addTest( new SetTailTest() ); s.addTest( new
+ * ConsTest() ); s.addTest( new AddTest() ); s.addTest( new TestListGet() );
+ * s.addTest( new ReplaceTest() ); s.addTest( new IndexTest1() ); s.addTest(
+ * new IndexTest2() ); s.addTest( new AppendTest() ); s.addTest( new
+ * ConcatenateTest() ); s.addTest( new ConcatenateTest2() ); s.addTest( new
+ * ApplyTest() ); s.addTest( new ReduceTest() ); s.addTest( new RemoveTest()
+ * ); s.addTest( new Map1Test() ); s.addTest( new ListEqualsTest() );
+ * s.addTest( new ListSubclassTest() ); s.addTest( new UserDefinedListTest()
+ * );
*
- * return s;
- * }
+ * return s; }
*/
- protected void checkValid( final String testName, final RDFList l,
- final boolean validExpected )
- {
+ protected void checkValid(final String testName, final RDFList l,
+ final boolean validExpected) {
l.setStrict(true);
final boolean valid = l.isValid();
// for debugging ... String s = l.getValidityErrorMessage();
@@ -184,13 +159,12 @@ AbstractModelProducerUser {
// Internal implementation methods
// ////////////////////////////////
- protected RDFList getListRoot( final Model m )
- {
- final Resource root = m.getResource(AbstractRDFListContractTests.NS + "root");
+ protected RDFList getListRoot(final Model m) {
+ final Resource root = m.getResource(RDFListContractTests.NS + "root");
Assert.assertNotNull("Root resource should not be null", root);
final Resource listHead = root.getRequiredProperty(
- m.getProperty(AbstractRDFListContractTests.NS + "p")).getResource();
+ m.getProperty(RDFListContractTests.NS + "p")).getResource();
final RDFList l = listHead.as(RDFList.class);
Assert.assertNotNull("as(RDFList) should not return null for root", l);
@@ -199,25 +173,24 @@ AbstractModelProducerUser {
}
@Test
- public void testAdd()
- {
+ public void testAdd() {
- final Resource root = model.createResource(AbstractRDFListContractTests.NS + "root");
- final Property p = model.createProperty(AbstractRDFListContractTests.NS, "p");
+ final Resource root = model.createResource(RDFListContractTests.NS
+ + "root");
+ final Property p = model.createProperty(RDFListContractTests.NS, "p");
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list = nil.as(RDFList.class);
final Resource[] toAdd = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"),
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e"), };
+ model.createResource(RDFListContractTests.NS + "a"),
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e"), };
// add each of these resources onto the end of the list
- for (final Resource element : toAdd)
- {
+ for (final Resource element : toAdd) {
final RDFList list0 = list.with(element);
checkValid("addTest0", list0, true);
@@ -232,7 +205,7 @@ AbstractModelProducerUser {
// should be isomorphic with list 5
final Model m0 = ModelFactory.createDefaultModel();
- m0.read( getFileName( "ontology/list5.rdf"));
+ m0.read(getFileName("ontology/list5.rdf"));
Assert.assertTrue("Add'ed and read models should be the same",
m0.isIsomorphicWith(model));
@@ -240,18 +213,17 @@ AbstractModelProducerUser {
}
@Test
- public void testAppend()
- {
+ public void testAppend() {
model.read(getFileName("ontology/list5.rdf"));
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list = nil.as(RDFList.class);
- final Resource r = model.createResource(AbstractRDFListContractTests.NS + "foo");
+ final Resource r = model
+ .createResource(RDFListContractTests.NS + "foo");
// create a list of foos
- for (int i = 0; i < 5; i++)
- {
+ for (int i = 0; i < 5; i++) {
list = list.cons(r);
}
@@ -279,19 +251,16 @@ AbstractModelProducerUser {
}
@Test
- public void testApply()
- {
+ public void testApply() {
model.read(getFileName("ontology/list5.rdf"));
final RDFList root = getListRoot(model);
- class MyApply implements RDFList.ApplyFn
- {
+ class MyApply implements RDFList.ApplyFn {
String collect = "";
@Override
- public void apply( final RDFNode n )
- {
+ public void apply(final RDFNode n) {
collect = collect + ((Resource) n).getLocalName();
}
}
@@ -306,18 +275,17 @@ AbstractModelProducerUser {
}
@Test
- public void testConcatenate()
- {
+ public void testConcatenate() {
model.read(getFileName("ontology/list5.rdf"));
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list = nil.as(RDFList.class);
- final Resource r = model.createResource(AbstractRDFListContractTests.NS + "foo");
+ final Resource r = model
+ .createResource(RDFListContractTests.NS + "foo");
// create a list of foos
- for (int i = 0; i < 5; i++)
- {
+ for (int i = 0; i < 5; i++) {
list = list.cons(r);
}
@@ -340,18 +308,17 @@ AbstractModelProducerUser {
}
@Test
- public void testConcatenate2()
- {
+ public void testConcatenate2() {
model.read(getFileName("ontology/list5.rdf"));
- final Resource a = model.createResource(AbstractRDFListContractTests.NS + "a");
+ final Resource a = model.createResource(RDFListContractTests.NS + "a");
// create a list of foos
final Resource[] rs = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e") };
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e") };
final RDFList aList = model.createList().cons(a);
final RDFList rsList = model.createList(rs);
@@ -366,24 +333,23 @@ AbstractModelProducerUser {
}
@Test
- public void testCons()
- {
- final Resource root = model.createResource(AbstractRDFListContractTests.NS + "root");
- final Property p = model.createProperty(AbstractRDFListContractTests.NS, "p");
+ public void testCons() {
+ final Resource root = model.createResource(RDFListContractTests.NS
+ + "root");
+ final Property p = model.createProperty(RDFListContractTests.NS, "p");
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list = nil.as(RDFList.class);
final Resource[] toAdd = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "e"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "a"), };
+ model.createResource(RDFListContractTests.NS + "e"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "a"), };
// cons each of these resources onto the front of the list
- for (final Resource element : toAdd)
- {
+ for (final Resource element : toAdd) {
final RDFList list0 = list.cons(element);
checkValid("constest1", list0, true);
@@ -405,12 +371,10 @@ AbstractModelProducerUser {
}
@Test
- public void testCount()
- {
- for (int i = 0; i <= 5; i++)
- {
+ public void testCount() {
+ for (int i = 0; i <= 5; i++) {
model.removeAll();
- model.read( getFileName("ontology/list" + i + ".rdf"));
+ model.read(getFileName("ontology/list" + i + ".rdf"));
final RDFList l0 = getListRoot(model);
Assert.assertEquals("List size should be " + i, i, l0.size());
@@ -419,38 +383,35 @@ AbstractModelProducerUser {
}
@Test
- public void testHead()
- {
+ public void testHead() {
model.read(getFileName("ontology/list5.rdf"));
RDFList l0 = getListRoot(model);
final String[] names = { "a", "b", "c", "d", "e" };
- for (final String name : names)
- {
- Assert.assertEquals("head of list has incorrect URI", AbstractRDFListContractTests.NS
- + name, ((Resource) l0.getHead()).getURI());
+ for (final String name : names) {
+ Assert.assertEquals("head of list has incorrect URI",
+ RDFListContractTests.NS + name,
+ ((Resource) l0.getHead()).getURI());
l0 = l0.getTail();
}
}
@Test
- public void testIndex1()
- {
+ public void testIndex1() {
model.read(getFileName("ontology/list5.rdf"));
final Resource[] toGet = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"),
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e"), };
+ model.createResource(RDFListContractTests.NS + "a"),
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e"), };
final RDFList l1 = getListRoot(model);
// check the indexes are correct
- for (int i = 0; i < toGet.length; i++)
- {
+ for (int i = 0; i < toGet.length; i++) {
Assert.assertTrue("list should contain element " + i,
l1.contains(toGet[i]));
Assert.assertEquals("list element " + i + " is not correct", i,
@@ -459,23 +420,20 @@ AbstractModelProducerUser {
}
@Test
- public void testIndex2()
- {
+ public void testIndex2() {
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list = nil.as(RDFList.class);
- final Resource r = model.createResource(AbstractRDFListContractTests.NS + "a");
+ final Resource r = model.createResource(RDFListContractTests.NS + "a");
// cons each a's onto the front of the list
- for (int i = 0; i < 10; i++)
- {
+ for (int i = 0; i < 10; i++) {
list = list.cons(r);
}
// now index them back again
- for (int j = 0; j < 10; j++)
- {
+ for (int j = 0; j < 10; j++) {
Assert.assertEquals("index of j'th item should be j", j,
list.indexOf(r, j));
}
@@ -483,43 +441,43 @@ AbstractModelProducerUser {
}
@Test
- public void testListEquals()
- {
+ public void testListEquals() {
final Resource nil = model.getResource(RDF.nil.getURI());
final RDFList nilList = nil.as(RDFList.class);
// create a list of foos
final Resource[] r0 = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"), // canonical
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e") };
+ model.createResource(RDFListContractTests.NS + "a"), // canonical
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e") };
final Resource[] r1 = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"), // same
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e") };
+ model.createResource(RDFListContractTests.NS + "a"), // same
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e") };
final Resource[] r2 = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"), // one shorter
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d") };
+ model.createResource(RDFListContractTests.NS + "a"), // one
+ // shorter
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d") };
final Resource[] r3 = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"), // elements
+ model.createResource(RDFListContractTests.NS + "a"), // elements
// swapped
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "e") };
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "e") };
final Resource[] r4 = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"), // different
+ model.createResource(RDFListContractTests.NS + "a"), // different
// name
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "D"),
- model.createResource(AbstractRDFListContractTests.NS + "e") };
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "D"),
+ model.createResource(RDFListContractTests.NS + "e") };
final Object[][] testSpec = new Object[][] { { r0, r1, Boolean.TRUE },
{ r0, r2, Boolean.FALSE }, { r0, r3, Boolean.FALSE },
@@ -527,8 +485,7 @@ AbstractModelProducerUser {
{ r1, r3, Boolean.FALSE }, { r1, r4, Boolean.FALSE },
{ r2, r3, Boolean.FALSE }, { r2, r4, Boolean.FALSE }, };
- for (int i = 0; i < testSpec.length; i++)
- {
+ for (int i = 0; i < testSpec.length; i++) {
final RDFList l0 = nilList.append(Arrays.asList(
(Resource[]) testSpec[i][0]).iterator());
final RDFList l1 = nilList.append(Arrays.asList(
@@ -543,34 +500,29 @@ AbstractModelProducerUser {
}
@Test
- public void testListGet()
- {
+ public void testListGet() {
model.read(getFileName("ontology/list5.rdf"));
final Resource[] toGet = new Resource[] {
- model.createResource(AbstractRDFListContractTests.NS + "a"),
- model.createResource(AbstractRDFListContractTests.NS + "b"),
- model.createResource(AbstractRDFListContractTests.NS + "c"),
- model.createResource(AbstractRDFListContractTests.NS + "d"),
- model.createResource(AbstractRDFListContractTests.NS + "e"), };
+ model.createResource(RDFListContractTests.NS + "a"),
+ model.createResource(RDFListContractTests.NS + "b"),
+ model.createResource(RDFListContractTests.NS + "c"),
+ model.createResource(RDFListContractTests.NS + "d"),
+ model.createResource(RDFListContractTests.NS + "e"), };
final RDFList l1 = getListRoot(model);
// test normal gets
- for (int i = 0; i < toGet.length; i++)
- {
+ for (int i = 0; i < toGet.length; i++) {
Assert.assertEquals("list element " + i + " is not correct",
toGet[i], l1.get(i));
}
// now test we get an exception for going beyong the end of the list
boolean gotEx = false;
- try
- {
+ try {
l1.get(toGet.length + 1);
- }
- catch (final ListIndexException e)
- {
+ } catch (final ListIndexException e) {
gotEx = true;
}
@@ -580,32 +532,29 @@ AbstractModelProducerUser {
}
@Test
- public void testMap1()
- {
+ public void testMap1() {
model.read(getFileName("ontology/list5.rdf"));
final RDFList root = getListRoot(model);
- AbstractRDFListContractTests.iteratorTest(root.mapWith(new Map1<RDFNode, String>() {
- @Override
- public String map1( final RDFNode x )
- {
- return ((Resource) x).getLocalName();
- }
- }), new Object[] { "a", "b", "c", "d", "e" });
+ RDFListContractTests.iteratorTest(
+ root.mapWith(new Map1<RDFNode, String>() {
+ @Override
+ public String map1(final RDFNode x) {
+ return ((Resource) x).getLocalName();
+ }
+ }), new Object[] { "a", "b", "c", "d", "e" });
}
@Test
- public void testReduce()
- {
+ public void testReduce() {
model.read(getFileName("ontology/list5.rdf"));
final RDFList root = getListRoot(model);
final RDFList.ReduceFn f = new RDFList.ReduceFn() {
@Override
- public Object reduce( final RDFNode n, final Object acc )
- {
+ public Object reduce(final RDFNode n, final Object acc) {
return ((String) acc) + ((Resource) n).getLocalName();
}
};
@@ -616,26 +565,23 @@ AbstractModelProducerUser {
}
@Test
- public void testRemove()
- {
+ public void testRemove() {
final Resource nil = model.getResource(RDF.nil.getURI());
RDFList list0 = nil.as(RDFList.class);
RDFList list1 = nil.as(RDFList.class);
- final Resource r0 = model.createResource(AbstractRDFListContractTests.NS + "x");
- final Resource r1 = model.createResource(AbstractRDFListContractTests.NS + "y");
- final Resource r2 = model.createResource(AbstractRDFListContractTests.NS + "z");
+ final Resource r0 = model.createResource(RDFListContractTests.NS + "x");
+ final Resource r1 = model.createResource(RDFListContractTests.NS + "y");
+ final Resource r2 = model.createResource(RDFListContractTests.NS + "z");
- for (int i = 0; i < 10; i++)
- {
+ for (int i = 0; i < 10; i++) {
list0 = list0.cons(r0);
list1 = list1.cons(r1);
}
// delete the elements of list0 one at a time
- while (!list0.isEmpty())
- {
+ while (!list0.isEmpty()) {
list0 = list0.removeHead();
checkValid("removeTest0", list0, true);
}
@@ -672,8 +618,7 @@ AbstractModelProducerUser {
}
@Test
- public void testReplace()
- {
+ public void testReplace() {
model.read(getFileName("ontology/list5.rdf"));
final Literal[] toSet = new Literal[] { model.createLiteral("a"),
@@ -683,26 +628,21 @@ AbstractModelProducerUser {
final RDFList l1 = getListRoot(model);
// change all the values
- for (int i = 0; i < toSet.length; i++)
- {
+ for (int i = 0; i < toSet.length; i++) {
l1.replace(i, toSet[i]);
}
// then check them
- for (int i = 0; i < toSet.length; i++)
- {
+ for (int i = 0; i < toSet.length; i++) {
Assert.assertEquals("list element " + i + " is not correct",
toSet[i], l1.get(i));
}
// now test we get an exception for going beyong the end of the list
boolean gotEx = false;
- try
- {
+ try {
l1.replace(toSet.length + 1, toSet[0]);
- }
- catch (final ListIndexException e)
- {
+ } catch (final ListIndexException e) {
gotEx = true;
}
@@ -713,11 +653,11 @@ AbstractModelProducerUser {
}
@Test
- public void testSetHead()
- {
+ public void testSetHead() {
- final Resource root = model.createResource(AbstractRDFListContractTests.NS + "root");
- final Property p = model.createProperty(AbstractRDFListContractTests.NS, "p");
+ final Resource root = model.createResource(RDFListContractTests.NS
+ + "root");
+ final Property p = model.createProperty(RDFListContractTests.NS, "p");
// a list of the nil object, but not typed
final Resource nil = RDF.nil;
@@ -743,12 +683,12 @@ AbstractModelProducerUser {
}
@Test
- public void testSetTail()
- {
+ public void testSetTail() {
final Model m = ModelFactory.createDefaultModel();
- final Resource root = m.createResource(AbstractRDFListContractTests.NS + "root");
- final Property p = m.createProperty(AbstractRDFListContractTests.NS, "p");
+ final Resource root = m
+ .createResource(RDFListContractTests.NS + "root");
+ final Property p = m.createProperty(RDFListContractTests.NS, "p");
final Resource nil = RDF.nil;
m.add(nil, RDF.type, RDF.List);
@@ -786,17 +726,14 @@ AbstractModelProducerUser {
}
@Test
- public void testTail()
- {
- for (int i = 0; i <= 5; i++)
- {
- model.read( getFileName("ontology/list" + i + ".rdf"));
+ public void testTail() {
+ for (int i = 0; i <= 5; i++) {
+ model.read(getFileName("ontology/list" + i + ".rdf"));
RDFList l0 = getListRoot(model);
// get the tail n times, should be nil at the end
- for (int j = 0; j < i; j++)
- {
+ for (int j = 0; j < i; j++) {
l0 = l0.getTail();
}
@@ -806,11 +743,11 @@ AbstractModelProducerUser {
}
@Test
- public void testValidity()
- {
+ public void testValidity() {
- final Resource root = model.createResource(AbstractRDFListContractTests.NS + "root");
- final Property p = model.createProperty(AbstractRDFListContractTests.NS, "p");
+ final Resource root = model.createResource(RDFListContractTests.NS
+ + "root");
+ final Property p = model.createProperty(RDFListContractTests.NS, "p");
// a list of the nil object, but not typed
final Resource nil = RDF.nil;
@@ -837,8 +774,6 @@ AbstractModelProducerUser {
}
-
-
// public void testListSubclass() {
// String NS = "http://example.org/test#";
// Resource a = model.createResource( NS + "a" );
Copied: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFNodeContractTests.java (from r1525417, jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFNodeContractTests.java)
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFNodeContractTests.java?p2=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFNodeContractTests.java&p1=jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFNodeContractTests.java&r1=1525417&r2=1530718&rev=1530718&view=diff
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/AbstractRDFNodeContractTests.java (original)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/rdf/model/RDFNodeContractTests.java Wed Oct 9 17:16:15 2013
@@ -27,7 +27,7 @@ import com.hp.hpl.jena.rdf.model.RDFVisi
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.rdf.model.ResourceRequiredException;
-import com.hp.hpl.jena.testing_framework.NodeProducerInterface;
+import com.hp.hpl.jena.testing_framework.INodeProducer;
import static com.hp.hpl.jena.testing_framework.ModelHelper.*;
@@ -36,96 +36,147 @@ import java.util.List;
import static org.junit.Assert.*;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.xenei.junit.contract.Contract;
/**
* This class tests various properties of RDFNodes.
*/
-public abstract class AbstractRDFNodeContractTests {
+@Contract(RDFNode.class)
+public abstract class RDFNodeContractTests {
+
+ @Contract.Inject("com.hp.hpl.jena.testing_framework.INodeProducer<%s>")
+ public abstract INodeProducer<RDFNode> getNodeProducer();
- protected abstract NodeProducerInterface getNodeProducer();
-
protected RDFNode node;
protected Model model;
-
+
@Before
- public final void setupAbstractRDFNodeContractTests()
- {
- node = getNodeProducer().newRDFNode();
+ public final void beforeRDFNodeContractTests() {
+ node = getNodeProducer().newInstance();
model = node.getModel();
}
-
+
+ @After
+ public final void afterRDFNodeContractTests() {
+ getNodeProducer().cleanUp();
+ }
+
@Test
public void testAsLiteral() {
- RDFNode node = model.createLiteral( "foo");
- assertSame( node, node.asLiteral());
+ RDFNode node = model.createLiteral("foo");
+ assertSame(node, node.asLiteral());
node = model.createResource();
try {
node.asLiteral();
fail("should have thrown Exception");
- } catch (LiteralRequiredException expected)
- {
+ } catch (LiteralRequiredException expected) {
// expected
}
}
-
+
@Test
public void testAsResource() {
node = model.createResource();
Resource r = node.asResource();
- assertSame( r, node );
- node = model.createLiteral( "foo");
+ assertSame(r, node);
+ node = model.createLiteral("foo");
try {
- node.asResource();
- fail("should have thrown Exception");
- } catch (ResourceRequiredException expected)
- {
+ node.asResource();
+ fail("should have thrown Exception");
+ } catch (ResourceRequiredException expected) {
// expected
}
}
-
+
@Test
public void testGetModel() {
// all the other tests will be in model.crete(x) tests.
- assertNotNull( model );
+ assertNotNull(model);
}
-
+
@Test
public void testInModel_Model() {
-
+
final Model m1 = model;
- final Model m2 = getNodeProducer().newRDFNode().getModel();
- final Resource r1 = m1.createResource( resource("r1").getURI() );
- final Resource a1 = m1.createResource( resource("_r2").getId() );
+ final Model m2 = getNodeProducer().newInstance().getModel();
+ final Resource r1 = m1.createResource(resource("r1").getURI());
+ final Resource a1 = m1.createResource(resource("_r2").getId());
Resource r2 = null;
Resource a2 = null;
-
+
/* verify initial conditions */
assertSame(r1.getModel(), m1);
assertSame(a1.getModel(), m1);
assertFalse(r1.isAnon());
assertTrue(a1.isAnon());
-
+
/* verify calling inModel with same model returns resource */
r2 = r1.inModel(m1);
a2 = a1.inModel(m1);
- assertSame( r2, r1);
- assertSame( a2, a1);
-
- /* verify calling in model changes model*/
+ assertSame(r2, r1);
+ assertSame(a2, a1);
+
+ /* verify calling in model changes model */
r2 = r1.inModel(m2);
a2 = a1.inModel(m2);
-
+
assertSame(r2.getModel(), m2);
assertSame(a2.getModel(), m2);
-
- /* verify in model check returns equivalent resource*/
+
+ /* verify in model check returns equivalent resource */
assertFalse(r2.isAnon());
assertTrue(a2.isAnon());
- assertFalse( "Should not be the same", r1==r2 );
- assertFalse( "Should not be the same", a1==a2 );
-
+ assertSame("Should not be the same", r1, r2);
+ assertSame("Should not be the same", a1, a2);
+
+ assertEquals(r1, r2);
+ assertEquals(a1, a2);
+
+ }
+
+ @Test
+ public void testInModel_Model_InModel() {
+
+ final Model m1 = model;
+ final Model m2 = getNodeProducer().newInstance().getModel();
+ final Resource r1 = m1.createResource(resource("r1").getURI());
+ final Resource a1 = m1.createResource(resource("_r2").getId());
+ Statement stmt = m1.createStatement(r1, property("p"), resource("o"));
+ m1.add(stmt);
+ stmt = m1.createStatement(a1, property("p"), resource("o"));
+ m1.add(stmt);
+
+ Resource r2 = null;
+ Resource a2 = null;
+
+ /* verify initial conditions */
+ assertSame(r1.getModel(), m1);
+ assertSame(a1.getModel(), m1);
+ assertFalse(r1.isAnon());
+ assertTrue(a1.isAnon());
+
+ /* verify calling inModel with same model returns resource */
+ r2 = r1.inModel(m1);
+ a2 = a1.inModel(m1);
+ assertSame(r2, r1);
+ assertSame(a2, a1);
+
+ /* verify calling in model changes model */
+ r2 = r1.inModel(m2);
+ a2 = a1.inModel(m2);
+
+ assertSame(r2.getModel(), m2);
+ assertSame(a2.getModel(), m2);
+
+ /* verify in model check returns equivalent resource */
+ assertFalse(r2.isAnon());
+ assertTrue(a2.isAnon());
+ assertSame("Should not be the same", r1, r2);
+ assertSame("Should not be the same", a1, a2);
+
assertEquals(r1, r2);
assertEquals(a1, a2);
@@ -160,11 +211,9 @@ public abstract class AbstractRDFNodeCon
assertEquals(true, model.createResource("eh:/foo").isURIResource());
assertEquals(false, model.createResource().isURIResource());
assertEquals(false, model.createTypedLiteral(17).isURIResource());
- assertEquals(false, model.createTypedLiteral("hello")
- .isURIResource());
+ assertEquals(false, model.createTypedLiteral("hello").isURIResource());
}
-
@Test
public void testRDFVisitor() {
final List<String> history = new ArrayList<String>();
@@ -200,7 +249,6 @@ public abstract class AbstractRDFNodeCon
assertEquals("blank result", S.visitWith(rv));
assertEquals("uri result", P.visitWith(rv));
assertEquals("literal result", O.visitWith(rv));
- assertEquals(listOfStrings("blank uri literal"),
- history);
- }
+ assertEquals(listOfStrings("blank uri literal"), history);
+ }
}