Search in sources :

Example 6 with FriendlyPerson

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

the class RecursiveComparisonAssert_isEqualTo_Test method should_be_able_to_compare_objects_with_cycles_in_ordered_collection.

@Test
void should_be_able_to_compare_objects_with_cycles_in_ordered_collection() {
    // GIVEN
    FriendlyPerson actual = new FriendlyPerson();
    actual.name = "John";
    actual.home.address.number = 1;
    FriendlyPerson expected = new FriendlyPerson();
    expected.name = "John";
    expected.home.address.number = 1;
    // neighbour
    expected.neighbour = actual;
    actual.neighbour = expected;
    // friends
    FriendlyPerson sherlock = new FriendlyPerson();
    sherlock.name = "Sherlock";
    sherlock.home.address.number = 221;
    actual.friends.add(sherlock);
    actual.friends.add(expected);
    expected.friends.add(sherlock);
    expected.friends.add(actual);
    // THEN
    assertThat(actual).usingRecursiveComparison().isEqualTo(expected);
}
Also used : FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 7 with FriendlyPerson

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

the class RecursiveComparisonAssert_isEqualTo_ignoringCollectionOrder_Test method should_pass_for_objects_with_the_same_data_when_collection_order_is_ignored_in_fields_matching_specified_regexes_source.

private static Stream<Arguments> should_pass_for_objects_with_the_same_data_when_collection_order_is_ignored_in_fields_matching_specified_regexes_source() {
    FriendlyPerson friendlyPerson1 = friend("Sherlock Holmes");
    friendlyPerson1.friends.add(friend("Dr. John Watson"));
    friendlyPerson1.friends.add(friend("Molly Hooper"));
    FriendlyPerson friendlyPerson2 = friend("Sherlock Holmes");
    friendlyPerson2.friends.add(friend("Molly Hooper"));
    friendlyPerson2.friends.add(friend("Dr. John Watson"));
    FriendlyPerson friendlyPerson3 = friend("Sherlock Holmes");
    FriendlyPerson friendlyPerson4 = friend("Dr. John Watson");
    friendlyPerson4.friends.add(friend("D.I. Greg Lestrade"));
    friendlyPerson4.friends.add(friend("Mrs. Hudson"));
    friendlyPerson3.friends.add(friendlyPerson4);
    friendlyPerson3.friends.add(friend("Molly Hooper"));
    FriendlyPerson friendlyPerson5 = friend("Sherlock Holmes");
    FriendlyPerson friendlyPerson6 = friend("Dr. John Watson");
    friendlyPerson6.friends.add(friend("Mrs. Hudson"));
    friendlyPerson6.friends.add(friend("D.I. Greg Lestrade"));
    friendlyPerson5.friends.add(friendlyPerson6);
    friendlyPerson5.friends.add(friend("Molly Hooper"));
    return Stream.of(arguments("same data except friends property collection order", friendlyPerson1, friendlyPerson2, array("friend.")), arguments("same data except friends property order in subfield collection", friendlyPerson3, friendlyPerson5, array("friends\\..*")), arguments("should not stack overflow with regexes", friendlyPerson3, friendlyPerson5, array("friends[\\D]+")));
}
Also used : FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson)

Example 8 with FriendlyPerson

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

the class RecursiveComparisonAssert_isEqualTo_ignoringCollectionOrder_Test method should_fail_when_actual_differs_from_expected_even_when_collection_order_is_ignored.

@Test
void should_fail_when_actual_differs_from_expected_even_when_collection_order_is_ignored() {
    // GIVEN
    FriendlyPerson actual = friend("Sherlock Holmes");
    actual.home.address.number = 1;
    actual.friends.add(friend("Dr. John Watson"));
    actual.friends.add(friend("Molly Hooper"));
    FriendlyPerson expected = friend("Sherlock Holmes");
    expected.home.address.number = 2;
    expected.friends.add(friend("Molly Hooper"));
    expected.friends.add(friend("Dr. John Watson"));
    recursiveComparisonConfiguration.ignoreCollectionOrder(true);
    // WHEN
    compareRecursivelyFailsAsExpected(actual, expected);
    // THEN
    ComparisonDifference comparisonDifference = new ComparisonDifference(new DualValue(list("home.address.number"), 1, 2));
    verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, comparisonDifference);
}
Also used : FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)

Example 9 with FriendlyPerson

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

the class RecursiveComparisonAssert_isEqualTo_ignoringCollectionOrder_Test method should_pass_for_objects_with_the_same_data_when_collection_order_is_ignored_source.

private static Stream<Arguments> should_pass_for_objects_with_the_same_data_when_collection_order_is_ignored_source() {
    FriendlyPerson friendlyPerson1 = friend("Sherlock Holmes");
    friendlyPerson1.friends.add(friend("Dr. John Watson"));
    friendlyPerson1.friends.add(friend("Molly Hooper"));
    FriendlyPerson friendlyPerson2 = friend("Sherlock Holmes");
    friendlyPerson2.friends.add(friend("Molly Hooper"));
    friendlyPerson2.friends.add(friend("Dr. John Watson"));
    FriendlyPerson friendlyPerson3 = friend("Sherlock Holmes");
    FriendlyPerson friendlyPerson4 = friend("Dr. John Watson");
    friendlyPerson4.friends.add(friend("D.I. Greg Lestrade"));
    friendlyPerson4.friends.add(friend("Mrs. Hudson"));
    friendlyPerson3.friends.add(friendlyPerson4);
    friendlyPerson3.friends.add(friend("Molly Hooper"));
    FriendlyPerson friendlyPerson5 = friend("Sherlock Holmes");
    FriendlyPerson friendlyPerson6 = friend("Dr. John Watson");
    friendlyPerson6.friends.add(friend("Mrs. Hudson"));
    friendlyPerson6.friends.add(friend("D.I. Greg Lestrade"));
    friendlyPerson5.friends.add(friendlyPerson6);
    friendlyPerson5.friends.add(friend("Molly Hooper"));
    return Stream.of(arguments("same data except friends property collection order", friendlyPerson1, friendlyPerson2), arguments("same data except friends property order in subfield collection", friendlyPerson3, friendlyPerson5));
}
Also used : FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson)

Example 10 with FriendlyPerson

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

the class RecursiveComparisonAssert_isEqualTo_ignoringCollectionOrder_Test method should_fix_1854_with_non_wrapped_basic_types.

@Test
void should_fix_1854_with_non_wrapped_basic_types() {
    // GIVEN
    FriendlyPerson p1 = friend("Sherlock Holmes");
    FriendlyPerson p2 = friend("Watson");
    FriendlyPerson p3 = friend("Sherlock Holmes");
    FriendlyPerson p4 = friend("Watson");
    List<FriendlyPerson> listA = list(p1, p2);
    List<FriendlyPerson> listB = list(p1, p2);
    // Reversed lists
    List<FriendlyPerson> listAReverse = list(p4, p3);
    List<FriendlyPerson> listBReverse = list(p4, p3);
    // WHEN - THEN
    assertThat(list(listA, listB)).usingRecursiveComparison().ignoringCollectionOrder().isEqualTo(list(listAReverse, listBReverse));
}
Also used : FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)

Aggregations

FriendlyPerson (org.assertj.core.internal.objects.data.FriendlyPerson)11 RecursiveComparisonAssert_isEqualTo_BaseTest (org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)7 Test (org.junit.jupiter.api.Test)7 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)7