-
-
Notifications
You must be signed in to change notification settings - Fork 772
Closed
Labels
theme: recursive comparisonAn issue related to the recursive comparisonAn issue related to the recursive comparison
Milestone
Description
Describe the bug
From version 3.25.0, it seems that method usingRecursiveFieldByFieldElementComparatorOnFields on AbstractIterableAssert returns an error if one of the fields don't exist. The problem is that I have polymorphic objects.
- assertj core version: 3.25.0
- java version: 21
- test framework version: junit 5.11.4
- os (if relevant):
Test case reproducing the bug
Add a test case showing the bug that we can run
@Data
@SuperBuilder
public abstract sealed class AppliedExemptionResponse permits AppliedTotalExemptionResponse, AppliedPartialExemptionResponse {
String exemptionCode;
String description;
String chargeItemCode;
String description;
}
@Value
@SuperBuilder
public class AppliedTotalExemptionResponse extends AppliedExemptionResponse {
}
@Value
@SuperBuilder
public class AppliedPartialExemptionResponse extends AppliedExemptionResponse {
BigDecimal value;
String type;
boolean replacement;
}
public class MyTest {
@Test
void test() {
final List<AppliedExemptionResponse> appliedExemptions = List.of(
AppliedTotalExemptionResponse.builder().exemptionCode( "E1" ).build(),
AppliedPartialExemptionResponse.builder().value( BigDecimal.ZERO ).build()
);
final List<AppliedExemptionResponse> expectedAppliedExemptions = List.of(
AppliedTotalExemptionResponse.builder().exemptionCode( "E1" ).build(),
AppliedPartialExemptionResponse.builder().value( BigDecimal.ZERO ).build()
);
assertThat( appliedExemptions )
.usingRecursiveFieldByFieldElementComparatorOnFields( "exemptionCode", "chargeItemCode", "description", "value" )
.containsExactlyInAnyOrderElementsOf( expectedAppliedExemptions );
}
}The test fails with the following error:
java.lang.IllegalArgumentException: The following fields don't exist: {value}
How can I fix the problem?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
theme: recursive comparisonAn issue related to the recursive comparisonAn issue related to the recursive comparison