summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado/TestStorables.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/amazon/carbonado/TestStorables.java')
-rw-r--r--src/test/java/com/amazon/carbonado/TestStorables.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java
index 3570e26..70cef19 100644
--- a/src/test/java/com/amazon/carbonado/TestStorables.java
+++ b/src/test/java/com/amazon/carbonado/TestStorables.java
@@ -1546,6 +1546,34 @@ public class TestStorables extends TestCase {
assertEquals(0, query.with(0.2).count());
}
+ public void test_basicDerivedJoinIndex() throws Exception {
+ test_basicDerivedJoinIndex(getRepository());
+ }
+
+ protected void test_basicDerivedJoinIndex(Repository repo) throws Exception {
+ Storage<WithJoinIndex> storage1 = repo.storageFor(WithJoinIndex.class);
+ Storage<WithJoinIndex.Basic> storage2 = repo.storageFor(WithJoinIndex.Basic.class);
+
+ WithJoinIndex.Basic basic = storage2.prepare();
+ basic.setId(128120938);
+ basic.setIntProp(999);
+ basic.insert();
+
+ WithJoinIndex join = storage1.prepare();
+ join.setId(1);
+ join.setBasic(basic);
+ join.insert();
+
+ join = storage1.query("intProp = ?").with(999).loadOne();
+
+ // Make sure delete does cause dependent properties to try load a
+ // missing joined object.
+ basic.delete();
+
+ join = storage1.query("intProp = ?").with(999).tryLoadOne();
+ assertNull(join);
+ }
+
public void test_derivedJoinIndex() throws Exception {
test_derivedJoinIndex(getRepository());
}