private <A> ByFieldsComparison isEqualToComparingOnlyGivenFields(A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] fields) { List<String> rejectedFieldsNames = new LinkedList<>(); List<Object> expectedValues = new LinkedList<>(); List<Object> rejectedValues = new LinkedList<>(); for (String fieldName : fields) { Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName); Object otherFieldValue = getPropertyOrFieldValue(other, fieldName); if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName, comparatorByPropertyOrField, comparatorByType)) { rejectedFieldsNames.add(fieldName); expectedValues.add(otherFieldValue); rejectedValues.add(actualFieldValue); } } return new ByFieldsComparison(rejectedFieldsNames, expectedValues, rejectedValues); }
private <A> ByFieldsComparison isEqualToComparingOnlyGivenFields(A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] fields) { List<String> rejectedFieldsNames = new LinkedList<>(); List<Object> expectedValues = new LinkedList<>(); List<Object> rejectedValues = new LinkedList<>(); for (String fieldName : fields) { Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName); Object otherFieldValue = getPropertyOrFieldValue(other, fieldName); if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName, comparatorByPropertyOrField, comparatorByType)) { rejectedFieldsNames.add(fieldName); expectedValues.add(otherFieldValue); rejectedValues.add(actualFieldValue); } } return new ByFieldsComparison(rejectedFieldsNames, expectedValues, rejectedValues); }
private <A> ByFieldsComparison isEqualToIgnoringGivenFields(A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] givenIgnoredFields) { Set<Field> declaredFieldsIncludingInherited = getDeclaredFieldsIncludingInherited(actual.getClass()); List<String> fieldsNames = new LinkedList<>(); List<Object> expectedValues = new LinkedList<>(); List<Object> rejectedValues = new LinkedList<>(); Set<String> ignoredFields = newLinkedHashSet(givenIgnoredFields); for (Field field : declaredFieldsIncludingInherited) { // ignore private field if user has decided not to use them in comparison String fieldName = field.getName(); if (ignoredFields.contains(fieldName) || !canReadFieldValue(field, actual)) { continue; } Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName); Object otherFieldValue = getPropertyOrFieldValue(other, fieldName); if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName, comparatorByPropertyOrField, comparatorByType)) { fieldsNames.add(fieldName); rejectedValues.add(actualFieldValue); expectedValues.add(otherFieldValue); } } return new ByFieldsComparison(fieldsNames, expectedValues, rejectedValues); }
private <A> ByFieldsComparison isEqualToIgnoringGivenFields(A actual, A other, String[] givenIgnoredFields) { Set<Field> declaredFieldsIncludingInherited = getDeclaredFieldsIncludingInherited(actual.getClass()); verifyIgnoredFieldsExist(actual, declaredFieldsIncludingInherited, givenIgnoredFields); List<String> fieldsNames = new LinkedList<String>(); List<Object> expectedValues = new LinkedList<Object>(); List<Object> rejectedValues = new LinkedList<Object>(); Set<String> ignoredFields = newLinkedHashSet(givenIgnoredFields); for (Field field : declaredFieldsIncludingInherited) { // ignore private field if user has decided not to use them in comparison if (ignoredFields.contains(field.getName()) || !canReadFieldValue(field, actual)) { continue; } Object actualFieldValue = getFieldOrPropertyValue(actual, field.getName()); Object otherFieldValue = getFieldOrPropertyValue(other, field.getName()); if (!org.assertj.core.util.Objects.areEqual(actualFieldValue, otherFieldValue)) { fieldsNames.add(field.getName()); rejectedValues.add(actualFieldValue); expectedValues.add(otherFieldValue); } } return new ByFieldsComparison(fieldsNames, expectedValues, rejectedValues); }
private <A> ByFieldsComparison isEqualToComparingOnlyGivenFields(A actual, A other, String[] fields) { List<String> rejectedFieldsNames = new LinkedList<String>(); List<Object> expectedValues = new LinkedList<Object>(); List<Object> rejectedValues = new LinkedList<Object>(); for (String fieldName : fields) { Object actualFieldValue = getFieldOrPropertyValue(actual, fieldName); Object otherFieldValue = getFieldOrPropertyValue(other, fieldName); if (!org.assertj.core.util.Objects.areEqual(actualFieldValue, otherFieldValue)) { rejectedFieldsNames.add(fieldName); expectedValues.add(otherFieldValue); rejectedValues.add(actualFieldValue); } } return new ByFieldsComparison(rejectedFieldsNames, expectedValues, rejectedValues); }
private <A> ByFieldsComparison isEqualToIgnoringGivenFields(A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] givenIgnoredFields) { Set<Field> declaredFieldsIncludingInherited = getDeclaredFieldsIncludingInherited(actual.getClass()); List<String> fieldsNames = new LinkedList<>(); List<Object> expectedValues = new LinkedList<>(); List<Object> rejectedValues = new LinkedList<>(); Set<String> ignoredFields = newLinkedHashSet(givenIgnoredFields); for (Field field : declaredFieldsIncludingInherited) { // ignore private field if user has decided not to use them in comparison String fieldName = field.getName(); if (ignoredFields.contains(fieldName) || !canReadFieldValue(field, actual)) { continue; } Object actualFieldValue = getPropertyOrFieldValue(actual, fieldName); Object otherFieldValue = getPropertyOrFieldValue(other, fieldName); if (!propertyOrFieldValuesAreEqual(actualFieldValue, otherFieldValue, fieldName, comparatorByPropertyOrField, comparatorByType)) { fieldsNames.add(fieldName); rejectedValues.add(actualFieldValue); expectedValues.add(otherFieldValue); } } return new ByFieldsComparison(fieldsNames, expectedValues, rejectedValues); }