/** * Assert that the given object is lenient equals to the other by comparing all fields (including inherited fields) * unless given ignored ones. * * @param info contains information about the assertion. * @param actual the given object. * @param other the object to compare {@code actual} to. * @param fields the fields to ignore in comparison * @throws NullPointerException if the other type is {@code null}. * @throws AssertionError if actual is {@code null}. * @throws AssertionError if the actual and the given object are not lenient equals. * @throws AssertionError if the other object is not an instance of the actual type. */ public <A> void assertIsEqualToIgnoringGivenFields(AssertionInfo info, A actual, A other, String... fields) { assertNotNull(info, actual); assertOtherTypeIsCompatibleWithActualClass(info, other, actual.getClass()); ByFieldsComparison byFieldsComparison = isEqualToIgnoringGivenFields(actual, other, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues, byFieldsComparison.expectedValues, newArrayList(fields))); }
/** * Assert that the given object is lenient equals to other object by comparing given fields value only. * * @param info contains information about the assertion. * @param actual the given object. * @param other the object to compare {@code actual} to. * @param fields accepted fields * @throws NullPointerException if the other type is {@code null}. * @throws AssertionError if actual is {@code null}. * @throws AssertionError if the actual and the given object are not lenient equals. * @throws AssertionError if the other object is not an instance of the actual type. * @throws IntrospectionError if a field does not exist in actual. */ public <A> void assertIsEqualToComparingOnlyGivenFields(AssertionInfo info, A actual, A other, String... fields) { assertNotNull(info, actual); assertOtherTypeIsCompatibleWithActualClass(info, other, actual.getClass()); ByFieldsComparison byFieldsComparison = isEqualToComparingOnlyGivenFields(actual, other, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualComparingOnlyGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues, byFieldsComparison.expectedValues, newArrayList(fields))); }
/** * Assert that the given object is lenient equals to the other by comparing all fields (including inherited fields) * unless given ignored ones. * * @param <A> the actual type * @param info contains information about the assertion. * @param actual the given object. * @param other the object to compare {@code actual} to. * @param comparatorByPropertyOrField comparators use for specific fields * @param comparatorByType comparators use for specific types * @param fields the fields to ignore in comparison * @throws NullPointerException if the other type is {@code null}. * @throws AssertionError if actual is {@code null}. * @throws AssertionError if the actual and the given object are not lenient equals. * @throws AssertionError if the other object is not an instance of the actual type. */ public <A> void assertIsEqualToIgnoringGivenFields(AssertionInfo info, A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields) { assertNotNull(info, actual); ByFieldsComparison byFieldsComparison = isEqualToIgnoringGivenFields(actual, other, comparatorByPropertyOrField, comparatorByType, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues, byFieldsComparison.expectedValues, newArrayList(fields))); }
comparatorByType, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualComparingOnlyGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues,
comparatorByType, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualComparingOnlyGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues,
/** * Assert that the given object is lenient equals to the other by comparing all fields (including inherited fields) * unless given ignored ones. * * @param <A> the actual type * @param info contains information about the assertion. * @param actual the given object. * @param other the object to compare {@code actual} to. * @param comparatorByPropertyOrField comparators use for specific fields * @param comparatorByType comparators use for specific types * @param fields the fields to ignore in comparison * @throws NullPointerException if the other type is {@code null}. * @throws AssertionError if actual is {@code null}. * @throws AssertionError if the actual and the given object are not lenient equals. * @throws AssertionError if the other object is not an instance of the actual type. */ public <A> void assertIsEqualToIgnoringGivenFields(AssertionInfo info, A actual, A other, Map<String, Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields) { assertNotNull(info, actual); ByFieldsComparison byFieldsComparison = isEqualToIgnoringGivenFields(actual, other, comparatorByPropertyOrField, comparatorByType, fields); if (byFieldsComparison.isFieldsNamesNotEmpty()) throw failures.failure(info, shouldBeEqualToIgnoringGivenFields(actual, byFieldsComparison.fieldsNames, byFieldsComparison.rejectedValues, byFieldsComparison.expectedValues, newArrayList(fields))); }