diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2008-08-21 18:05:15 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2008-08-21 18:05:15 +0000 | 
| commit | 334b69723d5b2129950f9c7c32685ac4bb35049e (patch) | |
| tree | c1c2589cf0de25c92a05bb26ff9d399e77f242bf /src/test/java/com/amazon/carbonado/repo | |
| parent | afdfc7feafee7b7ba9dc73c496892847ae443e09 (diff) | |
Added another test case for nested transaction rollback.
Diffstat (limited to 'src/test/java/com/amazon/carbonado/repo')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/repo/map/TestTransaction.java | 41 | 
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.
  | 
