summaryrefslogtreecommitdiff
path: root/src/test/java/com
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2007-09-16 19:02:43 +0000
committerBrian S. O'Neill <bronee@gmail.com>2007-09-16 19:02:43 +0000
commite8a446562db9bf782bf6f01dc68826aeb1802673 (patch)
tree12cad73b1159ae7d750676f275937b565267538f /src/test/java/com
parent44cc32326806d9f2ee6bf7b0fe6b6359e53a4e77 (diff)
Ensure that non-destructive update doesn't invoke load trigger.
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/amazon/carbonado/TestStorables.java44
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);