From e05b6b78add5f02a399f70445ea449b606630dac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20P=C3=B6hler=20=28JPo=29?= Date: Wed, 8 Apr 2020 16:04:49 +0200 Subject: [PATCH] ADD: failing testcase for not cleared beancache in persistence context on reorder with @OrderColumn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jonas Pöhler (JPo) --- .../java/org/tests/order/TestOrderColumn.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/test/java/org/tests/order/TestOrderColumn.java b/src/test/java/org/tests/order/TestOrderColumn.java index cb0477e31..344c13844 100644 --- a/src/test/java/org/tests/order/TestOrderColumn.java +++ b/src/test/java/org/tests/order/TestOrderColumn.java @@ -4,6 +4,8 @@ import io.ebean.Ebean; import io.ebean.TransactionalTestCase; import org.junit.Test; +import java.util.Comparator; + import static org.assertj.core.api.Assertions.assertThat; public class TestOrderColumn extends TransactionalTestCase { @@ -28,4 +30,33 @@ public class TestOrderColumn extends TransactionalTestCase { assertThat(result.getChildren()).extracting(OrderReferencedChild::getChildName).containsExactly("c0", "c1", "c2", "c3", "c4"); } + @Test + public void testOrderColumnSortChange() { + final OrderMaster master = new OrderMaster(); + + for (int i = 0; i < 5; i++) { + final OrderReferencedChild child = new OrderReferencedChild("p" + i); + child.setChildName("c" + i); + + master.getChildren().add(child); + } + + Ebean.save(master); + + OrderMaster result = Ebean.find(OrderMaster.class).findOne(); + + assertThat(result.getChildren()).hasSize(5); + assertThat(master.getChildren()).extracting(OrderReferencedChild::getName).containsExactly("p0", "p1", "p2", "p3", "p4"); + + master.getChildren().sort(Comparator.comparing(OrderReferencedChild::getName).reversed()); + assertThat(master.getChildren()).extracting(OrderReferencedChild::getName).containsExactly("p4", "p3", "p2", "p1", "p0"); + + Ebean.save(master); + + result = Ebean.find(OrderMaster.class).findOne(); + + assertThat(result.getChildren()).hasSize(5); + assertThat(result.getChildren()).extracting(OrderReferencedChild::getName).containsExactly("p4", "p3", "p2", "p1", "p0"); + } + }