Search in sources :

Example 36 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 should_fail_when_actual_differs_from_expected_even_when_some_fields_are_ignored_by_regexes.

@Test
void should_fail_when_actual_differs_from_expected_even_when_some_fields_are_ignored_by_regexes() {
    // GIVEN
    Person actual = new Person("John");
    actual.home.address.number = 1;
    actual.dateOfBirth = new Date(123);
    actual.neighbour = new Person("Jack");
    actual.neighbour.dateOfBirth = new Date(123);
    actual.neighbour.home.address.number = 123;
    actual.neighbour.neighbour = new Person("James");
    actual.neighbour.neighbour.home.address.number = 124;
    Person expected = new Person("Jack");
    expected.home.address.number = 2;
    expected.dateOfBirth = new Date(456);
    expected.neighbour = new Person("Jim");
    expected.neighbour.dateOfBirth = new Date(456);
    expected.neighbour.home.address.number = 234;
    expected.neighbour.neighbour = new Person("James");
    expected.neighbour.neighbour.home.address.number = 457;
    recursiveComparisonConfiguration.ignoreFieldsMatchingRegexes(".*name", ".*home.*number");
    // WHEN
    compareRecursivelyFailsAsExpected(actual, expected);
    // THEN
    ComparisonDifference dateOfBirthDifference = diff("dateOfBirth", actual.dateOfBirth, expected.dateOfBirth);
    ComparisonDifference neighbourdateOfBirthDifference = diff("neighbour.dateOfBirth", actual.neighbour.dateOfBirth, expected.neighbour.dateOfBirth);
    verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, dateOfBirthDifference, neighbourdateOfBirthDifference);
}
Also used : Person(org.assertj.core.internal.objects.data.Person) Date(java.util.Date) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)

Example 37 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 recursivelyEqualObjectsIgnoringGivenTypes.

private static Stream<Arguments> recursivelyEqualObjectsIgnoringGivenTypes() {
    Person person1 = new Person("John");
    person1.home.address.number = 1;
    Person person2 = new Person("Jack");
    person2.home.address.number = 1;
    Person person3 = new Person("John");
    person3.dateOfBirth = new Date(123);
    Human person4 = new Human();
    person4.name = "Jack";
    person4.dateOfBirth = new Date(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;
    Person person8 = new Person("John");
    person8.neighbour = new Person("Jim");
    person8.neighbour.home.address.number = 456;
    return Stream.of(arguments(person1, person2, "same data and type, except for one ignored type", list(String.class)), arguments(person3, person4, "same data, different type, except for several ignored types", list(String.class, Date.class)), arguments(person5, person6, "same data except for one subfield of an ignored type", list(Address.class)), arguments(person7, person8, "same data except for several subfields of ignored types, including a primitive type", list(Integer.class, String.class)));
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Person(org.assertj.core.internal.objects.data.Person) Date(java.util.Date)

Example 38 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 recursivelyEqualObjectsIgnoringGivenFields.

private static Stream<Arguments> recursivelyEqualObjectsIgnoringGivenFields() {
    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;
    return Stream.of(arguments(person1, person2, "same data and type, except for one ignored field", list("name")), arguments(list(person1), list(person2), "list of same data and type, except for one ignored field", list("name")), arguments(array(person1), array(person2), "array of same data and type, except for one ignored field", list("name")), arguments(list(person1, giant1), list(person2, person1), "list of same data except name and height which is not even a field from person1", list("name", "height")), arguments(array(person1, giant1), array(person2, person1), "list of same data except name and height which is not even a field from person1", list("name", "height")), arguments(list(person3, person7), list(person4, person8), "list of same data except name and height which is not even a field from person1", list("name", "home.address.number", "neighbour.neighbour.home.address.number", "neighbour.name")), arguments(array(person3, person7), array(person4, person8), "array of same data except name and height which is not even a field from person1", list("name", "home.address.number", "neighbour.neighbour.home.address.number", "neighbour.name")), arguments(giant1, person1, "different type, same data except name and height which is not even a field from person1", list("name", "height")), arguments(person3, person4, "same data, different type, except for several ignored fields", list("name", "home.address.number")), 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.neighbour.home.address.number", "neighbour.name")));
}
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 39 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 should_fail_when_actual_differs_from_expected_even_when_all_empty_optional_actual_fields_are_ignored.

@Test
void should_fail_when_actual_differs_from_expected_even_when_all_empty_optional_actual_fields_are_ignored() {
    // GIVEN
    Person actual = new Person("John");
    actual.home.address.number = 1;
    actual.phone = Optional.empty();
    actual.age = OptionalInt.empty();
    actual.id = OptionalLong.empty();
    actual.weight = OptionalDouble.empty();
    Person expected = new Person("John");
    expected.home.address.number = 2;
    expected.phone = Optional.of("123-456-789");
    expected.age = OptionalInt.of(33);
    expected.id = OptionalLong.of(123456);
    expected.weight = OptionalDouble.of(1.80);
    recursiveComparisonConfiguration.setIgnoreAllActualEmptyOptionalFields(true);
    // WHEN
    compareRecursivelyFailsAsExpected(actual, expected);
    // THEN
    ComparisonDifference comparisonDifference = new ComparisonDifference(new DualValue(list("home.address.number"), 1, 2));
    verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, comparisonDifference);
}
Also used : Person(org.assertj.core.internal.objects.data.Person) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)

Example 40 with Person

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

the class RecursiveComparisonAssert_bddSoftAssertions_Test method should_report_all_errors_with_bdd_soft_assertions.

@Test
void should_report_all_errors_with_bdd_soft_assertions() {
    // GIVEN
    Person john = new Person("John");
    john.home.address.number = 1;
    Person jack = new Person("Jack");
    jack.home.address.number = 2;
    // WHEN
    softly.then(john).usingRecursiveComparison().isEqualTo(jack);
    softly.then(jack).usingRecursiveComparison().isEqualTo(john);
    // THEN
    List<Throwable> errorsCollected = softly.errorsCollected();
    assertThat(errorsCollected).hasSize(2);
    assertThat(errorsCollected.get(0)).hasMessageContaining("field/property 'home.address.number' differ:").hasMessageContaining("- actual value  : 1").hasMessageContaining("- expected value: 2");
    assertThat(errorsCollected.get(1)).hasMessageContaining("field/property 'home.address.number' differ:").hasMessageContaining("- actual value  : 2").hasMessageContaining("- expected value: 1");
}
Also used : Person(org.assertj.core.internal.objects.data.Person) Test(org.junit.jupiter.api.Test) 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