@@ -17,10 +17,24 @@ private fun Iterable<MemberInfo>.filterTestableMethods(): List<MemberInfo> = thi
17
17
.filterWhen(UtSettings .skipTestGenerationForSyntheticMethods) { it.member !is SyntheticElement }
18
18
.filterNot { it.isAbstract }
19
19
20
+ private val PsiClass .isPrivateOrProtected: Boolean
21
+ get() = this .modifierList?.let {
22
+ hasModifierProperty(PsiModifier .PRIVATE ) || hasModifierProperty(PsiModifier .PROTECTED )
23
+ } ? : false
24
+
25
+
20
26
// TODO: maybe we need to delete [includeInherited] param here (always false when calling)?
21
- fun PsiClass.extractClassMethodsIncludingNested (includeInherited : Boolean ): List <MemberInfo > =
22
- TestIntegrationUtils .extractClassMethods(this , includeInherited)
23
- .filterTestableMethods() + innerClasses.flatMap { it.extractClassMethodsIncludingNested(includeInherited) }
27
+ fun PsiClass.extractClassMethodsIncludingNested (includeInherited : Boolean ): List <MemberInfo > {
28
+ val ourMethods = TestIntegrationUtils .extractClassMethods(this , includeInherited)
29
+ .filterTestableMethods()
30
+
31
+ val methodsFromNestedClasses =
32
+ innerClasses
33
+ .filter { ! it.isPrivateOrProtected }
34
+ .flatMap { it.extractClassMethodsIncludingNested(includeInherited) }
35
+
36
+ return ourMethods + methodsFromNestedClasses
37
+ }
24
38
25
39
fun PsiClass.extractFirstLevelMembers (includeInherited : Boolean ): List <MemberInfo > {
26
40
val methods = TestIntegrationUtils .extractClassMethods(this , includeInherited)
@@ -29,5 +43,8 @@ fun PsiClass.extractFirstLevelMembers(includeInherited: Boolean): List<MemberInf
29
43
allInnerClasses
30
44
else
31
45
innerClasses
32
- return methods + classes.map { MemberInfo (it) }
33
- }
46
+ return methods + classes.filter { ! it.isPrivateOrProtected }.map { MemberInfo (it) }
47
+ }
48
+
49
+ val PsiClass .isVisible: Boolean
50
+ get() = generateSequence(this ) { it.containingClass }.none { it.isPrivateOrProtected }
0 commit comments