From dde59db411c7ef3556d5efae7c280ef5bcd52926 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Sun, 27 Apr 2014 00:05:00 +1200 Subject: [PATCH] Test case for #75 - Persistence Context Cache not cleared when updating an entity in a running transaction. Actually the test case does not fail. --- pom.xml | 9 +++- ...stPersistenceContextOnUpdateDuringTxn.java | 44 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/avaje/tests/persistencecontext/TestPersistenceContextOnUpdateDuringTxn.java diff --git a/pom.xml b/pom.xml index fb62e4974..a9053e054 100644 --- a/pom.xml +++ b/pom.xml @@ -136,9 +136,16 @@ junit junit - 4.8.2 + 4.11 test + + + org.hamcrest + hamcrest-integration + 1.3 + test + org.mockito diff --git a/src/test/java/com/avaje/tests/persistencecontext/TestPersistenceContextOnUpdateDuringTxn.java b/src/test/java/com/avaje/tests/persistencecontext/TestPersistenceContextOnUpdateDuringTxn.java new file mode 100644 index 000000000..059eaf089 --- /dev/null +++ b/src/test/java/com/avaje/tests/persistencecontext/TestPersistenceContextOnUpdateDuringTxn.java @@ -0,0 +1,44 @@ +package com.avaje.tests.persistencecontext; + +import org.junit.Test; +import static org.hamcrest.Matchers.*; +import static org.hamcrest.MatcherAssert.*; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; +import com.avaje.ebean.EbeanServer; +import com.avaje.tests.model.basic.EBasic; + +public class TestPersistenceContextOnUpdateDuringTxn extends BaseTestCase { + + @Test + public void test() { + + EbeanServer server = Ebean.getServer(null); + + server.beginTransaction(); + try { + + EBasic bean1 = new EBasic(); + bean1.setName("hello"); + + server.save(bean1); + + EBasic updatedEntity = new EBasic(); + updatedEntity.setId(bean1.getId()); + updatedEntity.setName("hello-changed"); + + server.update(updatedEntity); + + // actually the bean is not in the persistence context so ... the assert is fine + EBasic loadedEntity = server.find(EBasic.class,bean1.getId()); + + assertThat(loadedEntity.getName(), is("hello-changed")); + + } finally { + server.endTransaction(); + } + + } + +}