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:08 UTC

[07/10] git commit: MARMOTTA-364: Unit-Tests for ContextAwareSail

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 <ja...@apache.org>
Authored: Wed Nov 27 12:55:32 2013 +0100
Committer: Jakob Frank <ja...@apache.org>
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 <ja...@apache.org>
  *
  */
 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();
         }
     }