You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ja...@apache.org on 2013/11/27 16:56:07 UTC
[06/10] git commit: MARMOTTA-364: Started with some unit-tests...
MARMOTTA-364: Started with some unit-tests...
Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/1bb1783d
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/1bb1783d
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/1bb1783d
Branch: refs/heads/develop
Commit: 1bb1783d1aa9993cd87341dc16c6466a337cd872
Parents: c75aa1a
Author: Jakob Frank <ja...@apache.org>
Authored: Tue Nov 26 17:16:32 2013 +0100
Committer: Jakob Frank <ja...@apache.org>
Committed: Wed Nov 27 13:29:08 2013 +0100
----------------------------------------------------------------------
commons/sesame-contextaware/pom.xml | 5 +
.../commons/sesame/AbstractContextTest.java | 94 +++++++++++++
.../contextaware/ContextAwareSailTest.java | 138 +++++++++++++++++++
3 files changed, 237 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/marmotta/blob/1bb1783d/commons/sesame-contextaware/pom.xml
----------------------------------------------------------------------
diff --git a/commons/sesame-contextaware/pom.xml b/commons/sesame-contextaware/pom.xml
index b727e02..cd6900e 100644
--- a/commons/sesame-contextaware/pom.xml
+++ b/commons/sesame-contextaware/pom.xml
@@ -45,5 +45,10 @@
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-sail-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.openrdf.sesame</groupId>
+ <artifactId>sesame-sail-memory</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/marmotta/blob/1bb1783d/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/AbstractContextTest.java
----------------------------------------------------------------------
diff --git a/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/AbstractContextTest.java b/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/AbstractContextTest.java
new file mode 100644
index 0000000..8fd1404
--- /dev/null
+++ b/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/AbstractContextTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.commons.sesame;
+
+import java.util.UUID;
+
+import org.junit.After;
+import org.junit.Before;
+import org.openrdf.model.Literal;
+import org.openrdf.model.Resource;
+import org.openrdf.model.URI;
+import org.openrdf.model.ValueFactory;
+import org.openrdf.sail.Sail;
+import org.openrdf.sail.SailConnection;
+import org.openrdf.sail.SailException;
+import org.openrdf.sail.memory.MemoryStore;
+
+public abstract class AbstractContextTest {
+
+ protected static final String NS = "http://test.marmotta.apache.org/resource/";
+
+ protected Sail sail;
+
+ protected URI u1, u2, u3, u4;
+ protected URI p1, p2, p3, p4;
+ protected Resource c1, c2;
+ protected Literal l1, l2, l3, l4;
+
+ @Before
+ public void setUp() throws SailException {
+ sail = new MemoryStore();
+ sail.initialize();
+
+ final ValueFactory vf = sail.getValueFactory();
+ u1 = vf.createURI(NS, UUID.randomUUID().toString());
+ u2 = vf.createURI(NS, UUID.randomUUID().toString());
+ u3 = vf.createURI(NS, UUID.randomUUID().toString());
+ u4 = vf.createURI(NS, UUID.randomUUID().toString());
+
+ p1 = vf.createURI(NS, UUID.randomUUID().toString());
+ p2 = vf.createURI(NS, UUID.randomUUID().toString());
+ p3 = vf.createURI(NS, UUID.randomUUID().toString());
+ p4 = vf.createURI(NS, UUID.randomUUID().toString());
+
+ c1 = vf.createURI(NS, UUID.randomUUID().toString());
+ c2 = vf.createBNode();
+
+ l1 = vf.createLiteral(UUID.randomUUID().toString());
+ l2 = vf.createLiteral(UUID.randomUUID().toString());
+ l3 = vf.createLiteral(UUID.randomUUID().toString());
+ l4 = vf.createLiteral(UUID.randomUUID().toString());
+
+ final SailConnection con = sail.getConnection();
+ try {
+ con.begin();
+
+ con.addStatement(u1, p1, l1, c1);
+ con.addStatement(u2, p2, l2, c2);
+ con.addStatement(u3, p3, l3, c1);
+ con.addStatement(u4, p4, l4, c2);
+
+ con.commit();
+ } catch (final Throwable t) {
+ con.rollback();
+ throw t;
+ } finally {
+ con.close();
+ }
+ }
+
+ @After
+ public void tearDown() throws SailException {
+ if (sail != null) {
+ sail.shutDown();
+ }
+ sail = null;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/marmotta/blob/1bb1783d/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/contextaware/ContextAwareSailTest.java
----------------------------------------------------------------------
diff --git a/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/contextaware/ContextAwareSailTest.java b/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/contextaware/ContextAwareSailTest.java
new file mode 100644
index 0000000..77ceca6
--- /dev/null
+++ b/commons/sesame-contextaware/src/test/java/org/apache/marmotta/commons/sesame/contextaware/ContextAwareSailTest.java
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.marmotta.commons.sesame.contextaware;
+
+import info.aduna.iteration.CloseableIteration;
+
+import org.apache.marmotta.commons.sesame.AbstractContextTest;
+import org.hamcrest.CoreMatchers;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openrdf.model.Resource;
+import org.openrdf.model.Statement;
+import org.openrdf.model.URI;
+import org.openrdf.model.Value;
+import org.openrdf.sail.SailConnection;
+import org.openrdf.sail.SailException;
+
+/**
+ * @author jakob
+ *
+ */
+public class ContextAwareSailTest extends AbstractContextTest {
+
+ protected ContextAwareSail cas;
+
+ @Override
+ @Before
+ public void setUp() throws SailException {
+ super.setUp();
+
+ cas = new ContextAwareSail(sail, c1);
+ }
+
+ @Override
+ @After
+ public void tearDown() throws SailException {
+ super.tearDown();
+ }
+
+
+ @Test
+ public void testGetStatements() throws SailException {
+ final SailConnection con = cas.getConnection();
+ try {
+ con.begin();
+
+ Assert.assertTrue(hasStatement(con, u1, p1, l1));
+ Assert.assertFalse(hasStatement(con, u2, p2, l2));
+
+ con.commit();
+ } catch (final Throwable t) {
+ con.rollback();
+ throw t;
+ } finally {
+ con.close();
+ }
+ }
+
+ @Test
+ public void testAddStatement() throws SailException {
+ final SailConnection con = cas.getConnection();
+ try {
+ con.begin();
+ con.addStatement(u1, p2, l3);
+ con.commit();
+ } catch (final Throwable t) {
+ con.rollback();
+ throw t;
+ } finally {
+ con.close();
+ }
+ final SailConnection con2 = sail.getConnection();
+ try {
+ con2.begin();
+
+ Assert.assertTrue(hasStatement(con2, u1, p2, l3, c1));
+ Assert.assertFalse(hasStatement(con2, u1, p2, l3, c2));
+
+ con2.commit();
+ } catch (final Throwable t) {
+ con2.rollback();
+ throw t;
+ } finally {
+ con2.close();
+ }
+ }
+
+ @Test
+ public void testGetContextIDs() throws SailException {
+ final SailConnection con = cas.getConnection();
+ try {
+ con.begin();
+
+ final CloseableIteration<? extends Resource, SailException> cid = con.getContextIDs();
+ try {
+ Assert.assertTrue(cid.hasNext());
+ Assert.assertThat(cid.next(), CoreMatchers.is(c1));
+ Assert.assertFalse(cid.hasNext());
+ } finally {
+ cid.close();
+ }
+
+ con.commit();
+ } catch (final Throwable t) {
+ con.rollback();
+ throw t;
+ } finally {
+ con.close();
+ }
+ }
+
+ protected static boolean hasStatement(SailConnection con, Resource subj, URI pred, Value object, Resource... contexts) throws SailException {
+ final CloseableIteration<? extends Statement, SailException> stmts = con.getStatements(subj, pred, object, true, contexts);
+ try {
+ return stmts.hasNext();
+ } finally {
+ stmts.close();
+ }
+ }
+
+}