updated tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/24a77f33 Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/24a77f33 Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/24a77f33 Branch: refs/heads/rdf4j Commit: 24a77f3390b3a8e3e8ac387ba32355ef77f3aadf Parents: f9c298a Author: Stian Soiland-Reyes <[email protected]> Authored: Tue Oct 4 01:40:49 2016 +0100 Committer: Stian Soiland-Reyes <[email protected]> Committed: Tue Oct 4 01:40:49 2016 +0100 ---------------------------------------------------------------------- .../commons/rdf/rdf4j/MemoryGraphTest.java | 52 +++++++++-- .../commons/rdf/rdf4j/NativeStoreGraphTest.java | 93 ++++++++++++++++---- 2 files changed, 124 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/24a77f33/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java index 60b15d6..3d99968 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java @@ -18,6 +18,12 @@ package org.apache.commons.rdf.rdf4j; import org.apache.commons.rdf.api.AbstractGraphTest; +import org.apache.commons.rdf.api.BlankNodeOrIRI; +import org.apache.commons.rdf.api.Dataset; +import org.apache.commons.rdf.api.IRI; +import org.apache.commons.rdf.api.Literal; +import org.apache.commons.rdf.api.Quad; +import org.apache.commons.rdf.api.RDFTerm; import org.apache.commons.rdf.api.RDFTermFactory; import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.sail.SailRepository; @@ -27,17 +33,51 @@ import org.eclipse.rdf4j.sail.memory.model.MemValueFactory; public class MemoryGraphTest extends AbstractGraphTest { - public static final class MemoryStoreFactory extends RDF4JTermFactory { - MemoryStoreFactory() { - super(new MemValueFactory()); + public static final class MemoryStoreFactory implements RDFTermFactory { + + RDF4JTermFactory rdf4jFactory = new RDF4JTermFactory(new MemValueFactory()); + + public RDF4JBlankNode createBlankNode() { + return rdf4jFactory.createBlankNode(); + } + + public RDF4JBlankNode createBlankNode(String name) { + return rdf4jFactory.createBlankNode(name); + } + + public Dataset createDataset() { + return rdf4jFactory.createDataset(); + } + + public RDF4JIRI createIRI(String iri) throws IllegalArgumentException, UnsupportedOperationException { + return rdf4jFactory.createIRI(iri); + } + + public RDF4JLiteral createLiteral(String lexicalForm) { + return rdf4jFactory.createLiteral(lexicalForm); + } + + public Literal createLiteral(String lexicalForm, IRI dataType) { + return rdf4jFactory.createLiteral(lexicalForm, dataType); + } + + public Literal createLiteral(String lexicalForm, String languageTag) { + return rdf4jFactory.createLiteral(lexicalForm, languageTag); + } + + public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return rdf4jFactory.createTriple(subject, predicate, object); + } + + public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return rdf4jFactory.createQuad(graphName, subject, predicate, object); } - @Override - public RDF4JGraph createGraph() throws UnsupportedOperationException { + public RDF4JGraph createGraph() { Sail sail = new MemoryStore(); Repository repository = new SailRepository(sail); repository.initialize(); - return asRDFTermGraph(repository); + return rdf4jFactory.asRDFTermGraph(repository); } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/24a77f33/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java index 1042f26..ad148ed 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/NativeStoreGraphTest.java @@ -18,49 +18,112 @@ package org.apache.commons.rdf.rdf4j; import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.FileVisitor; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.Collections; +import java.util.Set; import org.apache.commons.rdf.api.AbstractGraphTest; +import org.apache.commons.rdf.api.BlankNodeOrIRI; +import org.apache.commons.rdf.api.IRI; +import org.apache.commons.rdf.api.Literal; +import org.apache.commons.rdf.api.RDFTerm; import org.apache.commons.rdf.api.RDFTermFactory; -import org.eclipse.rdf4j.model.ValueFactory; -import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.sail.SailRepository; import org.eclipse.rdf4j.sail.Sail; -import org.eclipse.rdf4j.sail.memory.model.MemValueFactory; import org.eclipse.rdf4j.sail.nativerdf.NativeStore; +import org.junit.AfterClass; +import org.junit.BeforeClass; public class NativeStoreGraphTest extends AbstractGraphTest { - public static final class NativeStoreFactory extends RDF4JTermFactory { - NativeStoreFactory() { - super(new MemValueFactory()); - } + public final class NativeStoreFactory implements RDFTermFactory { + + RDF4JTermFactory rdf4jFactory = new RDF4JTermFactory(repository.getValueFactory()); + @Override public RDF4JGraph createGraph() { - return asRDFTermGraph(createRepository()); + // We re-use the repository connection, but use a different context every time + Set<RDF4JBlankNode> context = Collections.singleton(rdf4jFactory.createBlankNode()); + return rdf4jFactory.asRDFTermGraph(repository, context); + } + + // Delegate methods + public RDF4JBlankNode createBlankNode() { + return rdf4jFactory.createBlankNode(); + } + public RDF4JBlankNode createBlankNode(String name) { + return rdf4jFactory.createBlankNode(name); + } + public RDF4JIRI createIRI(String iri) throws IllegalArgumentException, UnsupportedOperationException { + return rdf4jFactory.createIRI(iri); + } + public RDF4JLiteral createLiteral(String lexicalForm) { + return rdf4jFactory.createLiteral(lexicalForm); + } + public Literal createLiteral(String lexicalForm, IRI dataType) { + return rdf4jFactory.createLiteral(lexicalForm, dataType); + } + public Literal createLiteral(String lexicalForm, String languageTag) { + return rdf4jFactory.createLiteral(lexicalForm, languageTag); + } + public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return rdf4jFactory.createTriple(subject, predicate, object); } } - public static Repository createRepository() { - Path tempDir; + private static SailRepository repository; + private static Path tempDir; + + @BeforeClass + public static void createRepository() { try { tempDir = Files.createTempDirectory("test-commonsrdf-rdf4j"); } catch (IOException e) { throw new RuntimeException(e); } Sail sail = new NativeStore(tempDir.toFile()); - SailRepository repository = new SailRepository(sail); + repository = new SailRepository(sail); repository.initialize(); - return repository; + } + + @AfterClass + public static void shutdownAndDelete() throws IOException { + // must shutdown before we delete + if (repository != null) { + System.out.println("Shutting down rdf4j repository " + repository); + repository.shutDown(); + System.out.println("rdf4j repository shut down."); + } + if (tempDir != null) { + deleteAll(tempDir); + } } + private static void deleteAll(Path dir) throws IOException { + Files.walkFileTree(dir, new SimpleFileVisitor<Path>(){ + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.delete(file); + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + FileVisitResult r = super.postVisitDirectory(dir, exc); + Files.delete(dir); + return r; + } + }); + } + @Override public RDFTermFactory createFactory() { - // FIXME: This valueFactory will be backed by the wrong temporary folder! - ValueFactory valueFactory = createRepository().getValueFactory(); - return new RDF4JTermFactory(valueFactory); + return new NativeStoreFactory(); } }
