Add Wobu TestCacheDelete test case for cached beans

This commit is contained in:
wbuchner
2014-04-24 02:42:28 +12:00
committed by Rob Bygrave
parent 89f7d2bace
commit 696dabc658
3 changed files with 94 additions and 1 deletions
@@ -0,0 +1,41 @@
package com.avaje.tests.cache;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.tests.model.basic.OCachedBean;
import com.avaje.tests.model.basic.OCachedBeanChild;
/**
* 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 cachedBean = new OCachedBean();
cachedBean.getChildren().add(child);
cachedBean.getChildren().add(child2);
Ebean.save(cachedBean);
// ensure cache has been populated
Ebean.find(OCachedBeanChild.class, child.getId());
child2 = Ebean.find(OCachedBeanChild.class, child2.getId());
cachedBean = Ebean.find(OCachedBean.class, cachedBean.getId());
// act
Ebean.delete(child2);
// assert
Assert.assertTrue(Ebean.find(OCachedBean.class, cachedBean.getId()).getChildren().size() == 1);
}
}