summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2008-08-21 18:05:15 +0000
committerBrian S. O'Neill <bronee@gmail.com>2008-08-21 18:05:15 +0000
commit334b69723d5b2129950f9c7c32685ac4bb35049e (patch)
treec1c2589cf0de25c92a05bb26ff9d399e77f242bf /src/test/java
parentafdfc7feafee7b7ba9dc73c496892847ae443e09 (diff)
Added another test case for nested transaction rollback.
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java b/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
index cbaa431..3c53252 100644
--- a/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
+++ b/src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java
@@ -265,6 +265,47 @@ public class TestTransaction extends TestCase {
assertEquals(0, storage.query().count());
}
+ public void testNestedRollback2() throws Exception {
+ Storage<StorableTestBasic> storage = mRepo.storageFor(StorableTestBasic.class);
+
+ assertEquals(0, storage.query().count());
+
+ Transaction outer = mRepo.enterTransaction();
+
+ {
+ Transaction txn = mRepo.enterTransaction();
+ StorableTestBasic stb = storage.prepare();
+ stb.setId(1);
+ stb.setStringProp("");
+ stb.setIntProp(0);
+ stb.setLongProp(0);
+ stb.setDoubleProp(0);
+ stb.insert();
+
+ txn.exit();
+
+ assertEquals(0, storage.query().count());
+ }
+
+ {
+ Transaction txn = mRepo.enterTransaction();
+ StorableTestBasic stb = storage.prepare();
+ stb.setId(2);
+ stb.setStringProp("");
+ stb.setIntProp(0);
+ stb.setLongProp(0);
+ stb.setDoubleProp(0);
+ stb.insert();
+
+ txn.exit();
+
+ assertEquals(0, storage.query().count());
+ }
+
+ outer.commit();
+ outer.exit();
+ }
+
public void testDeadlock() throws Exception {
// This test makes sure that transaction locker is not the current
// thread. Top transactions will deadlock.