From ea015b2ed9b4c46fab19dc3fcae8d3e39d9fe709 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Sun, 26 Aug 2007 01:11:29 +0000 Subject: Added support for load and query trigger. --- .../java/com/amazon/carbonado/TestStorables.java | 71 ++++++++++++++++++++++ .../com/amazon/carbonado/repo/toy/ToyStorage.java | 10 +++ 2 files changed, 81 insertions(+) (limited to 'src/test/java/com') diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java index 7c5b2b0..a78f6dd 100644 --- a/src/test/java/com/amazon/carbonado/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/TestStorables.java @@ -1867,6 +1867,34 @@ public class TestStorables extends TestCase { assertTrue(storage.removeTrigger(it)); + + class LoadTrigger extends Trigger { + boolean mCalled; + + @Override + public void afterLoad(StorableVersioned s) { + assertEquals(1, s.getID()); + mCalled = true; + } + }; + + LoadTrigger lt = new LoadTrigger(); + + assertTrue(storage.addTrigger(lt)); + + s.load(); + + assertTrue(lt.mCalled); + + // Reset for query. + lt.mCalled = false; + storage.query("value = ?").with("value").fetch().toList(); + + assertTrue(lt.mCalled); + + assertTrue(storage.removeTrigger(lt)); + + class UpdateTrigger extends Trigger { Object mState; int mVersion; @@ -1898,6 +1926,7 @@ public class TestStorables extends TestCase { assertTrue(storage.removeTrigger(ut)); + class DeleteTrigger extends Trigger { Object mState; @@ -2081,6 +2110,38 @@ public class TestStorables extends TestCase { assertTrue(st.getModifyDateTime().getMillis() >= dt.getMillis() + 450); } + public void test_triggerLoadByAltKey() throws Exception { + Storage storage = + getRepository().storageFor(StorableTestBasicCompoundIndexed.class); + + class LoadTrigger extends Trigger { + int mCallCount; + StorableTestBasicCompoundIndexed mStorable; + + @Override + public void afterLoad(StorableTestBasicCompoundIndexed s) { + mCallCount++; + mStorable = s; + } + }; + + LoadTrigger lt = new LoadTrigger(); + + assertTrue(storage.addTrigger(lt)); + + StorableTestBasicCompoundIndexed s = storage.prepare(); + s.initPropertiesRandomly(1234); + s.insert(); + + StorableTestBasicCompoundIndexed s2 = storage.prepare(); + s2.setStringProp(s.getStringProp()); + s2.setDoubleProp(s.getDoubleProp()); + s2.load(); + + assertEquals(1, lt.mCallCount); + assertTrue(s2 == lt.mStorable); + } + public void test_hashCode() throws Exception { Storage storage = getRepository().storageFor(StorableTestBasic.class); @@ -3109,6 +3170,16 @@ public class TestStorables extends TestCase { public Trigger getDeleteTrigger() { return null; } + + public Trigger getLoadTrigger() { + return null; + } + + public void locallyDisableLoadTrigger() { + } + + public void locallyEnableLoadTrigger() { + } } } diff --git a/src/test/java/com/amazon/carbonado/repo/toy/ToyStorage.java b/src/test/java/com/amazon/carbonado/repo/toy/ToyStorage.java index c378dca..34c33a5 100644 --- a/src/test/java/com/amazon/carbonado/repo/toy/ToyStorage.java +++ b/src/test/java/com/amazon/carbonado/repo/toy/ToyStorage.java @@ -236,6 +236,16 @@ public class ToyStorage return null; } + public Trigger getLoadTrigger() { + return null; + } + + public void locallyDisableLoadTrigger() { + } + + public void locallyEnableLoadTrigger() { + } + public SequenceValueProducer getSequenceValueProducer(String name) throws PersistException { try { return mRepo.getSequenceValueProducer(name); -- cgit v1.2.3