Search in sources :

Example 1 with Human

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

the class RecursiveComparisonAssert_isEqualTo_Test method recursivelyEqualObjects.

private static Stream<Arguments> recursivelyEqualObjects() {
    Person person1 = new Person("John");
    person1.home.address.number = 1;
    Person person2 = new Person("John");
    person2.home.address.number = 1;
    Person person3 = new Person("John");
    person3.home.address.number = 1;
    Human person4 = new Human();
    person4.name = "John";
    person4.home.address.number = 1;
    return Stream.of(arguments(person1, person2, "same data, same type"), arguments(person2, person1, "same data, same type reversed"), arguments(person3, person4, "same data, different type"), arguments(new Theme(RED), new Theme(RED), "same data with enum overriding methods - covers #1866"), arguments(person4, person3, "same data, different type"));
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Person(org.assertj.core.internal.objects.data.Person) AlwaysEqualPerson(org.assertj.core.internal.objects.data.AlwaysEqualPerson) FriendlyPerson(org.assertj.core.internal.objects.data.FriendlyPerson)

Example 2 with Human

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

the class RecursiveComparisonAssert_isEqualTo_Test method should_report_missing_property.

@Test
void should_report_missing_property() {
    // GIVEN
    Giant actual = new Giant();
    actual.name = "joe";
    actual.height = 3.0;
    Human expected = new Human();
    expected.name = "joe";
    // WHEN
    compareRecursivelyFailsAsExpected(actual, expected);
    // THEN
    ComparisonDifference missingFieldDifference = diff("", actual, expected, "org.assertj.core.internal.objects.data.Giant can't be compared to org.assertj.core.internal.objects.data.Human as Human does not declare all Giant fields, it lacks these: [height]");
    verifyShouldBeEqualByComparingFieldByFieldRecursivelyCall(actual, expected, missingFieldDifference);
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Giant(org.assertj.core.internal.objects.data.Giant) RecursiveComparisonAssert_isEqualTo_BaseTest(org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 3 with Human

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

the class RecursiveComparisonAssert_isEqualTo_comparingOnlyFields_Test method should_only_compare_given_fields.

private static Stream<Arguments> should_only_compare_given_fields() {
    Person person1 = new Person("John");
    person1.home.address.number = 1;
    Person person2 = new Person("John");
    person2.home.address.number = 2;
    Person john = new Person("John");
    john.home.address.number = 1;
    john.dateOfBirth = new Date(123);
    john.neighbour = new Person("Jim");
    john.neighbour.home.address.number = 123;
    john.neighbour.neighbour = new Person("James");
    john.neighbour.neighbour.home.address.number = 124;
    Person jack = new Person("Jack");
    jack.home.address.number = 1;
    jack.dateOfBirth = new Date(456);
    jack.neighbour = new Person("Jack");
    jack.neighbour.home.address.number = 456;
    jack.neighbour.neighbour = new Person("James");
    jack.neighbour.neighbour.home.address.number = 124;
    Human person4 = new Human();
    person4.name = "John";
    person4.home.address.number = 1;
    Human person5 = new Human();
    person5.home.address.number = 1;
    return Stream.of(arguments(person1, person2, list("name")), arguments(person1, person4, list("name")), arguments(person1, person5, list("home")), arguments(person1, person5, list("home.address")), arguments(person1, person5, list("home.address.number")), arguments(john, jack, list("home", "neighbour.neighbour")), arguments(john, jack, list("home.address", "neighbour.neighbour")), arguments(john, jack, list("home.address.number", "neighbour.neighbour")), arguments(john, jack, list("home", "neighbour.neighbour.home")), arguments(john, jack, list("home.address", "neighbour.neighbour")));
}
Also used : Human(org.assertj.core.internal.objects.data.Human) Person(org.assertj.core.internal.objects.data.Person) Date(java.util.Date)

Example 4 with Human

use of org.assertj.core.internal.objects.data.Human 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 5 with Human

use of org.assertj.core.internal.objects.data.Human 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)

Aggregations

Human (org.assertj.core.internal.objects.data.Human)7 Person (org.assertj.core.internal.objects.data.Person)6 Giant (org.assertj.core.internal.objects.data.Giant)3 Date (java.util.Date)2 RecursiveComparisonAssert_isEqualTo_BaseTest (org.assertj.core.api.RecursiveComparisonAssert_isEqualTo_BaseTest)1 AlwaysEqualPerson (org.assertj.core.internal.objects.data.AlwaysEqualPerson)1 FriendlyPerson (org.assertj.core.internal.objects.data.FriendlyPerson)1 Test (org.junit.jupiter.api.Test)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1