mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Test case for changing OneToMany collection by editing target bean.
This commit is contained in:
+41
-7
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user