initial rework for new enhancement

This commit is contained in:
Robin Bygrave
2013-06-19 20:36:24 +12:00
parent eb1eafe98c
commit 4ec62a5772
193 changed files with 2737 additions and 5285 deletions
+26 -21
View File
@@ -8,6 +8,7 @@ import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.bean.BeanCollection;
import com.avaje.ebean.cache.ServerCache;
import com.avaje.tests.model.basic.Customer;
import com.avaje.tests.model.basic.ResetBasicData;
@@ -19,8 +20,11 @@ public class TestQueryCache extends BaseTestCase {
ResetBasicData.reset();
List<Customer> list = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true)
.where().ilike("name", "Rob").findList();
ServerCache customerCache = Ebean.getServerCacheManager().getQueryCache(Customer.class);
customerCache.clear();
List<Customer> list = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true).where()
.ilike("name", "Rob").findList();
BeanCollection<Customer> bc = (BeanCollection<Customer>) list;
Assert.assertFalse(bc.isReadOnly());
@@ -28,30 +32,31 @@ public class TestQueryCache extends BaseTestCase {
Assert.assertTrue(list.size() > 0);
Assert.assertTrue(Ebean.getBeanState(list.get(0)).isReadOnly());
List<Customer> list2 = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true)
.where().ilike("name", "Rob").findList();
List<Customer> list2 = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true).where()
.ilike("name", "Rob").findList();
List<Customer> list2B = Ebean.find(Customer.class).setUseQueryCache(true)
// .setReadOnly(true)
.where().ilike("name", "Rob").findList();
// Assert.assertTrue("same instance",list != list2);
//
// // readOnly defaults to true for query cache
// Assert.assertTrue("same instance",list != list2B);
//
// List<Customer> list3 = Ebean.find(Customer.class)
// .setUseQueryCache(true)
// .setReadOnly(false)
// .where().ilike("name", "Rob")
// .findList();
//
// Assert.assertTrue("diff instance",list != list3);
// BeanCollection<Customer> bc3 = (BeanCollection<Customer>)list3;
// Assert.assertFalse(bc3.isReadOnly());
// Assert.assertFalse(bc3.isEmpty());
// Assert.assertTrue(list3.size() > 0);
// Assert.assertFalse(Ebean.getBeanState(list3.get(0)).isReadOnly());
Assert.assertSame(list, list2);
// readOnly defaults to true for query cache
Assert.assertSame(list, list2B);
// TODO: At this stage setReadOnly(false) does not
// create a shallow copy of the List/Set/Map
// List<Customer> list3 = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(false).where()
// .ilike("name", "Rob").findList();
//
// Assert.assertNotSame(list, list3);
// BeanCollection<Customer> bc3 = (BeanCollection<Customer>) list3;
// Assert.assertFalse(bc3.isReadOnly());
// Assert.assertFalse(bc3.isEmpty());
// Assert.assertTrue(list3.size() > 0);
// Assert.assertFalse(Ebean.getBeanState(list3.get(0)).isReadOnly());
}