junit: insert test methods inside nested class when @Nested annotated

This commit is contained in:
Anna Kozlova
2016-09-19 11:16:59 +03:00
parent cbbf8ec487
commit 20c9e143bf
7 changed files with 149 additions and 36 deletions
@@ -81,6 +81,7 @@ public class JUnitUtil {
@NonNls public static final String PARAMETERIZED_CLASS_NAME = "org.junit.runners.Parameterized";
@NonNls public static final String SUITE_CLASS_NAME = "org.junit.runners.Suite";
public static final String JUNIT5_NESTED = "org.junit.jupiter.api.Nested";
public static boolean isSuiteMethod(@NotNull PsiMethod psiMethod) {
if (!psiMethod.hasModifierProperty(PsiModifier.PUBLIC)) return false;
@@ -200,6 +201,10 @@ public class JUnitUtil {
final PsiModifierList modifierList = psiClass.getModifierList();
if (modifierList == null) return false;
if (psiClass.getContainingClass() != null && AnnotationUtil.isAnnotated(psiClass, JUNIT5_NESTED, false)) {
return true;
}
if (!PsiClassUtil.isRunnableClass(psiClass, false, checkAbstract)) return false;
for (final PsiMethod method : psiClass.getAllMethods()) {
@@ -207,6 +212,10 @@ public class JUnitUtil {
if (AnnotationUtil.isAnnotated(method, TEST5_ANNOTATIONS)) return true;
}
for (PsiClass aClass : psiClass.getInnerClasses()) {
if (AnnotationUtil.isAnnotated(aClass, JUNIT5_NESTED, false)) return true;
}
return false;
}