junit 5: fix parameter presentation (IDEA-173408)

This commit is contained in:
Anna Kozlova
2017-05-25 13:36:11 +03:00
parent d46028e687
commit 78733b18c3
2 changed files with 16 additions and 3 deletions
@@ -647,12 +647,17 @@ public class JUnitConfiguration extends JavaTestConfigurationBase {
if (aClass == null) {
return "";
}
return "L" + ClassUtil.getJVMClassName(aClass) + ";";
return ClassUtil.getJVMClassName(aClass);
}
@Override
public String visitArrayType(PsiArrayType arrayType) {
return "[" + arrayType.getComponentType().accept(this);
PsiType componentType = arrayType.getComponentType();
String typePresentation = componentType.accept(this);
if (componentType instanceof PsiClassType) {
typePresentation = "L" + typePresentation + ";";
}
return "[" + typePresentation;
}
};
}
@@ -29,15 +29,23 @@ public class JUnit5NamingTest extends JUnit5CodeInsightTest {
PsiJavaFile file = (PsiJavaFile)myFixture.configureByText("MyTest.java", "import org.junit.jupiter.api.*;" +
"class MyTest {" +
" @Test void foo(int[] i); \n" +
" @Test void foo(int i); \n" +
" @Test void foo(String[] i); \n" +
" @Test void foo(String i); \n" +
" @Test void foo(Foo[] i); \n" +
" @Test void foo(Foo i); \n" +
" static class Foo {}" +
"}");
String[] methodPresentations =
Arrays.stream(file.getClasses()[0].getMethods())
.map(method -> JUnitConfiguration.Data.getMethodPresentation(method))
.toArray(String[]::new);
Assertions.assertArrayEquals(new String[] {"foo([int)", "foo([Ljava.lang.String;)", "foo([LMyTest$Foo;)"},
Assertions.assertArrayEquals(new String[] {"foo([int)",
"foo(int)",
"foo([Ljava.lang.String;)",
"foo(java.lang.String)",
"foo([LMyTest$Foo;)",
"foo(MyTest$Foo)"},
methodPresentations,
Arrays.toString(methodPresentations));
});