Search in sources :

Example 11 with Person

use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.

the class RecursiveComparisonAssert_isEqualTo_ignoringFields_Test method recursivelyEqualObjectsIgnoringActualNullValues.

private static Stream<Arguments> recursivelyEqualObjectsIgnoringActualNullValues() {
    Person person1 = new Person(null);
    person1.home.address.number = 1;
    Person person2 = new Person("John");
    person2.home.address.number = 1;
    Person person3 = new Person(null);
    person3.home = null;
    Human person4 = new Human();
    person4.name = "John";
    person4.home.address.number = 1;
    Human person5 = new Human();
    person5.home.address.number = 1;
    Person person6 = new Person();
    person6.name = "John";
    person6.neighbour = null;
    person6.dateOfBirth = null;
    person6.home.address = null;
    Person person7 = new Person();
    person7.name = "John";
    person7.neighbour = new Person("Jack");
    person7.neighbour.home = null;
    person7.neighbour.neighbour = new Person("James");
    person7.neighbour.neighbour.home.address = null;
    person7.home.address = null;
    Person person8 = new Person();
    person8.name = "John";
    person8.neighbour = new Person("Jack");
    person8.neighbour.home.address.number = 123;
    person8.neighbour.neighbour = new Person("James");
    person8.neighbour.neighbour.home.address.number = 456;
    return Stream.of(arguments(person1, person2, "same data, same type, except for actual null fields"), arguments(person3, person1, "all actual fields are null, should be equal to anything"), arguments(person3, person2, "all actual fields are null, should be equal to anything"), arguments(person3, person3, "all actual fields are null, should be equal to anything"), arguments(person3, person4, "same data, different type, actual has null fields"), arguments(person5, person2, "same data, different type, actual has null fields"), arguments(person6, person2, "same data, different type, actual has only non null name"), arguments(person6, person7, "same data, actual has only non null name"), arguments(person6, person8, "same data, actual has only non null name"), arguments(person7, person8, "same data, actual has null fields deep in its graph"));
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Person(org.assertj.core.internal.objects.data.Person)

Example 12 with Person

use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.

the class RecursiveComparisonAssert_isEqualTo_ignoringFields_Test method recursivelyEqualObjectsWhenFieldsMatchingGivenRegexesAreIgnored.

private static Stream<Arguments> recursivelyEqualObjectsWhenFieldsMatchingGivenRegexesAreIgnored() {
    Person person1 = new Person("John");
    person1.home.address.number = 1;
    Person giant1 = new Giant();
    giant1.name = "Giant John";
    ((Giant) giant1).height = 3.1;
    giant1.home.address.number = 1;
    Person person2 = new Person("Jack");
    person2.home.address.number = 1;
    Person person3 = new Person("John");
    person3.home.address.number = 123;
    Human person4 = new Human();
    person4.name = "Jack";
    person4.home.address.number = 456;
    Person person5 = new Person();
    person5.home.address.number = 1;
    Person person6 = new Person();
    person6.home.address.number = 2;
    Person person7 = new Person("John");
    person7.neighbour = new Person("Jack");
    person7.neighbour.home.address.number = 123;
    person7.neighbour.neighbour = new Person("James");
    person7.neighbour.neighbour.home.address.number = 124;
    Person person8 = new Person("John");
    person8.neighbour = new Person("Jim");
    person8.neighbour.home.address.number = 123;
    person8.neighbour.neighbour = new Person("James");
    person8.neighbour.neighbour.home.address.number = 457;
    // @format:off
    return Stream.of(arguments(person1, person2, "same data and type, except for one ignored field", list("nam.")), arguments(giant1, person1, "different type, same data except name and height which is not even a field from person1", list(".am.", "height")), arguments(person3, person4, "same data, different type, except for name and home.address.number", list(".*n.m.*")), arguments(person5, person6, "same data except for one subfield of an ignored field", list("home.*")), arguments(person7, person8, "same data except for one subfield of an ignored field", list("neighbour.*")), arguments(person7, person8, "should not stack overflow with regexes", list(".*neighbour[\\D]+", ".*update[\\D]+")));
// @format:on
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Giant(org.assertj.core.internal.objects.data.Giant) Person(org.assertj.core.internal.objects.data.Person)

Example 13 with Person

use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.

the class RecursiveComparisonAssert_isEqualTo_ignoringOverriddenEquals_Test method comparison_ignores_overridden_equals_methods_by_types_data.

private static Stream<Arguments> comparison_ignores_overridden_equals_methods_by_types_data() {
    Person person1 = new Person();
    person1.neighbour = new AlwaysDifferentPerson();
    Person person2 = new Person();
    person2.neighbour = new AlwaysDifferentPerson();
    Person person3 = new Person();
    person3.home.address = new AlwaysDifferentAddress();
    person3.neighbour = new AlwaysDifferentPerson();
    Person person4 = new Person();
    person4.home.address = new AlwaysDifferentAddress();
    person4.neighbour = new AlwaysDifferentPerson();
    return Stream.of(arguments(person1, person2, "AlwaysDifferentPerson neighbour identical field by field", list(AlwaysDifferentPerson.class)), arguments(person3, person4, "AlwaysDifferentPerson neighbour and AlwaysDifferentAddress identical field by field", list(AlwaysDifferentPerson.class, AlwaysDifferentAddress.class)));
}
Also used : AlwaysDifferentPerson(org.assertj.core.internal.objects.data.AlwaysDifferentPerson) AlwaysDifferentAddress(org.assertj.core.internal.objects.data.AlwaysDifferentAddress) Person(org.assertj.core.internal.objects.data.Person) AlwaysDifferentPerson(org.assertj.core.internal.objects.data.AlwaysDifferentPerson) AlwaysEqualPerson(org.assertj.core.internal.objects.data.AlwaysEqualPerson)

Example 14 with Person

use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.

the class RecursiveComparisonAssert_isEqualTo_ignoringOverriddenEquals_Test method comparison_ignores_all_fields_overridden_equals_methods_data.

private static Stream<Arguments> comparison_ignores_all_fields_overridden_equals_methods_data() {
    Person person1 = new Person();
    person1.neighbour = new AlwaysDifferentPerson();
    Person person2 = new Person();
    person2.neighbour = new AlwaysDifferentPerson();
    Person person3 = new Person();
    person3.home.address = new AlwaysDifferentAddress();
    person3.neighbour = new AlwaysDifferentPerson();
    Person person4 = new Person();
    person4.home.address = new AlwaysDifferentAddress();
    person4.neighbour = new AlwaysDifferentPerson();
    return Stream.of(arguments(person1, person2, "AlwaysDifferentPerson neighbour identical field by field"), arguments(person3, person4, "AlwaysDifferentPerson neighbour and AlwaysDifferentAddress identical field by field"));
}
Also used : AlwaysDifferentPerson(org.assertj.core.internal.objects.data.AlwaysDifferentPerson) AlwaysDifferentAddress(org.assertj.core.internal.objects.data.AlwaysDifferentAddress) Person(org.assertj.core.internal.objects.data.Person) AlwaysDifferentPerson(org.assertj.core.internal.objects.data.AlwaysDifferentPerson) AlwaysEqualPerson(org.assertj.core.internal.objects.data.AlwaysEqualPerson)

Example 15 with Person

use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.

the class RecursiveComparisonAssert_isEqualTo_ignoringOverriddenEquals_Test method should_fail_when_actual_differs_from_expected_as_some_overridden_equals_methods_are_ignored_by_regexes.

@Test
void should_fail_when_actual_differs_from_expected_as_some_overridden_equals_methods_are_ignored_by_regexes() {
    // GIVEN
    Person actual = new Person();
    actual.neighbour = new AlwaysEqualPerson();
    actual.neighbour.name = "Jack";
    actual.neighbour.home.address = new AlwaysEqualAddress();
    actual.neighbour.home.address.number = 123;
    Person expected = new Person();
    expected.neighbour = new AlwaysEqualPerson();
    expected.neighbour.name = "Jim";
    expected.neighbour.home.address = new AlwaysEqualAddress();
    expected.neighbour.home.address.number = 234;
    recursiveComparisonConfiguration.ignoreOverriddenEqualsForFieldsMatchingRegexes(".*AlwaysEqualPerson", ".*AlwaysEqualAddress");
    // WHEN
    compareRecursivelyFailsAsExpected(actual, expected);
    // THEN
    ComparisonDifference neighbourNameDifference = diff("neighbour.name", actual.neighbour.name, expected.neighbour.name);
    ComparisonDifference numberDifference = diff("neighbour.home.address.number", actual.neighbour.home.address.number, expected.neighbour.home.address.number);
    verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, numberDifference, neighbourNameDifference);
}
Also used : AlwaysEqualPerson(org.assertj.core.internal.objects.data.AlwaysEqualPerson) AlwaysEqualAddress(org.assertj.core.internal.objects.data.AlwaysEqualAddress) Person(org.assertj.core.internal.objects.data.Person) AlwaysDifferentPerson(org.assertj.core.internal.objects.data.AlwaysDifferentPerson) AlwaysEqualPerson(org.assertj.core.internal.objects.data.AlwaysEqualPerson) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)

Aggregations

Person (org.assertj.core.internal.objects.data.Person)62 Test (org.junit.jupiter.api.Test)46 RecursiveComparisonAssert_isEqualTo_BaseTest (org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)38 AlwaysEqualPerson (org.assertj.core.internal.objects.data.AlwaysEqualPerson)27 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)27 Date (java.util.Date)20 AlwaysDifferentPerson (org.assertj.core.internal.objects.data.AlwaysDifferentPerson)9 FriendlyPerson (org.assertj.core.internal.objects.data.FriendlyPerson)9 Human (org.assertj.core.internal.objects.data.Human)6 RecursiveComparisonAssert_isNotEqualTo_BaseTest (org.assertj.core.api.RecursiveComparisonAssert_isNotEqualTo_BaseTest)5 AlwaysDifferentAddress (org.assertj.core.internal.objects.data.AlwaysDifferentAddress)4 Timestamp (java.sql.Timestamp)3 AlwaysEqualAddress (org.assertj.core.internal.objects.data.AlwaysEqualAddress)3 Giant (org.assertj.core.internal.objects.data.Giant)3 AssertionsUtil.expectAssertionError (org.assertj.core.util.AssertionsUtil.expectAssertionError)3 PersonDto (org.assertj.core.internal.objects.data.PersonDto)2 CartoonCharacter (org.assertj.core.test.CartoonCharacter)2 Comparator (java.util.Comparator)1 AtPrecisionComparator (org.assertj.core.internal.AtPrecisionComparator)1 CaseInsensitiveStringComparator (org.assertj.core.internal.CaseInsensitiveStringComparator)1