Test BeanPersistAdapter with stateless update

This commit is contained in:
Rob Bygrave
2014-06-19 02:03:59 +12:00
parent 9b4b7a1a01
commit dd83bc4d26
2 changed files with 46 additions and 28 deletions
@@ -1,7 +1,7 @@
package com.avaje.tests.basic.event;
import junit.framework.Assert;
import org.junit.Assert;
import org.junit.Test;
import com.avaje.ebean.BaseTestCase;
@@ -19,8 +19,9 @@ public class TestPreInsertValidation extends BaseTestCase {
// name with should not be null
Ebean.save(e);
// the save worked
// the save worked and name set in preInsert
Assert.assertNotNull(e.getId());
Assert.assertNotNull(e.getName());
TWithPreInsert e1 = Ebean.find(TWithPreInsert.class, e.getId());
@@ -28,4 +29,22 @@ public class TestPreInsertValidation extends BaseTestCase {
Ebean.save(e1);
}
@Test
public void testStatelessUpdate() {
TWithPreInsert e = new TWithPreInsert();
e.setName("BeanForUpdateTest");
Ebean.save(e);
TWithPreInsert bean2 = new TWithPreInsert();
bean2.setId(e.getId());
bean2.setName("stateless-update-name");
bean2.setTitle(null);
Ebean.update(bean2);
// title set on preUpdate
Assert.assertNotNull(bean2.getTitle());
}
}
@@ -6,34 +6,33 @@ import com.avaje.tests.model.basic.TWithPreInsert;
public class TWithPreInsertPersistAdapter extends BeanPersistAdapter {
@Override
public boolean isRegisterFor(Class<?> cls) {
return TWithPreInsert.class.equals(cls);
}
@Override
public boolean isRegisterFor(Class<?> cls) {
return TWithPreInsert.class.equals(cls);
}
@Override
public boolean preInsert(BeanPersistRequest<?> request) {
TWithPreInsert e = (TWithPreInsert)request.getBean();
e.setName("aname");
return true;
}
@Override
public boolean preInsert(BeanPersistRequest<?> request) {
@Override
public boolean preUpdate(BeanPersistRequest<?> request) {
TWithPreInsert b = (TWithPreInsert)request.getBean();
System.out.println("title is Missus:"+b.getTitle());
//Ebean.refresh(b);
request.getEbeanServer().refresh(b);
System.out.println("title is Mister:"+b.getTitle());
return super.preUpdate(request);
TWithPreInsert e = (TWithPreInsert) request.getBean();
if (e.getName() == null) {
e.setName("set on preInsert");
}
return true;
}
@Override
public boolean preUpdate(BeanPersistRequest<?> request) {
TWithPreInsert b = (TWithPreInsert) request.getBean();
System.out.println("preUpdate - title is: " + b.getTitle());
if (b.getTitle() == null) {
b.setTitle("set on preUpdate");
}
// request.getEbeanServer().refresh(b);
// System.out.println("title is Mister:"+b.getTitle());
return super.preUpdate(request);
}
}