From dd83bc4d26393ff0dfc7bb5807b243903992165e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Thu, 19 Jun 2014 02:03:59 +1200 Subject: [PATCH] Test BeanPersistAdapter with stateless update --- .../basic/event/TestPreInsertValidation.java | 23 ++++++++- .../event/TWithPreInsertPersistAdapter.java | 51 +++++++++---------- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java b/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java index 7fb985c8f..9b9ea2cc7 100644 --- a/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java +++ b/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java @@ -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()); + } + } diff --git a/src/test/java/com/avaje/tests/model/basic/event/TWithPreInsertPersistAdapter.java b/src/test/java/com/avaje/tests/model/basic/event/TWithPreInsertPersistAdapter.java index 0f5de60f5..14255cecf 100644 --- a/src/test/java/com/avaje/tests/model/basic/event/TWithPreInsertPersistAdapter.java +++ b/src/test/java/com/avaje/tests/model/basic/event/TWithPreInsertPersistAdapter.java @@ -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); + } - - - }