mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-22 22:19:03 +00:00
Fix reserveMethodNames to reserve each supplied name
GeneratedClass.reserveMethodNames(String...) passed the entire varargs array to MethodName.of() inside the per-name loop instead of the current element. Since MethodName.of(String...) joins all parts into a single camel-case name, reserving two or more names (for example "apply" and "test") produced "applyTest", and the per-element check Assert.state(generatedName.equals(reservedMethodName)) failed with an IllegalStateException. Single-name calls worked only by accident. Reserve each supplied name individually by passing the loop variable. Signed-off-by: junhyeong9812 <pickjog@gmail.com>
This commit is contained in:
committed by
Brian Clozel
parent
85c8bb674c
commit
2b5229ff8f
@@ -81,7 +81,7 @@ public final class GeneratedClass {
|
||||
*/
|
||||
public void reserveMethodNames(String... reservedMethodNames) {
|
||||
for (String reservedMethodName : reservedMethodNames) {
|
||||
String generatedName = generateSequencedMethodName(MethodName.of(reservedMethodNames));
|
||||
String generatedName = generateSequencedMethodName(MethodName.of(reservedMethodName));
|
||||
Assert.state(generatedName.equals(reservedMethodName),
|
||||
() -> String.format("Unable to reserve method name '%s'", reservedMethodName));
|
||||
}
|
||||
|
||||
@@ -78,6 +78,14 @@ class GeneratedClassTests {
|
||||
assertThat(generatedMethod.getName()).isEqualTo("apply1");
|
||||
}
|
||||
|
||||
@Test
|
||||
void reserveMethodNamesWhenMultipleNamesReservesEachName() {
|
||||
GeneratedClass generatedClass = createGeneratedClass(TEST_CLASS_NAME);
|
||||
generatedClass.reserveMethodNames("apply", "test");
|
||||
assertThat(generatedClass.getMethods().add("apply", emptyMethodCustomizer).getName()).isEqualTo("apply1");
|
||||
assertThat(generatedClass.getMethods().add("test", emptyMethodCustomizer).getName()).isEqualTo("test1");
|
||||
}
|
||||
|
||||
@Test
|
||||
void generateMethodNameWhenAllEmptyPartsGeneratesSetName() {
|
||||
GeneratedClass generatedClass = createGeneratedClass(TEST_CLASS_NAME);
|
||||
|
||||
Reference in New Issue
Block a user