-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Open
Copy link
Milestone
Description
Hi @scordio ,
let me thank you first for your work. Because I was looking a long time that we can use records with AssertJ and can remove the templates.
The new version works perfectly in our project. Unfortunately, I found a bug with M4/M5. But maybe isn't bug, because our clever programming isn't that clever ;). Should I open an issue for that?
Short summary of the bug
- We have an Interface X which has method called id()
- We implement this Interface X in several classes. The typical implementation is
String id = "someId"; public String id() { return id; }- When AssertJ creates the *Assert classes it creates the method
hasIdtwice, e.g./** * Verifies that the actual Data's id is equal to the given one. * @param id the given id to compare the actual Data's id to. * @return this assertion object. * @throws AssertionError - if the actual Data's id is not equal to the given one. */ public S hasId(String id) { // check that actual Data we want to make assertions on is not null. isNotNull(); // overrides the default error message with a more explicit one String assertjErrorMessage = "\nExpecting id of:\n <%s>\nto be:\n <%s>\nbut was:\n <%s>"; // null safe check String actualId = actual.getId(); if (!Objects.deepEquals(actualId, id)) { failWithMessage(assertjErrorMessage, actual, id, actualId); } // return the current assertion for method chaining return myself; } /** * Verifies that the actual Data's id is equal to the given one. * @param id the given id to compare the actual Data's id to. * @return this assertion object. * @throws AssertionError - if the actual Data's id is not equal to the given one. */ public S hasId(String id) { // check that actual Data we want to make assertions on is not null. isNotNull(); // overrides the default error message with a more explicit one String assertjErrorMessage = "\nExpecting id of:\n <%s>\nto be:\n <%s>\nbut was:\n <%s>"; // null safe check String actualId = actual.id(); if (!Objects.deepEquals(actualId, id)) { failWithMessage(assertjErrorMessage, actual, id, actualId); } // return the current assertion for method chaining return myself; }Simple workaround
Renaming the methodid()togetId()solved the problem and all Assertions classes are created correctly.
Originally posted by @schmuka0501 in assertj/assertj-assertions-generator-maven-plugin#93 (comment)
Metadata
Metadata
Assignees
Labels
No labels