From fc1c9392aa1eae6bbcedafe582b11eba197fc8e9 Mon Sep 17 00:00:00 2001 From: Tobias Date: Mon, 21 Dec 2020 15:32:40 +0100 Subject: [PATCH] Failing testcase that shows wipe of all children on save When adding a newly saved bean (A) to another bean (B), all children in A are wiped on saving B. --- .../tests/cascade/TestOnlyKillOrphans.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java diff --git a/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java b/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java new file mode 100644 index 000000000..3a510637c --- /dev/null +++ b/ebean-core/src/test/java/org/tests/cascade/TestOnlyKillOrphans.java @@ -0,0 +1,43 @@ +package org.tests.cascade; + +import io.ebean.BaseTestCase; +import io.ebean.DB; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +public class TestOnlyKillOrphans extends BaseTestCase { + + @Test + public void test() { + final COOne one = setup(); + + assertThat(one.getChildren()).hasSize(2); + + CORoot root = new CORoot("P1", one); + DB.insert(root); + + // assert + CORoot check = DB.find(CORoot.class, root.getId()); + assertThat(check.getOne().getChildren()).hasSize(2); + DB.delete(check); + } + + private COOne setup() { + COOne one = new COOne("P0"); + one.setChildren(createManies("M1", "M2")); + DB.insert(one); + return one; + } + + private List createManies(String... names) { + List manies = new ArrayList<>(); + for (String name : names) { + manies.add(new COOneMany(name)); + } + return manies; + } +}