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);
}
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]+")));
}
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);
}
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));
}
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));
}
Aggregations