mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit: do not highlight abstract test cases as unused when they do have non-abstract inheritors
This commit is contained in:
@@ -104,7 +104,7 @@ public class JUnitUtil {
|
||||
return isTestClass(psiClass, true, true);
|
||||
}
|
||||
|
||||
private static boolean isTestClass(@NotNull PsiClass psiClass, boolean checkAbstract, boolean checkForTestCaseInheritance) {
|
||||
public static boolean isTestClass(@NotNull PsiClass psiClass, boolean checkAbstract, boolean checkForTestCaseInheritance) {
|
||||
if (!PsiClassUtil.isRunnableClass(psiClass, true, checkAbstract)) return false;
|
||||
if (checkForTestCaseInheritance && isTestCaseInheritor(psiClass)) return true;
|
||||
final PsiModifierList modifierList = psiClass.getModifierList();
|
||||
|
||||
@@ -30,6 +30,10 @@ import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.psi.search.searches.ClassInheritorsSearch;
|
||||
import com.intellij.psi.util.PsiClassUtil;
|
||||
import com.intellij.util.CommonProcessors;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -50,7 +54,16 @@ public class JUnitEntryPoint extends EntryPoint {
|
||||
if (ADD_JUNIT_TO_ENTRIES) {
|
||||
if (psiElement instanceof PsiClass) {
|
||||
final PsiClass aClass = (PsiClass)psiElement;
|
||||
if (JUnitUtil.isTestClass(aClass)) {
|
||||
if (JUnitUtil.isTestClass(aClass, false, true)) {
|
||||
if (!PsiClassUtil.isRunnableClass(aClass, true, true)) {
|
||||
final CommonProcessors.FindProcessor<PsiClass> findProcessor = new CommonProcessors.FindProcessor<PsiClass>() {
|
||||
@Override
|
||||
protected boolean accept(PsiClass psiClass) {
|
||||
return !psiClass.hasModifierProperty(PsiModifier.ABSTRACT);
|
||||
}
|
||||
};
|
||||
return !ClassInheritorsSearch.search(aClass).forEach(findProcessor) && findProcessor.isFound();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user