mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-12 22:41:35 +00:00
Yugabyte - Tidy tests with element collections not maintaining ordering
This commit is contained in:
1 parent
567ad92050
commit
804098149e
3 files changed
+34
-30
No files matched your search
+6
-14
@@ -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<String> 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<String> 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<String> 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<String> 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());
|
||||
|
||||
+12
-4
@@ -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<EcPhone> phoneNumbers, String num) {
|
||||
phoneNumbers
|
||||
.stream()
|
||||
.filter(ecPhone1 -> ecPhone1.number.equals(num))
|
||||
.findFirst()
|
||||
.ifPresent(phoneNumbers::remove);
|
||||
}
|
||||
}
|
||||
+16
-12
@@ -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<String> 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<EcPhone> phoneNumbers, String num) {
|
||||
phoneNumbers
|
||||
.stream()
|
||||
.filter(ecPhone1 -> ecPhone1.number.equals(num))
|
||||
.findFirst()
|
||||
.ifPresent(phoneNumbers::remove);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user