use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.
the class RecursiveComparisonAssert_isEqualTo_comparingOnlyFields_Test method can_be_combined_with_ignoringFields.
@Test
void can_be_combined_with_ignoringFields() {
// GIVEN
Person actual = new Person("John");
actual.home.address.number = 1;
actual.dateOfBirth = new Date(123);
actual.neighbour = new Person("Jim");
actual.neighbour.home.address.number = 123;
actual.neighbour.neighbour = new Person("James");
actual.neighbour.neighbour.home.address.number = 124;
Person expected = new Person(actual.name);
expected.home.address.number = 2;
expected.dateOfBirth = new Date(456);
expected.neighbour = new Person("Jack");
expected.neighbour.home.address.number = actual.neighbour.home.address.number;
expected.neighbour.neighbour = new Person(actual.neighbour.neighbour.name);
expected.neighbour.neighbour.home.address.number = 125;
// WHEN/THEN
then(actual).usingRecursiveComparison().comparingOnlyFields("name", "home", "neighbour").ignoringFields("home.address.number", "neighbour.name", "neighbour.neighbour.home.address.number").isEqualTo(expected);
then(actual).usingRecursiveComparison().ignoringFields("home.address.number", "neighbour.name", "neighbour.neighbour.home.address.number").comparingOnlyFields("name", "home", "neighbour").isEqualTo(expected);
}
use of org.assertj.core.internal.objects.data.Person in project assertj-core by joel-costigliola.
the class RecursiveComparisonAssert_isEqualTo_ignoringFields_Test method recursivelyEqualObjectsIgnoringActualOptionalEmptyValues.
private static Stream<Arguments> recursivelyEqualObjectsIgnoringActualOptionalEmptyValues() {
Person person1 = new Person("John");
person1.home.address.number = 1;
person1.phone = Optional.empty();
person1.age = OptionalInt.empty();
person1.id = OptionalLong.empty();
person1.weight = OptionalDouble.empty();
Person person2 = new Person("John");
person2.home.address.number = 1;
person2.phone = Optional.of("456");
person2.age = OptionalInt.of(33);
person2.id = OptionalLong.of(123456);
person2.weight = OptionalDouble.of(1.80);
Person person3 = new Person("John");
person3.home.address.number = 1;
person3.phone = Optional.empty();
person3.age = OptionalInt.empty();
person3.id = OptionalLong.empty();
person3.weight = OptionalDouble.empty();
Person person4 = new Person("John");
person4.home.address.number = 1;
person4.phone = null;
person4.age = null;
person4.id = null;
person4.weight = null;
return Stream.of(arguments(person1, person2, "same data and same type except for actual empty optional fields"), arguments(person1, person3, "same data, same type, both actual and expected have empty optional fields"), arguments(person1, person4, "same data and same type except for ignored optional fields"));
}
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_null_expected_fields_are_ignored.
@Test
void should_fail_when_actual_differs_from_expected_even_when_all_null_expected_fields_are_ignored() {
// GIVEN
Person actual = new Person("John");
actual.home.address.number = 1;
actual.dateOfBirth = new Date();
actual.neighbour = new Person("Jack");
Person expected = new Person(null);
expected.home.address.number = 2;
expected.dateOfBirth = null;
expected.neighbour = null;
recursiveComparisonConfiguration.setIgnoreAllExpectedNullFields(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.Person in project assertj-core by joel-costigliola.
the class RecursiveComparisonAssert_isEqualTo_ignoringFields_Test method recursivelyEqualObjectsIgnoringExpectedNullFields.
private static Stream<Arguments> recursivelyEqualObjectsIgnoringExpectedNullFields() {
Person person1 = new Person("John");
person1.home.address.number = 1;
Person person2 = new Person(null);
Person person3 = new Person("John");
person3.home.address = null;
Person person4 = new Person(null);
person3.home.address = null;
return Stream.of(arguments(person1, person2, "first level expected null field"), arguments(person1, person3, "nested expected null field"), arguments(person1, person4, "multiple expected null fields"));
}
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_null_actual_fields_are_ignored.
@Test
void should_fail_when_actual_differs_from_expected_even_when_all_null_actual_fields_are_ignored() {
// GIVEN
Person actual = new Person(null);
actual.home.address.number = 1;
actual.dateOfBirth = null;
actual.neighbour = null;
Person expected = new Person("John");
expected.home.address.number = 2;
recursiveComparisonConfiguration.setIgnoreAllActualNullFields(true);
// WHEN
compareRecursivelyFailsAsExpected(actual, expected);
// THEN
ComparisonDifference comparisonDifference = new ComparisonDifference(new DualValue(list("home.address.number"), 1, 2));
verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, comparisonDifference);
}
Aggregations