diff --git a/src/main/java/nl/sander/reflective/compare/Compare.java b/src/main/java/nl/sander/reflective/compare/Compare.java index 4aeb943..35b19c3 100644 --- a/src/main/java/nl/sander/reflective/compare/Compare.java +++ b/src/main/java/nl/sander/reflective/compare/Compare.java @@ -13,7 +13,6 @@ import java.util.concurrent.atomic.LongAdder; import java.util.stream.Collectors; import java.util.stream.Stream; -@SuppressWarnings({"unchecked", "rawtypes"}) /** * Deep (recursive) comparison of two objects * - floating point comparison with optional precision @@ -21,6 +20,7 @@ import java.util.stream.Stream; * * In case of maps or differing object types, every item in apple is expected in orange, so apple can be subset of orange. */ +@SuppressWarnings({"unchecked", "rawtypes"}) public class Compare { private final static Map CHAR_ESCAPES = Map.of('\t', "\\t", '\b', "\\b", '\n', "\\n", '\r', "\\r", '\f', "\\f", '\\', "\\\\"); @@ -84,7 +84,7 @@ public class Compare { if (apple.getClass() != orange.getClass()) { if (allowDifferingTypes) { // convert objects to maps and compare their keys/values - return compareMaps(property, ToMap.map(apple), (Map) ToMap.map(orange), allowDifferingTypes); + return compareMaps(property, ToMap.map(apple), ToMap.map(orange), allowDifferingTypes); } else { return Result.unequal(property, asString(apple) + " != " + asString(orange)); } diff --git a/src/main/java/nl/sander/reflective/compare/Result.java b/src/main/java/nl/sander/reflective/compare/Result.java index e4b1fbf..f470bda 100644 --- a/src/main/java/nl/sander/reflective/compare/Result.java +++ b/src/main/java/nl/sander/reflective/compare/Result.java @@ -6,6 +6,7 @@ import java.util.Objects; import java.util.function.Supplier; import java.util.stream.Collectors; +@SuppressWarnings("unused") public class Result { private final boolean areEqual; private final List diffs; @@ -70,6 +71,14 @@ public class Result { return areEqual; } + public boolean hasException(){ + return e != null; + } + + public Throwable getException() { + return e; + } + public static Result merge(Result... result) { boolean areEqual = Arrays.stream(result).allMatch(r -> r.areEqual); List diffs = Arrays.stream(result) diff --git a/src/test/java/ExampleMappifier.java b/src/test/java/ExampleMappifier.java deleted file mode 100644 index 21d31d5..0000000 --- a/src/test/java/ExampleMappifier.java +++ /dev/null @@ -1,15 +0,0 @@ -import nl.sander.reflective.tomap.AbstractToMap; -import nl.sander.reflective.compare.PlumBean; - -import java.util.HashMap; -import java.util.Map; - -public class ExampleMappifier extends AbstractToMap { - - public Map toMap(Object o) { - HashMap m = new HashMap<>(); - add(m, "core", ((PlumBean) o).getCore()); - add(m, "number", ((PlumBean) o).getNumber()); - return m; - } -} diff --git a/src/test/java/nl/sander/reflective/compare/DifferentTypesTest.java b/src/test/java/nl/sander/reflective/compare/DifferentTypesTest.java index 1991694..8b2101c 100644 --- a/src/test/java/nl/sander/reflective/compare/DifferentTypesTest.java +++ b/src/test/java/nl/sander/reflective/compare/DifferentTypesTest.java @@ -10,7 +10,7 @@ public class DifferentTypesTest { assertTrue(Compare.any(new Apple("orange"), new Orange("orange")).areEqual()); } - class Apple { + static class Apple { final String color; Apple(String color) { @@ -18,7 +18,7 @@ public class DifferentTypesTest { } } - class Orange { + static class Orange { final String color; Orange(String color) {