From 66940c0f14525b1124bfd4e0cdacb27b8e61a5ad Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Wed, 7 Feb 2024 22:29:05 +1300 Subject: [PATCH] Update tests only for BeanList BeanSet BeanMap Use Product entity with equals/hashCode implementation added via ebean enhancement --- .../io/ebean/xtest/common/BeanListTest.java | 29 +++---- .../io/ebean/xtest/common/BeanMapTest.java | 78 ++++++++++--------- .../io/ebean/xtest/common/BeanSetTest.java | 27 ++++--- .../java/org/tests/model/basic/Product.java | 7 ++ .../TestOrphanRemovalOverwrite.java | 8 +- 5 files changed, 85 insertions(+), 64 deletions(-) diff --git a/ebean-test/src/test/java/io/ebean/xtest/common/BeanListTest.java b/ebean-test/src/test/java/io/ebean/xtest/common/BeanListTest.java index 69aea90ffb..3285b60a80 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/common/BeanListTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/common/BeanListTest.java @@ -3,6 +3,7 @@ import io.ebean.bean.BeanCollection; import io.ebean.common.BeanList; import org.junit.jupiter.api.Test; +import org.tests.model.basic.Product; import java.util.ArrayList; import java.util.Comparator; @@ -13,22 +14,22 @@ public class BeanListTest { - private final Object object1 = new Object(); - private final Object object2 = new Object(); - private final Object object3 = new Object(); + private final Product object1 = new Product(1); + private final Product object2 = new Product(2); + private final Product object3 = new Product(3); private List all() { List all = new ArrayList<>(); - all.add(object1); - all.add(object2); - all.add(object3); + all.add(new Product(1)); + all.add(new Product(2)); + all.add(new Product(3)); return all; } private List some() { List some = new ArrayList<>(); - some.add(object2); - some.add(object3); + some.add(new Product(2)); + some.add(new Product(3)); return some; } @@ -163,14 +164,15 @@ public void testAddSome_given_someAlreadyIn() { @Test public void testRemove_given_beansInAdditions() { + List all = all(); BeanList list = new BeanList<>(); list.setModifyListening(BeanCollection.ModifyListenMode.ALL); - list.addAll(all()); + list.addAll(all); assertThat(list.modifyAdditions()).containsOnly(object1, object2, object3); // act - list.remove(object2); - list.remove(object3); + list.remove(all.get(1)); + list.remove(all.get(2)); assertThat(list.modifyAdditions()).containsOnly(object1); assertThat(list.modifyRemovals()).isEmpty(); @@ -179,13 +181,14 @@ public void testRemove_given_beansInAdditions() { @Test public void testRemoveAll_given_beansInAdditions() { + List all = all(); BeanList list = new BeanList<>(); list.setModifyListening(BeanCollection.ModifyListenMode.ALL); - list.addAll(all()); + list.addAll(all); assertThat(list.modifyAdditions()).containsOnly(object1, object2, object3); // act - list.removeAll(some()); + list.removeAll(List.of(all.get(1), all.get(2))); assertThat(list.modifyAdditions()).containsOnly(object1); assertThat(list.modifyRemovals()).isEmpty(); diff --git a/ebean-test/src/test/java/io/ebean/xtest/common/BeanMapTest.java b/ebean-test/src/test/java/io/ebean/xtest/common/BeanMapTest.java index 4b6a48c767..a72a17b2a3 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/common/BeanMapTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/common/BeanMapTest.java @@ -3,7 +3,7 @@ import io.ebean.bean.BeanCollection; import io.ebean.common.BeanMap; import org.junit.jupiter.api.Test; -import org.tests.model.basic.EBasic; +import org.tests.model.basic.Product; import java.util.*; @@ -14,24 +14,24 @@ public class BeanMapTest { - private final EBasic object1 = new EBasic("o1"); - private final EBasic object2 = new EBasic("o2"); - private final EBasic object3 = new EBasic("o3"); - private final EBasic object4 = new EBasic("o4"); - private final EBasic object5 = new EBasic("o5"); + private final Product object1 = new Product(1); + private final Product object2 = new Product(2); + private final Product object3 = new Product(3); + private final Product object4 = new Product(4); + private final Product object5 = new Product(5); private Map all() { Map all = new LinkedHashMap<>(); - all.put("1", object1); - all.put("2", object2); - all.put("3", object3); + all.put("1", new Product(1)); + all.put("2", new Product(2)); + all.put("3", new Product(3)); return all; } private Map some() { Map all = new LinkedHashMap<>(); - all.put("2", object2); - all.put("3", object3); + all.put("2", new Product(2)); + all.put("3", new Product(3)); return all; } @@ -73,8 +73,8 @@ public void testAddAll_given_emptyStart() { @Test public void testAdd_given_someAlreadyIn() { - - BeanMap map = new BeanMap<>(some()); + Map some = new LinkedHashMap<>(Map.of("2", object2, "3", object3)); + BeanMap map = new BeanMap<>(some); map.setModifyListening(BeanCollection.ModifyListenMode.ALL); // act @@ -90,11 +90,13 @@ public void testAdd_given_someAlreadyIn() { @Test public void testAddSome_given_someAlreadyIn() { - BeanMap map = new BeanMap<>(some()); + Map some = new LinkedHashMap<>(Map.of("2", object2, "3", object3)); + BeanMap map = new BeanMap<>(some); map.setModifyListening(BeanCollection.ModifyListenMode.ALL); // act - map.putAll(all()); + Map all = Map.of("1", object1, "2", object2, "3", object3); + map.putAll(all); assertThat(map.modifyAdditions()).containsOnly(object1); assertThat(map.modifyRemovals()).isEmpty(); @@ -179,7 +181,7 @@ public void testClear() { @Test public void testClear_given_someBeansInAdditions() { - BeanMap map = newModifyListeningMap(); + BeanMap map = newModifyListeningMap(); map.put("2", object2); map.put("3", object3); @@ -193,7 +195,7 @@ public void testClear_given_someBeansInAdditions() { @Test public void keySet_add_whenModifyListening() { - BeanMap map = newModifyListeningMap(); + BeanMap map = newModifyListeningMap(); assertThrows(UnsupportedOperationException.class, () -> map.keySet().add("3")); } @@ -205,7 +207,7 @@ public void keySet_add() { @Test public void keySet_addAll_whenModifyListening() { - BeanMap map = newModifyListeningMap(); + BeanMap map = newModifyListeningMap(); assertThrows(UnsupportedOperationException.class, () -> map.keySet().addAll(asList("3", "4"))); } @@ -317,13 +319,13 @@ public void keySet_retainAll() { @Test public void values_add() { - BeanMap map = new BeanMap<>(); + BeanMap map = new BeanMap<>(); assertThrows(UnsupportedOperationException.class, () -> map.values().add(object3)); } @Test public void values_addAll() { - BeanMap map = new BeanMap<>(); + BeanMap map = new BeanMap<>(); assertThrows(UnsupportedOperationException.class, () -> map.values().addAll(asList(object3, object5))); } @@ -337,8 +339,8 @@ public void entrySet_add() { @Test public void entrySet_clear() { - final BeanMap map = newModifyListeningMap(); - final Set> entries = map.entrySet(); + final BeanMap map = newModifyListeningMap(); + final Set> entries = map.entrySet(); entries.clear(); assertThat(entries).isEmpty(); @@ -348,8 +350,8 @@ public void entrySet_clear() { @Test public void entrySet_remove() { - final BeanMap map = newModifyListeningMap5(); - final Set> entries = map.entrySet(); + final BeanMap map = newModifyListeningMap5(); + final Set> entries = map.entrySet(); assertThat(map).hasSize(5); @@ -365,8 +367,8 @@ public void entrySet_remove() { @Test public void entrySet_remove_whenNotEqualValue() { - final BeanMap map = newModifyListeningMap5(); - final Set> entries = map.entrySet(); + final BeanMap map = newModifyListeningMap5(); + final Set> entries = map.entrySet(); assertThat(map).hasSize(5); @@ -379,11 +381,11 @@ public void entrySet_remove_whenNotEqualValue() { @Test public void entrySet_iterator_remove() { - final BeanMap map = newModifyListeningMap5(); - final Set> entries = map.entrySet(); - final Iterator> iterator = entries.iterator(); + final BeanMap map = newModifyListeningMap5(); + final Set> entries = map.entrySet(); + final Iterator> iterator = entries.iterator(); while (iterator.hasNext()) { - final Map.Entry entry = iterator.next(); + final Map.Entry entry = iterator.next(); if (entry.getKey().equals("2") || entry.getKey().equals("5")) { iterator.remove(); } @@ -395,8 +397,8 @@ public void entrySet_iterator_remove() { @Test public void entrySet_removeAll() { - final BeanMap map = newModifyListeningMap5(); - final Set> entries = map.entrySet(); + final BeanMap map = newModifyListeningMap5(); + final Set> entries = map.entrySet(); entries.removeAll(asList(new AbstractMap.SimpleEntry<>("1", object1), new AbstractMap.SimpleEntry<>("3", object4), new AbstractMap.SimpleEntry<>("4", object4))); assertThat(map).hasSize(3); @@ -406,8 +408,8 @@ public void entrySet_removeAll() { @Test public void entrySet_retainAll() { - final BeanMap map = newModifyListeningMap5(); - final Set> entries = map.entrySet(); + final BeanMap map = newModifyListeningMap5(); + final Set> entries = map.entrySet(); entries.retainAll(asList(new AbstractMap.SimpleEntry<>("1", object1), new AbstractMap.SimpleEntry<>("3", object4), new AbstractMap.SimpleEntry<>("4", object4))); assertThat(map).hasSize(2); @@ -415,15 +417,15 @@ public void entrySet_retainAll() { assertThat(map.modifyRemovals()).containsOnly(object2, object3, object5); } - private BeanMap newModifyListeningMap() { - BeanMap map = new BeanMap<>(); + private BeanMap newModifyListeningMap() { + BeanMap map = new BeanMap<>(); map.put("1", object1); map.setModifyListening(BeanCollection.ModifyListenMode.ALL); return map; } - private BeanMap newModifyListeningMap5() { - BeanMap map = new BeanMap<>(); + private BeanMap newModifyListeningMap5() { + BeanMap map = new BeanMap<>(); map.put("1", object1); map.put("2", object2); map.put("3", object3); diff --git a/ebean-test/src/test/java/io/ebean/xtest/common/BeanSetTest.java b/ebean-test/src/test/java/io/ebean/xtest/common/BeanSetTest.java index 5053f71dcf..2152af71bc 100644 --- a/ebean-test/src/test/java/io/ebean/xtest/common/BeanSetTest.java +++ b/ebean-test/src/test/java/io/ebean/xtest/common/BeanSetTest.java @@ -3,6 +3,7 @@ import io.ebean.bean.BeanCollection; import io.ebean.common.BeanSet; import org.junit.jupiter.api.Test; +import org.tests.model.basic.Product; import java.util.LinkedHashSet; import java.util.Set; @@ -12,22 +13,22 @@ public class BeanSetTest { - Object object1 = new Object(); - Object object2 = new Object(); - Object object3 = new Object(); + Product object1 = new Product(1); + Product object2 = new Product(2); + Product object3 = new Product(3); private Set all() { Set all = new LinkedHashSet<>(); - all.add(object1); - all.add(object2); - all.add(object3); + all.add(new Product(1)); + all.add(new Product(2)); + all.add(new Product(3)); return all; } private Set some() { Set some = new LinkedHashSet<>(); - some.add(object2); - some.add(object3); + some.add(new Product(2)); + some.add(new Product(3)); return some; } @@ -99,7 +100,9 @@ public void testRemove_given_beansInAdditions() { BeanSet set = new BeanSet<>(); set.setModifyListening(BeanCollection.ModifyListenMode.ALL); - set.addAll(all()); + + Set all = Set.of(object1, object2, object3); + set.addAll(all); assertThat(set.modifyAdditions()).containsOnly(object1, object2, object3); // act @@ -115,11 +118,13 @@ public void testRemoveAll_given_beansInAdditions() { BeanSet set = new BeanSet<>(); set.setModifyListening(BeanCollection.ModifyListenMode.ALL); - set.addAll(all()); + + Set all = Set.of(object1, object2, object3); + set.addAll(all); assertThat(set.modifyAdditions()).containsOnly(object1, object2, object3); // act - set.removeAll(some()); + set.removeAll(Set.of(object2, object3)); assertThat(set.modifyAdditions()).containsOnly(object1); assertThat(set.modifyRemovals()).isEmpty(); diff --git a/ebean-test/src/test/java/org/tests/model/basic/Product.java b/ebean-test/src/test/java/org/tests/model/basic/Product.java index df57dadd07..4f55576609 100644 --- a/ebean-test/src/test/java/org/tests/model/basic/Product.java +++ b/ebean-test/src/test/java/org/tests/model/basic/Product.java @@ -39,6 +39,13 @@ public class Product implements Serializable { @Version Timestamp updtime; + public Product(Integer id) { + this.id = id; + } + + public Product() { + } + /** * Return id. */ diff --git a/ebean-test/src/test/java/org/tests/model/orphanremoval/TestOrphanRemovalOverwrite.java b/ebean-test/src/test/java/org/tests/model/orphanremoval/TestOrphanRemovalOverwrite.java index 446fff4b22..c99f13483b 100644 --- a/ebean-test/src/test/java/org/tests/model/orphanremoval/TestOrphanRemovalOverwrite.java +++ b/ebean-test/src/test/java/org/tests/model/orphanremoval/TestOrphanRemovalOverwrite.java @@ -29,8 +29,12 @@ public void testOverwritingMapping() { // Refreshing here generates new objects for the associated children that are referred to by the parent. parent.refresh(); - assertNotNull(childList.get(0).getId()); - assertEquals(childList.get(0).getId(), parent.getChildren().get(0).getId()); + OmBeanListChild child = childList.get(0); + assertNotNull(child.getId()); + + OmBeanListChild refreshedChild = parent.getChildren().get(0); + assertEquals(child.getId(), refreshedChild.getId()); + assertEquals(child, refreshedChild); assertEquals(childList, parent.getChildren()); } }