From 8ba947593d2a67f475f955ff0981d87c2dcd2e84 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 20 Jul 2017 18:51:52 +0200 Subject: [PATCH] junit 5: erasure type parameters for test signatures --- .../com/intellij/execution/junit/JUnitConfiguration.java | 8 ++++++-- .../test/com/intellij/junit5/JUnit5AcceptanceTest.java | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java index e1aae2725b55..19fc5d863c7d 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java @@ -44,6 +44,7 @@ import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.ClassUtil; +import com.intellij.psi.util.TypeConversionUtil; import com.intellij.refactoring.listeners.RefactoringElementListener; import com.intellij.rt.execution.junit.JUnitStarter; import com.intellij.rt.execution.junit.RepeatCount; @@ -660,8 +661,11 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { public static String getMethodPresentation(PsiMethod method) { if (method.getParameterList().getParametersCount() > 0 && MetaAnnotationUtil.isMetaAnnotated(method, JUnitUtil.TEST5_ANNOTATIONS)) { - return method.getName() + "(" + StringUtil.join(method.getParameterList().getParameters(), - param -> param.getType().accept(createSignatureVisitor()), + return method.getName() + "(" + StringUtil.join(method.getParameterList().getParameters(), + param -> { + PsiType type = TypeConversionUtil.erasure(param.getType()); + return type != null ? type.accept(createSignatureVisitor()) : ""; + }, ",") + ")"; } else { diff --git a/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5AcceptanceTest.java b/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5AcceptanceTest.java index b14e4729ab38..4bb95694ab9f 100644 --- a/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5AcceptanceTest.java +++ b/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5AcceptanceTest.java @@ -78,15 +78,16 @@ class JUnit5AcceptanceTest extends JUnit5CodeInsightTest { void methodPresentations() { doTest(() -> { myFixture.addClass("package a; public class TestInfo {}"); - PsiClass aClass = myFixture.addClass("class MyTest {" + + PsiClass aClass = myFixture.addClass("class MyTest {" + " @org.junit.jupiter.api.Test void method() {}" + " @org.junit.jupiter.api.Test void method(a.TestInfo info) {}" + + " @org.junit.jupiter.api.Test void method(T info) {}" + " @org.junit.Test void method1() {}" + " @org.junit.Test void method1(a.TestInfo info) {}" + "}"); assertNotNull(aClass); - Stream expectedData = Arrays.stream(new String[]{"method", "method(a.TestInfo)", "method1", "method1"}); + Stream expectedData = Arrays.stream(new String[]{"method", "method(a.TestInfo)", "method(a.TestInfo)", "method1", "method1"}); StreamEx.of(aClass.getMethods()) .zipWith(expectedData) .forEach(e -> assertEquals(e.getValue(), JUnitConfiguration.Data.getMethodPresentation(e.getKey())));