mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#919 - io.ebean package initial
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package org.tests.basic;
|
||||
|
||||
import io.ebean.BaseTestCase;
|
||||
import io.ebean.BeanState;
|
||||
import io.ebean.Ebean;
|
||||
import org.tests.model.basic.Customer;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestTransient extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void testTransient() {
|
||||
|
||||
Customer cnew = new Customer();
|
||||
cnew.setName("testTrans");
|
||||
|
||||
Ebean.save(cnew);
|
||||
Integer custId = cnew.getId();
|
||||
|
||||
Customer c = Ebean.find(Customer.class).setAutoTune(false).setId(custId).findUnique();
|
||||
|
||||
Assert.assertNotNull(c);
|
||||
|
||||
BeanState beanState = Ebean.getBeanState(c);
|
||||
Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty());
|
||||
|
||||
c.getLock().tryLock();
|
||||
try {
|
||||
c.setSelected(Boolean.TRUE);
|
||||
} finally {
|
||||
c.getLock().unlock();
|
||||
}
|
||||
|
||||
Boolean selected = c.getSelected();
|
||||
Assert.assertNotNull(selected);
|
||||
|
||||
Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty());
|
||||
|
||||
Ebean.save(c);
|
||||
|
||||
selected = c.getSelected();
|
||||
Assert.assertNotNull(selected);
|
||||
|
||||
c.setName("Modified");
|
||||
Assert.assertTrue("dirty now", beanState.isNewOrDirty());
|
||||
|
||||
selected = c.getSelected();
|
||||
Assert.assertNotNull(selected);
|
||||
|
||||
Ebean.save(c);
|
||||
Assert.assertFalse("Not dirty after save", beanState.isNewOrDirty());
|
||||
|
||||
selected = c.getSelected();
|
||||
Assert.assertNotNull(selected);
|
||||
|
||||
String updateStmt = "update customer set name = 'Rob' where id = :id";
|
||||
int rows = Ebean.createUpdate(Customer.class, updateStmt).set("id", custId).execute();
|
||||
|
||||
Assert.assertTrue("changed name back", 1 == rows);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user