mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
allow junit configurations in libraries
EA-117378 - assert: AbstractInClassConfigurationProducer.setupConfigurationFromContext
This commit is contained in:
@@ -215,7 +215,7 @@ public class JUnitUtil {
|
||||
|
||||
public static boolean isJUnit4TestClass(final PsiClass psiClass, boolean checkAbstract) {
|
||||
final PsiModifierList modifierList = psiClass.getModifierList();
|
||||
if (modifierList == null || JavaExecutionUtil.findModule(psiClass) == null) return false;
|
||||
if (modifierList == null) return false;
|
||||
if (psiClass.getQualifiedName() == null) return false; //skip local and anonymous classes
|
||||
PsiClass topLevelClass = getTopmostClass(psiClass);
|
||||
|
||||
@@ -257,7 +257,7 @@ public class JUnitUtil {
|
||||
|
||||
public static boolean isJUnit5TestClass(@NotNull final PsiClass psiClass, boolean checkAbstract) {
|
||||
final PsiModifierList modifierList = psiClass.getModifierList();
|
||||
if (modifierList == null || JavaExecutionUtil.findModule(psiClass) == null) return false;
|
||||
if (modifierList == null) return false;
|
||||
|
||||
if (psiClass.isAnnotationType()) return false;
|
||||
|
||||
@@ -271,31 +271,26 @@ public class JUnitUtil {
|
||||
|
||||
if (!PsiClassUtil.isRunnableClass(psiClass, false, checkAbstract)) return false;
|
||||
|
||||
Module module = ModuleUtilCore.findModuleForPsiElement(psiClass);
|
||||
if (module != null) {
|
||||
return CachedValuesManager.getCachedValue(psiClass, () -> {
|
||||
boolean hasAnnotation = false;
|
||||
for (final PsiMethod method : psiClass.getAllMethods()) {
|
||||
ProgressManager.checkCanceled();
|
||||
if (MetaAnnotationUtil.isMetaAnnotated(method, TEST5_ANNOTATIONS)) {
|
||||
return CachedValuesManager.getCachedValue(psiClass, () -> {
|
||||
boolean hasAnnotation = false;
|
||||
for (final PsiMethod method : psiClass.getAllMethods()) {
|
||||
ProgressManager.checkCanceled();
|
||||
if (MetaAnnotationUtil.isMetaAnnotated(method, TEST5_ANNOTATIONS)) {
|
||||
hasAnnotation = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasAnnotation) {
|
||||
for (PsiClass aClass : psiClass.getAllInnerClasses()) {
|
||||
if (MetaAnnotationUtil.isMetaAnnotated(aClass, Collections.singleton(JUNIT5_NESTED))) {
|
||||
hasAnnotation = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasAnnotation) {
|
||||
for (PsiClass aClass : psiClass.getAllInnerClasses()) {
|
||||
if (MetaAnnotationUtil.isMetaAnnotated(aClass, Collections.singleton(JUNIT5_NESTED))) {
|
||||
hasAnnotation = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return CachedValueProvider.Result.create(hasAnnotation, PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT);
|
||||
});
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return CachedValueProvider.Result.create(hasAnnotation, PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT);
|
||||
});
|
||||
}
|
||||
|
||||
public static boolean isJUnit5(@NotNull PsiElement element) {
|
||||
|
||||
+2
-2
@@ -137,7 +137,7 @@ public abstract class AbstractInClassConfigurationProducer<T extends JavaTestCon
|
||||
|
||||
configuration.restoreOriginalModule(originalModule);
|
||||
Module module = configuration.getConfigurationModule().getModule();
|
||||
if (module == null) {
|
||||
if (module == null && psiClass.getManager().isInProject(psiClass)) {
|
||||
PsiFile containingFile = psiClass.getContainingFile();
|
||||
LOG.error("No module found", new Attachment("context.txt",
|
||||
"generated name:" + configuration.getName() +
|
||||
@@ -145,7 +145,7 @@ public abstract class AbstractInClassConfigurationProducer<T extends JavaTestCon
|
||||
"; physical: " + psiClass.isPhysical() +
|
||||
"; className: " + psiClass.getQualifiedName() +
|
||||
"; file: " + containingFile +
|
||||
"; module: " + ModuleUtilCore.findModuleForPsiElement(psiClass) +
|
||||
"; module: " + ModuleUtilCore.findModuleForPsiElement(psiClass.getContainingFile()) +
|
||||
"; original module: " + originalModule));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ public class JavaExecutionUtil {
|
||||
}
|
||||
|
||||
public static Module findModule(@NotNull final PsiClass psiClass) {
|
||||
return ModuleUtilCore.findModuleForPsiElement(psiClass);
|
||||
return ModuleUtilCore.findModuleForPsiElement(psiClass.getContainingFile());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user