/** * Use field/property by field/property comparison (including inherited fields/properties) instead of relying on * actual type A <code>equals</code> method to compare the {@link Optional} value's object for incoming assertion * checks. Private fields are included but this can be disabled using * {@link Assertions#setAllowExtractingPrivateFields(boolean)}. * <p> * This can be handy if <code>equals</code> method of the {@link Optional} value's object to compare does not suit * you. * </p> * Note that the comparison is <b>not</b> recursive, if one of the fields/properties is an Object, it will be * compared to the other field/property using its <code>equals</code> method. * <p> * Example: * * <pre><code class='java'> TolkienCharacter frodo = new TolkienCharacter("Frodo", 33, HOBBIT); * TolkienCharacter frodoClone = new TolkienCharacter("Frodo", 33, HOBBIT); * * // Fail if equals has not been overridden in TolkienCharacter as equals default implementation only compares references * assertThat(Optional.of(frodo)).contains(frodoClone); * * // frodo and frodoClone are equals when doing a field by field comparison. * assertThat(Optional.of(frodo)).usingFieldByFieldValueComparator().contains(frodoClone);</code></pre> * * @return {@code this} assertion object. */ @CheckReturnValue public SELF usingFieldByFieldValueComparator() { return usingValueComparator(new FieldByFieldComparator()); }
/** * Use field/property by field/property comparison (including inherited fields/properties) instead of relying on * actual type A <code>equals</code> method to compare the {@link Optional} value's object for incoming assertion * checks. Private fields are included but this can be disabled using * {@link Assertions#setAllowExtractingPrivateFields(boolean)}. * <p> * This can be handy if <code>equals</code> method of the {@link Optional} value's object to compare does not suit * you. * </p> * Note that the comparison is <b>not</b> recursive, if one of the fields/properties is an Object, it will be * compared to the other field/property using its <code>equals</code> method. * <p> * Example: * * <pre><code class='java'> TolkienCharacter frodo = new TolkienCharacter("Frodo", 33, HOBBIT); * TolkienCharacter frodoClone = new TolkienCharacter("Frodo", 33, HOBBIT); * * // Fail if equals has not been overridden in TolkienCharacter as equals default implementation only compares references * assertThat(Optional.of(frodo)).contains(frodoClone); * * // frodo and frodoClone are equals when doing a field by field comparison. * assertThat(Optional.of(frodo)).usingFieldByFieldValueComparator().contains(frodoClone);</code></pre> * * @return {@code this} assertion object. */ @CheckReturnValue public SELF usingFieldByFieldValueComparator() { return usingValueComparator(new FieldByFieldComparator()); }
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
return usingExtendedByTypesElementComparator(new FieldByFieldComparator(comparatorsForElementPropertyOrFieldNames, getComparatorsForElementPropertyOrFieldTypes()));
/** * Use field/property by field/property comparison (including inherited fields/properties) instead of relying on * actual type A <code>equals</code> method to compare the {@link Try} value's object for incoming assertion * checks. Private fields are included but this can be disabled using * {@link Assertions#setAllowExtractingPrivateFields(boolean)}. * * @return {@code this} assertion object. */ @CheckReturnValue public SELF usingFieldByFieldValueComparator() { return usingValueComparator(new FieldByFieldComparator()); }
/** * Use field by field comparison (including inherited fields) instead of relying on actual type A <code>equals</code> * method to compare group elements for incoming assertion checks. * <p/> * This can be handy if <code>equals</code> method of the objects to compare does not suit you. * <p/> * Note that only <b>accessible </b>fields values are compared, accessible fields include directly accessible fields * (e.g. public) or fields with an accessible getter.<br/> * Moreover comparison is <b>not</b> recursive, if one of the field is an Object, it will be compared to the other * field using its <code>equals</code> method. * </p> * Example: * * <pre><code class='java'> * TolkienCharacter frodo = new TolkienCharacter("Frodo", 33, HOBBIT); * TolkienCharacter frodoClone = new TolkienCharacter("Frodo", 33, HOBBIT); * * // Fail if equals has not been overriden in TolkienCharacter as equals default implementation only compares references * assertThat(newArrayList(frodo)).contains(frodoClone); * * // frodo and frodoClone are equals when doing a field by field comparison. * assertThat(newArrayList(frodo)).usingFieldByFieldElementComparator().contains(frodoClone); * </code></pre> * * @return {@code this} assertion object. */ public S usingFieldByFieldElementComparator() { return usingElementComparator(new FieldByFieldComparator()); }
/** * Use field/property by field/property comparison (including inherited fields/properties) instead of relying on * actual type A <code>equals</code> method to compare the {@link Either} value's object for incoming assertion * checks. Private fields are included but this can be disabled using * {@link Assertions#setAllowExtractingPrivateFields(boolean)}. * * @return {@code this} assertion object. */ @CheckReturnValue public SELF usingFieldByFieldValueComparator() { return usingValueComparator(new FieldByFieldComparator()); }
/** * Use field/property by field/property comparison (including inherited fields/properties) instead of relying on * actual type A <code>equals</code> method to compare the {@link Option} value's object for incoming assertion * checks. Private fields are included but this can be disabled using * {@link Assertions#setAllowExtractingPrivateFields(boolean)}. * * @return {@code this} assertion object. */ @CheckReturnValue public SELF usingFieldByFieldValueComparator() { return usingValueComparator(new FieldByFieldComparator()); }