MARMOTTA-364: Unit-Tests for ContextAwareSail Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/a1a3b21e Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/a1a3b21e Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/a1a3b21e
Branch: refs/heads/develop Commit: a1a3b21e550697492832958148db7dfb61d84ccd Parents: 1bb1783 Author: Jakob Frank <[email protected]> Authored: Wed Nov 27 12:55:32 2013 +0100 Committer: Jakob Frank <[email protected]> Committed: Wed Nov 27 13:29:08 2013 +0100 ---------------------------------------------------------------------- .../commons/sesame/AbstractContextTest.java | 14 +++ .../contextaware/ContextAwareSailTest.java | 93 ++++++++++++++++---- 2 files changed, 89 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/marmotta/blob/a1a3b21e/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 index 8fd1404..6f6681c 100644 --- 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 @@ -17,13 +17,17 @@ */ package org.apache.marmotta.commons.sesame; +import info.aduna.iteration.CloseableIteration; + 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.Statement; import org.openrdf.model.URI; +import org.openrdf.model.Value; import org.openrdf.model.ValueFactory; import org.openrdf.sail.Sail; import org.openrdf.sail.SailConnection; @@ -34,6 +38,16 @@ public abstract class AbstractContextTest { protected static final String NS = "http://test.marmotta.apache.org/resource/"; + 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(); + } + } + protected Sail sail; protected URI u1, u2, u3, u4; http://git-wip-us.apache.org/repos/asf/marmotta/blob/a1a3b21e/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 index 77ceca6..7f8a134 100644 --- 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 @@ -17,23 +17,22 @@ */ package org.apache.marmotta.commons.sesame.contextaware; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; 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 + * @author Jakob Frank <[email protected]> * */ public class ContextAwareSailTest extends AbstractContextTest { @@ -48,12 +47,6 @@ public class ContextAwareSailTest extends AbstractContextTest { cas = new ContextAwareSail(sail, c1); } - @Override - @After - public void tearDown() throws SailException { - super.tearDown(); - } - @Test public void testGetStatements() throws SailException { @@ -110,9 +103,9 @@ public class ContextAwareSailTest extends AbstractContextTest { final CloseableIteration<? extends Resource, SailException> cid = con.getContextIDs(); try { - Assert.assertTrue(cid.hasNext()); - Assert.assertThat(cid.next(), CoreMatchers.is(c1)); - Assert.assertFalse(cid.hasNext()); + assertTrue(cid.hasNext()); + assertThat(cid.next(), CoreMatchers.is(c1)); + assertFalse(cid.hasNext()); } finally { cid.close(); } @@ -125,13 +118,77 @@ public class ContextAwareSailTest extends AbstractContextTest { con.close(); } } + + @Test + public void testClear() throws SailException { + final SailConnection con = cas.getConnection(); + try { + con.begin(); + + assertTrue(hasStatement(con, null, null, null)); + con.clear(); + assertFalse(hasStatement(con, null, null, null)); + + con.commit(); + } catch (final Throwable t) { + con.rollback(); + throw t; + } finally { + con.close(); + } + final SailConnection con2 = sail.getConnection(); + try { + con2.begin(); + + assertFalse(hasStatement(con2, null, null, null, c1)); + assertTrue(hasStatement(con2, null, null, null, c2)); + + con2.commit(); + } catch (final Throwable t) { + con2.rollback(); + throw t; + } finally { + con2.close(); + } + } + + @Test + public void testRemoveStatements() throws SailException { + final SailConnection con = cas.getConnection(); + try { + con.begin(); + + assertTrue(hasStatement(con, u1, p1, l1)); + assertTrue(hasStatement(con, u3, p3, l3)); + + con.removeStatements(u1, p1, l1, c1); + con.removeStatements(u2, p2, l2); + con.removeStatements(u4, p4, l4, c1); + + assertFalse(hasStatement(con, u1, p1, l1)); + assertTrue(hasStatement(con, u3, p3, l3)); - 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); + con.commit(); + } catch (final Throwable t) { + con.rollback(); + throw t; + } finally { + con.close(); + } + final SailConnection con2 = sail.getConnection(); try { - return stmts.hasNext(); + con2.begin(); + + assertFalse(hasStatement(con2, u1, p1, l1, c1)); + assertTrue(hasStatement(con2, u2, p2, l2, c2)); + assertTrue(hasStatement(con2, u3, p3, l3, c1)); + + con2.commit(); + } catch (final Throwable t) { + con2.rollback(); + throw t; } finally { - stmts.close(); + con2.close(); } }
