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/test/java | |
| parent | 44cc32326806d9f2ee6bf7b0fe6b6359e53a4e77 (diff) | |
Ensure that non-destructive update doesn't invoke load trigger.
Diffstat (limited to 'src/test/java')
| -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); |
