mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
test assistance: run test from test data
This commit is contained in:
+30
-3
@@ -15,14 +15,18 @@
|
||||
*/
|
||||
package com.intellij.execution.junit2;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.execution.Location;
|
||||
import com.intellij.execution.PsiLocation;
|
||||
import com.intellij.execution.junit.JUnitUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMember;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
public class PsiMemberParameterizedLocation extends PsiLocation<PsiElement> {
|
||||
private final PsiClass myContainingClass;
|
||||
private final String myParamSetName;
|
||||
@@ -36,6 +40,29 @@ public class PsiMemberParameterizedLocation extends PsiLocation<PsiElement> {
|
||||
myParamSetName = paramSetName;
|
||||
}
|
||||
|
||||
public static Location getParameterizedLocation(PsiClass psiClass, String paramSetName) {
|
||||
return getParameterizedLocation(psiClass, paramSetName, JUnitUtil.PARAMETERIZED_CLASS_NAME);
|
||||
}
|
||||
|
||||
public static Location getParameterizedLocation(PsiClass psiClass,
|
||||
String paramSetName,
|
||||
String parameterizedClassName) {
|
||||
final PsiAnnotation annotation = AnnotationUtil.findAnnotationInHierarchy(psiClass, Collections.singleton(JUnitUtil.RUN_WITH));
|
||||
if (annotation != null) {
|
||||
final PsiAnnotationMemberValue attributeValue = annotation.findAttributeValue("value");
|
||||
if (attributeValue instanceof PsiClassObjectAccessExpression) {
|
||||
final PsiTypeElement operand = ((PsiClassObjectAccessExpression)attributeValue).getOperand();
|
||||
if (InheritanceUtil.isInheritor(operand.getType(), parameterizedClassName)) {
|
||||
return new PsiMemberParameterizedLocation(psiClass.getProject(),
|
||||
psiClass,
|
||||
null,
|
||||
paramSetName);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getParamSetName() {
|
||||
return myParamSetName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user