diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2007-09-16 19:02:43 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2007-09-16 19:02:43 +0000 | 
| commit | e8a446562db9bf782bf6f01dc68826aeb1802673 (patch) | |
| tree | 12cad73b1159ae7d750676f275937b565267538f /src | |
| parent | 44cc32326806d9f2ee6bf7b0fe6b6359e53a4e77 (diff) | |
Ensure that non-destructive update doesn't invoke load trigger.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/TestStorables.java | 44 | 
1 files changed, 44 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java index de0bba4..8883481 100644 --- a/src/test/java/com/amazon/carbonado/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/TestStorables.java @@ -2141,6 +2141,50 @@ public class TestStorables extends TestCase {          assertTrue(s2 == lt.mStorable);      } +    public void test_triggerUpdateNoLoad() throws Exception { +        // Verify that calling update does not call load trigger. This test is +        // needed because master storable generator does an intermediate load +        // in order to support "update full" mode. + +        Storage<StorableVersioned> storage = getRepository().storageFor(StorableVersioned.class); + +        class TheTrigger extends Trigger<StorableVersioned> { +            int mUpdateCount; +            int mLoadCount; + +            @Override +            public Object beforeUpdate(StorableVersioned s) { +                mUpdateCount++; +                return null; +            } + +            @Override +            public void afterLoad(StorableVersioned s) { +                mLoadCount++; +            } +        }; + +        TheTrigger the = new TheTrigger(); + +        assertTrue(storage.addTrigger(the)); + +        StorableVersioned s = storage.prepare(); +        s.setID(1); +        s.setValue("value"); +        s.insert(); + +        s.setValue("foo"); +        s.update(); + +        assertEquals(1, the.mUpdateCount); +        assertEquals(0, the.mLoadCount); + +        s.load(); + +        assertEquals(1, the.mUpdateCount); +        assertEquals(1, the.mLoadCount); +    } +      public void test_hashCode() throws Exception {          Storage<StorableTestBasic> storage =              getRepository().storageFor(StorableTestBasic.class);  | 
