Apply suggestions from code review Co-authored-by: Kyle Aure <KyleJAure@gmail.com> Signed-off-by: James R. Perkins <jperkins@ibm.com>
diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java b/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java index a8a4a92..907eb05 100644 --- a/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java +++ b/src/test/java/org/eclipse/yasson/defaultmapping/generics/GenericsTest.java
@@ -14,6 +14,7 @@ import static org.eclipse.yasson.Jsonbs.defaultJsonb; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertIterableEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -527,6 +528,8 @@ // Use a new instance of Jsonb to avoid any caching try (var jsonb = JsonbBuilder.create()) { assertEquals(expectedJson, jsonb.toJson(container)); + TreeContainer<TreeElement> result = jsonb.fromJson(expectedJson, new TestTypeToken<TreeContainer<TreeElement>>() {}.getType()); + assertIterableEquals(container.getTree().getChildren(), result.getTree().getChildren()); } } @@ -542,6 +545,8 @@ // Use a new instance of Jsonb to avoid any caching try (var jsonb = JsonbBuilder.create()) { assertEquals(expectedJson, jsonb.toJson(container)); + ListContainer<TreeElement> result = jsonb.fromJson(expectedJson, new TestTypeToken<ListContainer<TreeElement>>() {}.getType()); + assertIterableEquals(container.getList(), result.getList()); } }
diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeElement.java b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeElement.java index 36a7f71..a8dd238 100644 --- a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeElement.java +++ b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeElement.java
@@ -17,7 +17,10 @@ */ public class TreeElement extends TreeTypeContainer<TreeElement> { - private final String name; + private String name; + + public TreeElement() { + } public TreeElement(final String name) { this.name = name; @@ -26,4 +29,25 @@ public String getName() { return name; } -} + + public void setName(final String name) { + this.name = name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + if (!super.equals(o)) { + return false; + } + + TreeElement that = (TreeElement) o; + return name != null ? name.equals(that.name) : that.name == null; + } +}
diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeTypeContainer.java b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeTypeContainer.java index 824a5e5..f649f7c 100644 --- a/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeTypeContainer.java +++ b/src/test/java/org/eclipse/yasson/defaultmapping/generics/model/TreeTypeContainer.java
@@ -27,4 +27,21 @@ public void setChildren(final List<T> children) { this.children = children; } -} + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + TreeTypeContainer<?> that = (TreeTypeContainer<?>) o; + if (children == null) { + return that.children == null; + } + + return children.containsAll(that.children) && that.children.containsAll(children); + } +}