Ensure only immediate member classes are only included

Update `ClassFileClassMetadata` so that member classes only include
immediate children. This aligns with the other `ClassMetadata`
implementations.

Closes gh-34869
This commit is contained in:
Phillip Webb
2025-05-08 14:20:01 -07:00
committed by Brian Clozel
parent ead80ce2f5
commit 13b09e6f3c
2 changed files with 31 additions and 10 deletions

View File

@@ -184,6 +184,13 @@ public abstract class AbstractAnnotationMetadataTests {
TestMemberClass.TestMemberClassInnerClass.class.getName(), TestMemberClass.TestMemberClassInnerInterface.class.getName());
}
@Test
void getMemberClassNamesWhenHasNestedMemberClassesReturnsOnlyFirstLevel() {
assertThat(get(TestNestedMemberClass.class).getMemberClassNames()).containsOnly(
TestNestedMemberClass.TestMemberClassInnerClassA.class.getName(),
TestNestedMemberClass.TestMemberClassInnerClassB.class.getName());
}
@Test
void getMemberClassNamesWhenHasNoMemberClassesReturnsEmptyArray() {
assertThat(get(TestClass.class).getMemberClassNames()).isEmpty();
@@ -220,6 +227,22 @@ public abstract class AbstractAnnotationMetadataTests {
}
public static class TestNestedMemberClass {
public static class TestMemberClassInnerClassA {
public static class TestMemberClassInnerClassAA {
}
}
public static class TestMemberClassInnerClassB {
}
}
}
@Nested