diff --git a/ebean-core/src/test/java/org/tests/batchload/TestBeanState.java b/ebean-core/src/test/java/org/tests/batchload/TestBeanState.java new file mode 100644 index 000000000..0d2c2b60f --- /dev/null +++ b/ebean-core/src/test/java/org/tests/batchload/TestBeanState.java @@ -0,0 +1,73 @@ +package org.tests.batchload; + +import io.ebean.BaseTestCase; +import io.ebean.BeanState; +import io.ebean.DB; +import io.ebean.bean.EntityBean; +import io.ebean.bean.EntityBeanIntercept; +import org.junit.Test; +import org.tests.model.basic.Customer; +import org.tests.model.basic.ResetBasicData; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.*; + + +public class TestBeanState extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + List custs = DB.find(Customer.class).findList(); + + Customer customer = DB.find(Customer.class).setId(custs.get(0).getId()).select("name") + .setUseCache(false) + .findOne(); + + BeanState beanState = DB.getBeanState(customer); + assertFalse(beanState.isNew()); + assertFalse(beanState.isDirty()); + assertFalse(beanState.isNewOrDirty()); + assertNotNull(beanState.getLoadedProps()); + + customer.setName("dirtyNameProp"); + assertTrue(beanState.isDirty()); + assertThat(beanState.getChangedProps()).containsOnly("name"); + + EntityBeanIntercept ebi = ((EntityBean) customer)._ebean_getIntercept(); + boolean[] dirtyProperties = ebi.getDirtyProperties(); + for (int i = 0; i < dirtyProperties.length; i++) { + if (dirtyProperties[i]) { + String dirtyPropertyName = ebi.getProperty(i); + assertEquals("name", dirtyPropertyName); + } + } + + customer.setStatus(Customer.Status.INACTIVE); + + assertTrue(beanState.isDirty()); + assertThat(beanState.getChangedProps()).containsOnly("name", "status"); + } + + @Test + public void setDisableLazyLoad_expect_lazyLoadingDisabled() { + + ResetBasicData.reset(); + + List custs = DB.find(Customer.class).order("id").findList(); + + Customer customer = DB.find(Customer.class) + .setId(custs.get(0).getId()) + .select("id") + .setUseCache(false) + .findOne(); + + BeanState beanState = DB.getBeanState(customer); + beanState.setDisableLazyLoad(true); + assertNull(customer.getName()); + } +} diff --git a/ebean-core/src/test/java/org/tests/batchload/TestLoadOnDirty.java b/ebean-core/src/test/java/org/tests/batchload/TestLoadOnDirty.java deleted file mode 100644 index 67d35f440..000000000 --- a/ebean-core/src/test/java/org/tests/batchload/TestLoadOnDirty.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.tests.batchload; - -import io.ebean.BaseTestCase; -import io.ebean.BeanState; -import io.ebean.Ebean; -import io.ebean.bean.EntityBean; -import io.ebean.bean.EntityBeanIntercept; -import org.tests.model.basic.Customer; -import org.tests.model.basic.ResetBasicData; -import org.junit.Assert; -import org.junit.Test; - -import java.util.List; - -public class TestLoadOnDirty extends BaseTestCase { - - @Test - public void test() { - - ResetBasicData.reset(); - - List custs = Ebean.find(Customer.class).findList(); - - Customer customer = Ebean.find(Customer.class).setId(custs.get(0).getId()).select("name") - .setUseCache(false) - .findOne(); - - BeanState beanState = Ebean.getBeanState(customer); - Assert.assertTrue(!beanState.isNew()); - Assert.assertTrue(!beanState.isDirty()); - Assert.assertTrue(!beanState.isNewOrDirty()); - Assert.assertNotNull(beanState.getLoadedProps()); - - customer.setName("dirtyNameProp"); - Assert.assertTrue(beanState.isDirty()); - Assert.assertTrue(beanState.getChangedProps().contains("name")); - Assert.assertEquals(1, beanState.getChangedProps().size()); - - EntityBeanIntercept ebi = ((EntityBean) customer)._ebean_getIntercept(); - boolean[] dirtyProperties = ebi.getDirtyProperties(); - for (int i = 0; i < dirtyProperties.length; i++) { - if (dirtyProperties[i]) { - String dirtyPropertyName = ebi.getProperty(i); - Assert.assertEquals("name", dirtyPropertyName); - } - } - - customer.setStatus(Customer.Status.INACTIVE); - - Assert.assertTrue(beanState.isDirty()); - Assert.assertTrue(beanState.getChangedProps().contains("status")); - Assert.assertTrue(beanState.getChangedProps().contains("name")); - Assert.assertEquals(2, beanState.getChangedProps().size()); - - } - - @Test - public void testDisableLazyLoad() { - - ResetBasicData.reset(); - - List custs = Ebean.find(Customer.class).order("id").findList(); - - Customer customer = Ebean.find(Customer.class) - .setId(custs.get(0).getId()) - .select("id") - .setUseCache(false) - .findOne(); - - BeanState beanState = Ebean.getBeanState(customer); - beanState.setDisableLazyLoad(true); - Assert.assertNull(customer.getName()); - } -}