From 9bf271a3c7dafc8094126c24836fa8b1e75a37b1 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 28 Sep 2010 17:47:34 +0400 Subject: [PATCH] testng: support testng listeners through hierarchy (IDEA-59072 ) --- .../testng/util/TestNGUtil.java | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java b/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java index e498b6c00bd8..83ea2d8c6957 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java +++ b/plugins/testng/src/com/theoryinpractice/testng/util/TestNGUtil.java @@ -38,17 +38,16 @@ import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.javadoc.PsiDocTag; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.searches.AllClassesSearch; -import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiElementFilter; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.util.PathUtil; -import com.intellij.util.Processor; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xml.NanoXmlUtil; import com.theoryinpractice.testng.model.TestClassFilter; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.testng.Assert; +import org.testng.ITestNGListener; import org.testng.TestNG; import org.testng.annotations.*; @@ -516,19 +515,11 @@ public class TestNGUtil return false; } - public static boolean inheritsITestListener(PsiClass psiClass) { - final boolean[] inherits = new boolean[1]; - InheritanceUtil.processSupers(psiClass, false, new Processor() { - public boolean process(final PsiClass superClass) { - final String qualifiedName = superClass.getQualifiedName(); - if (qualifiedName != null && qualifiedName.matches("org.testng.(IReporter|ITestListener|IMethodInterceptor|IInvokedMethodListener|internal.annotations.IAnnotationTransformer)")) { - inherits[0] = true; - return false; - } - return true; - } - }); - return inherits[0]; + public static boolean inheritsITestListener(@NotNull PsiClass psiClass) { + final Project project = psiClass.getProject(); + final PsiClass aListenerClass = JavaPsiFacade.getInstance(project) + .findClass(ITestNGListener.class.getName(), GlobalSearchScope.allScope(project)); + return aListenerClass != null && psiClass.isInheritor(aListenerClass, true); } public static boolean isTestngXML(final VirtualFile virtualFile) {