mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
testng: allow classes with single string param constructor (IDEA-174878)
This commit is contained in:
@@ -20,8 +20,10 @@ import com.intellij.execution.configurations.ConfigurationUtil;
|
||||
import com.intellij.ide.util.ClassFilter;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.CommonClassNames;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiParameter;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.theoryinpractice.testng.util.TestNGUtil;
|
||||
|
||||
@@ -74,11 +76,11 @@ public class TestClassFilter implements ClassFilter.ClassFilterWithScope
|
||||
if (constructors.length > 0) {
|
||||
boolean canBeInstantiated = false;
|
||||
for (PsiMethod constructor : constructors) {
|
||||
if (constructor.getParameterList().getParametersCount() == 0) {
|
||||
canBeInstantiated = true;
|
||||
break;
|
||||
}
|
||||
if (AnnotationUtil.isAnnotated(constructor, Arrays.asList(GUICE_INJECTION, FACTORY_INJECTION), true)) {
|
||||
PsiParameter[] parameters = constructor.getParameterList().getParameters();
|
||||
if (parameters.length == 0 ||
|
||||
AnnotationUtil.isAnnotated(constructor, Arrays.asList(GUICE_INJECTION, FACTORY_INJECTION), true) ||
|
||||
parameters.length == 1 && parameters[0].getType().equalsToText(CommonClassNames.JAVA_LANG_STRING)
|
||||
) {
|
||||
canBeInstantiated = true;
|
||||
break;
|
||||
}
|
||||
|
||||
+13
@@ -19,11 +19,13 @@ import com.intellij.execution.CantRunException;
|
||||
import com.intellij.execution.testframework.JavaTestLocator;
|
||||
import com.intellij.execution.testframework.TestSearchScope;
|
||||
import com.intellij.execution.testframework.sm.runner.SMTestProxy;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
|
||||
import com.theoryinpractice.testng.TestNGFramework;
|
||||
import com.theoryinpractice.testng.model.TestClassFilter;
|
||||
import com.theoryinpractice.testng.model.TestData;
|
||||
import com.theoryinpractice.testng.model.TestNGTestObject;
|
||||
import com.theoryinpractice.testng.model.TestType;
|
||||
@@ -86,6 +88,17 @@ public class DetectClassesToRunTest extends LightCodeInsightFixtureTestCase {
|
||||
PsiClass aClass = myFixture.addClass("package a; @org.testng.annotations.Test public class MyTestClass {void testOne(){}}");
|
||||
assertFalse(new TestNGFramework().isTestMethod(aClass.getMethods()[0], false));
|
||||
}
|
||||
|
||||
public void testClassWithSingleParameterConstructor() {
|
||||
PsiClass aClass = myFixture.addClass("package a; @org.testng.annotations.Test " +
|
||||
"public class MyTestClass {" +
|
||||
"public MyTetClass(String defaultName){}\n" +
|
||||
" public void testOne(){}" +
|
||||
"}");
|
||||
Project project = getProject();
|
||||
TestClassFilter classFilter = new TestClassFilter(GlobalSearchScope.projectScope(project), project, false, true);
|
||||
assertTrue(classFilter.isAccepted(aClass));
|
||||
}
|
||||
|
||||
public void testOneMethodWithDependencies() throws Exception {
|
||||
final PsiClass aClass =
|
||||
|
||||
Reference in New Issue
Block a user