mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
45 lines
1.4 KiB
Java
45 lines
1.4 KiB
Java
package org.tests.cache;
|
|
|
|
import io.ebean.BaseTestCase;
|
|
import io.ebean.Ebean;
|
|
import org.tests.model.basic.OCachedBean;
|
|
import org.tests.model.basic.OCachedBeanChild;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
|
|
/**
|
|
* Test class testing deleting/invalidating of cached beans
|
|
*/
|
|
public class TestCacheDelete extends BaseTestCase {
|
|
|
|
/**
|
|
* When deleting a cached entity all entities with a referenced OneToMany relation must also be invalidated!
|
|
*/
|
|
@Test
|
|
public void testCacheDeleteOneToMany() {
|
|
// arrange
|
|
OCachedBeanChild child = new OCachedBeanChild();
|
|
OCachedBeanChild child2 = new OCachedBeanChild();
|
|
|
|
OCachedBean parentBean = new OCachedBean();
|
|
parentBean.getChildren().add(child);
|
|
parentBean.getChildren().add(child2);
|
|
Ebean.save(parentBean);
|
|
|
|
// confirm there are 2 children loaded from the parent
|
|
Assert.assertEquals(2, Ebean.find(OCachedBean.class, parentBean.getId()).getChildren().size());
|
|
|
|
// ensure cache has been populated
|
|
Ebean.find(OCachedBeanChild.class, child.getId());
|
|
child2 = Ebean.find(OCachedBeanChild.class, child2.getId());
|
|
parentBean = Ebean.find(OCachedBean.class, parentBean.getId());
|
|
|
|
// act
|
|
Ebean.delete(child2);
|
|
awaitL2Cache();
|
|
|
|
OCachedBean beanFromCache = Ebean.find(OCachedBean.class, parentBean.getId());
|
|
Assert.assertEquals(1, beanFromCache.getChildren().size());
|
|
}
|
|
}
|