diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2007-08-26 01:11:29 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2007-08-26 01:11:29 +0000 | 
| commit | ea015b2ed9b4c46fab19dc3fcae8d3e39d9fe709 (patch) | |
| tree | 54dc8d340eb9f101636caea4349cdf8d00de1368 /src | |
| parent | 5196cafb2d984355bae549b102abad1fdf454120 (diff) | |
Added support for load and query trigger.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/TestStorables.java | 71 | ||||
| -rw-r--r-- | src/test/java/com/amazon/carbonado/repo/toy/ToyStorage.java | 10 | 
2 files changed, 81 insertions, 0 deletions
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<StorableVersioned> { +            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<StorableVersioned> {              Object mState;              int mVersion; @@ -1898,6 +1926,7 @@ public class TestStorables extends TestCase {          assertTrue(storage.removeTrigger(ut)); +          class DeleteTrigger extends Trigger<StorableVersioned> {              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<StorableTestBasicCompoundIndexed> storage = +            getRepository().storageFor(StorableTestBasicCompoundIndexed.class); + +        class LoadTrigger extends Trigger<StorableTestBasicCompoundIndexed> { +            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<StorableTestBasic> 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<S extends Storable>          return null;
      }
 +    public Trigger<? super S> getLoadTrigger() {
 +        return null;
 +    }
 +
 +    public void locallyDisableLoadTrigger() {
 +    }
 +
 +    public void locallyEnableLoadTrigger() {
 +    }
 +
      public SequenceValueProducer getSequenceValueProducer(String name) throws PersistException {
          try {
              return mRepo.getSequenceValueProducer(name);
  | 
