diff --git a/src/test/java/org/tests/cache/TestCacheCollectionIds.java b/src/test/java/org/tests/cache/TestCacheCollectionIds.java index bb09dd70e..a57908242 100644 --- a/src/test/java/org/tests/cache/TestCacheCollectionIds.java +++ b/src/test/java/org/tests/cache/TestCacheCollectionIds.java @@ -12,13 +12,7 @@ import io.ebeaninternal.server.cache.CachedManyIds; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; -import org.tests.model.basic.Contact; -import org.tests.model.basic.Country; -import org.tests.model.basic.Customer; -import org.tests.model.basic.OCachedBean; -import org.tests.model.basic.Order; -import org.tests.model.basic.OrderDetail; -import org.tests.model.basic.ResetBasicData; +import org.tests.model.basic.*; import java.util.ArrayList; import java.util.List; @@ -146,6 +140,46 @@ public class TestCacheCollectionIds extends BaseTestCase { assertTrue(cachedManyIds.getIdList().contains("AU")); } + @Test + public void testChangingCollectionByEditingConnectedBean() { + ResetBasicData.reset(); + + OCachedBean cachedBean = new OCachedBean(); + cachedBean.setName("hello"); + + Ebean.save(cachedBean); + awaitL2Cache(); + + OCachedBean dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId()); + assertEquals(0, dummyToLoad.getChildren().size()); + + OCachedBeanChild child1=new OCachedBeanChild(); + child1.setCachedBean(cachedBean); + Ebean.insert(child1); + awaitL2Cache(); + dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId()); + assertEquals(1, dummyToLoad.getChildren().size()); + + OCachedBeanChild child2=new OCachedBeanChild(); + child2.setCachedBean(cachedBean); + Ebean.insert(child2); + awaitL2Cache(); + dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId()); + assertEquals(2, dummyToLoad.getChildren().size()); + + Ebean.delete(child2); + awaitL2Cache(); + dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId()); + assertEquals(1, dummyToLoad.getChildren().size()); + + Ebean.delete(child1); + awaitL2Cache(); + dummyToLoad = Ebean.find(OCachedBean.class, cachedBean.getId()); + assertEquals(0, dummyToLoad.getChildren().size()); + + Ebean.delete(cachedBean); + } + /** * When updating a ManyToMany relations also the collection cache must be updated.