I'm trying to compare two different types, DTO and Entity. DTO has:
private String id;
private String teamId;
private String conferenceId;
Entity has:
private UUID id;
private UUID teamId;
private UUID conferenceId;
In my test I have:
DTO actual = mapper.entityToDto(entity);
assertThat(actual)
.usingRecursiveComparison()
.isEqualTO(entity);
I'd like to use withEqualsForType((stringId, uuidId) -> comparison, UUID.class) but that doesn't work as I get an error about no method for signature UUID.class, UUID.class.
I also tried withEqualsForType((stringId, uuidID) -> comparison, String.class) but got a similar message about String.class.
Is there a way to use a custom equals based on the type in the expected object?
It's not supported at the moment but you should be able to register a
BiPredicate<String, Object>for String that would check if expected is a UUID and in this case calltoString()on it.Have a look at https://github.com/assertj/assertj/issues/3165 which is similar.