diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java index b214a3381..6524d0e7f 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionBasic.java @@ -10,14 +10,14 @@ import java.util.List; import static org.assertj.core.api.Assertions.assertThat; -public class TestElementCollectionBasic extends BaseTestCase { +class TestElementCollectionBasic extends BaseTestCase { private List eventLog() { return EcPersonPersistAdapter.eventLog(); } @Test - public void insertThen_UpdateWhenNotChanged_expect_noChanges() { + void insertThen_UpdateWhenNotChanged_expect_noChanges() { EcPerson person = new EcPerson("Nothing021"); person.getPhoneNumbers().add("021 1234"); @@ -51,9 +51,10 @@ public class TestElementCollectionBasic extends BaseTestCase { } @Test - public void test() { + void test() { eventLog(); + DB.find(EcPerson.class).where().eq("name", "Fiona021").delete(); LoggedSql.start(); EcPerson person = new EcPerson("Fiona021"); @@ -95,8 +96,8 @@ public class TestElementCollectionBasic extends BaseTestCase { List phoneNumbers1 = found.get(1).getPhoneNumbers(); phoneNumbers0.size(); - assertThat(phoneNumbers0).containsExactly("021 1234", "021 4321"); - assertThat(phoneNumbers1).containsExactly("09 1234", "09 4321"); + assertThat(phoneNumbers0).containsExactlyInAnyOrder("021 1234", "021 4321"); + assertThat(phoneNumbers1).containsExactlyInAnyOrder("09 1234", "09 4321"); sql = LoggedSql.collect(); assertThat(sql).hasSize(2); @@ -126,7 +127,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateBasic(EcPerson bean) { - bean.setName("Fiona021-mod-0"); DB.save(bean); @@ -140,7 +140,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateBasicInBatch(EcPerson bean) { - try (Transaction txn = DB.beginTransaction()) { txn.setBatchMode(true); bean.setName("Fiona021-mod-0-batch"); @@ -158,7 +157,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateBoth(EcPerson bean) { - bean.setName("Fiona021-mod-both"); bean.getPhoneNumbers().add("01-22123"); DB.save(bean); @@ -187,7 +185,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateBothInBatch(EcPerson bean) { - try (Transaction txn = DB.beginTransaction()) { txn.setBatchMode(true); bean.setName("Fiona021-mod-both-batch"); @@ -210,7 +207,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateNothing(EcPerson bean) { - DB.save(bean); List sql = LoggedSql.collect(); @@ -222,7 +218,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateOnlyCollectionInBatch(EcPerson bean) { - try (Transaction txn = DB.beginTransaction()) { txn.setBatchMode(true); bean.getPhoneNumbers().add("01-4321"); @@ -243,7 +238,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void updateOnlyCollection(EcPerson bean) { - bean.getPhoneNumbers().add("01-4321"); DB.save(bean); @@ -272,7 +266,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void delete(EcPerson bean) { - DB.delete(bean); List sql = LoggedSql.collect(); @@ -284,7 +277,6 @@ public class TestElementCollectionBasic extends BaseTestCase { } private void jsonToFrom(EcPerson foundFirst) { - String asJson = DB.json().toJson(foundFirst); EcPerson fromJson = DB.json().toBean(EcPerson.class, asJson); assertThat(fromJson.getPhoneNumbers()).containsAll(foundFirst.getPhoneNumbers()); diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java index 80e2d9bd1..6b5c62b3b 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache.java @@ -15,8 +15,8 @@ class TestElementCollectionEmbeddedListCache extends BaseTestCase { void test() { EcblPerson person = new EcblPerson("CacheL"); - person.getPhoneNumbers().add(new EcPhone("64", "021","1234")); - person.getPhoneNumbers().add(new EcPhone("64","021","4321")); + person.getPhoneNumbers().add(new EcPhone("64", "021", "1234")); + person.getPhoneNumbers().add(new EcPhone("64", "021", "4321")); DB.save(person); EcblPerson one = DB.find(EcblPerson.class) @@ -42,7 +42,7 @@ class TestElementCollectionEmbeddedListCache extends BaseTestCase { assertThat(sql).isEmpty(); // cache hit two.getPhoneNumbers().add(new EcPhone("61", "07", "11")); - two.getPhoneNumbers().remove(1); + removeByNumber(two.getPhoneNumbers(), "4321"); DB.save(two); @@ -72,7 +72,7 @@ class TestElementCollectionEmbeddedListCache extends BaseTestCase { three.setName("mod-3"); - three.getPhoneNumbers().remove(0); + removeByNumber(three.getPhoneNumbers(), "1234"); DB.save(three); @@ -92,4 +92,12 @@ class TestElementCollectionEmbeddedListCache extends BaseTestCase { LoggedSql.stop(); } + + private void removeByNumber(List phoneNumbers, String num) { + phoneNumbers + .stream() + .filter(ecPhone1 -> ecPhone1.number.equals(num)) + .findFirst() + .ifPresent(phoneNumbers::remove); + } } diff --git a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache2.java b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache2.java index 1a361c33b..ea6d47d90 100644 --- a/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache2.java +++ b/ebean-test/src/test/java/org/tests/model/elementcollection/TestElementCollectionEmbeddedListCache2.java @@ -3,7 +3,6 @@ package org.tests.model.elementcollection; import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.test.LoggedSql; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.List; @@ -17,8 +16,8 @@ class TestElementCollectionEmbeddedListCache2 extends BaseTestCase { EcblPerson2 person = new EcblPerson2(); person.setName("CacheL"); - person.getPhoneNumbers().add(new EcPhone("64", "021","1234")); - person.getPhoneNumbers().add(new EcPhone("64","021","4321")); + person.getPhoneNumbers().add(new EcPhone("64", "021", "1234")); + person.getPhoneNumbers().add(new EcPhone("64", "021", "4321")); DB.save(person); EcblPerson2 one = DB.find(EcblPerson2.class) @@ -33,7 +32,7 @@ class TestElementCollectionEmbeddedListCache2 extends BaseTestCase { List sql = LoggedSql.collect(); assertThat(sql).isEmpty(); - EcblPerson2 two = DB.find(EcblPerson2.class ) + EcblPerson2 two = DB.find(EcblPerson2.class) .setId(person.getId()) .findOne(); @@ -44,7 +43,7 @@ class TestElementCollectionEmbeddedListCache2 extends BaseTestCase { assertThat(sql).isEmpty(); // cache hit two.getPhoneNumbers().add(new EcPhone("61", "07", "11")); - two.getPhoneNumbers().remove(1); + removeByNumber(two.getPhoneNumbers(), "4321"); DB.save(two); @@ -62,38 +61,43 @@ class TestElementCollectionEmbeddedListCache2 extends BaseTestCase { assertSql(sql.get(2)).contains("insert into ecbl_person2_phone_numbers (person_id,country_code,area,phnum) values (?,?,?,?)"); } - EcblPerson2 three = DB.find(EcblPerson2.class ) + EcblPerson2 three = DB.find(EcblPerson2.class) .setId(person.getId()) .findOne(); - assertThat(three.getPhoneNumbers().toString()).contains("61-07-11", "64-021-1234"); assertThat(three.getPhoneNumbers()).hasSize(2); + assertThat(three.getPhoneNumbers().toString()).contains("61-07-11", "64-021-1234"); sql = LoggedSql.collect(); assertThat(sql).isEmpty(); // cache hit - three.setName("mod-3"); - three.getPhoneNumbers().remove(0); + removeByNumber(three.getPhoneNumbers(), "1234"); DB.save(three); sql = LoggedSql.collect(); assertThat(sql).hasSize(5); - EcblPerson2 four = DB.find(EcblPerson2.class ) + EcblPerson2 four = DB.find(EcblPerson2.class) .setId(person.getId()) .findOne(); assertThat(four.getPhoneNumbers().toString()).contains("61-07-11"); assertThat(four.getPhoneNumbers()).hasSize(1); - DB.delete(four); sql = LoggedSql.collect(); assertThat(sql).hasSize(2); - LoggedSql.stop(); } + + private void removeByNumber(List phoneNumbers, String num) { + phoneNumbers + .stream() + .filter(ecPhone1 -> ecPhone1.number.equals(num)) + .findFirst() + .ifPresent(phoneNumbers::remove); + } }