From f773d74597ac590c7a1f683b154261f2316ad338 Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 29 Apr 2014 20:42:51 +1200 Subject: [PATCH] Test for #105 - did not reproduce - Ebean is trying to delete new objects added to the list of an entity and then removed without being persisted before --- .../TestPrivateOwnedAddRemoveOrphan.java | 34 +++++++++++++++++++ ...TestPrivateOwnedIgnoreTransientOrphan.java | 3 +- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/avaje/tests/cascade/TestPrivateOwnedAddRemoveOrphan.java diff --git a/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedAddRemoveOrphan.java b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedAddRemoveOrphan.java new file mode 100644 index 000000000..7b58eb9ca --- /dev/null +++ b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedAddRemoveOrphan.java @@ -0,0 +1,34 @@ +package com.avaje.tests.cascade; + +import org.junit.Assert; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; +import com.avaje.tests.model.basic.TSDetail; +import com.avaje.tests.model.basic.TSMaster; + +public class TestPrivateOwnedAddRemoveOrphan extends BaseTestCase { + + @Test + public void test(){ + + // setup + TSMaster master0 = new TSMaster(); + Ebean.save(master0); + + // act + TSMaster master1 = Ebean.find(master0.getClass(), master0.getId()); + + TSDetail tsDetail = new TSDetail(); + // Add then remove a bean that was never saved (to the DB) + master1.getDetails().add(tsDetail); + master1.getDetails().remove(tsDetail); + + Ebean.save(master1); + + TSMaster master2 = Ebean.find(master1.getClass(), master1.getId()); + + Assert.assertTrue(master2.getDetails().isEmpty()); + } +} diff --git a/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedIgnoreTransientOrphan.java b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedIgnoreTransientOrphan.java index ed94dac43..c61047da5 100644 --- a/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedIgnoreTransientOrphan.java +++ b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedIgnoreTransientOrphan.java @@ -2,8 +2,7 @@ package com.avaje.tests.cascade; import javax.persistence.OptimisticLockException; -import junit.framework.Assert; - +import org.junit.Assert; import org.junit.Test; import com.avaje.ebean.BaseTestCase;