public boolean matches(Object actual) { if (actual == null) { this.self.appendText( "MapPropertyEqaulMatcher, the actual object can't be null or list/array."); return false; } List<Map<String, ?>> expecteds = new ArrayList<Map<String, ?>>(); List<Map<String, ?>> actuals = new ArrayList<Map<String, ?>>(); List list = ListHelper.toList(actual); if (list == null || list.size() == 0) { this.self.appendText("the actual value is empty."); return false; } else if (list.size() > 1) { this.self.appendText( "the size of actual list/array are greater than one, please use API: reflectionEqMap(count, DataMap)."); return false; } Object item = list.get(0); if (ArrayHelper.isCollOrArray(item)) { this.self.appendText("MapPropertyEqaulMatcher, the item of actual list can't list/array."); return false; } else { Map<String, Object> map = item == null ? null : this.getValueByMapKeys(item); actuals.add(map); expecteds.add(this.expected); } ReflectionComparator reflectionComparator = createRefectionComparator(modes); this.difference = reflectionComparator.getDifference(expecteds, actuals); return difference == null; }
public boolean matches(Object actual) { if (ArrayHelper.isCollOrArray(actual) == false) { buff.append("PropertyItemsMatcher, the actual value must be a array or collection."); return false; } List list = ListHelper.toList(actual); actualItems = PropertyAccessor.getPropertyOfList(list, property, true); for (Object item : actualItems) { boolean match = this.matcher.matches(item); if (match == false) { return false; } } return true; }