junit 5: discover test by method name with parameter types

This commit is contained in:
Anna Kozlova
2016-09-16 13:25:12 +03:00
parent 02f44a0fb5
commit 8b82f7cc0e
6 changed files with 62 additions and 12 deletions
@@ -54,14 +54,14 @@ public abstract class AbstractAddToTestsPatternAction<T extends ModuleBasedConfi
if (patternConfigurations.size() == 1) {
final T configuration = patternConfigurations.get(0);
for (PsiElement aClass : classes) {
getPatterns(configuration).add(AbstractPatternBasedConfigurationProducer.getQName(aClass));
getPatterns(configuration).add(getPatternBasedProducer().getQName(aClass));
}
} else {
JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep<T>("Choose suite to add", patternConfigurations) {
@Override
public PopupStep onChosen(T configuration, boolean finalChoice) {
for (PsiElement aClass : classes) {
getPatterns(configuration).add(AbstractPatternBasedConfigurationProducer.getQName(aClass));
getPatterns(configuration).add(getPatternBasedProducer().getQName(aClass));
}
return FINAL_CHOICE;
}
@@ -110,7 +110,7 @@ public abstract class AbstractAddToTestsPatternAction<T extends ModuleBasedConfi
for (RunConfiguration configuration : configurations) {
if (isPatternBasedConfiguration((T)configuration)) {
if (foundClasses.size() > 1 ||
!getPatterns((T)configuration).contains(AbstractPatternBasedConfigurationProducer.getQName(foundClasses.iterator().next()))) {
!getPatterns((T)configuration).contains(getPatternBasedProducer().getQName(foundClasses.iterator().next()))) {
foundConfigurations.add((T)configuration);
}
}
@@ -66,7 +66,7 @@ public class JUnitUtil {
private static final Collection<String> TEST_ANNOTATIONS = Collections.unmodifiableList(Arrays.asList(TEST_ANNOTATION,
TEST5_ANNOTATION,
TEST5_FACTORY_ANNOTATION));
private static final Collection<String> TEST5_ANNOTATIONS = Collections.unmodifiableList(Arrays.asList(TEST5_ANNOTATION, TEST5_FACTORY_ANNOTATION));
public static final Collection<String> TEST5_ANNOTATIONS = Collections.unmodifiableList(Arrays.asList(TEST5_ANNOTATION, TEST5_FACTORY_ANNOTATION));
private static final List<String> INSTANCE_CONFIGS = Arrays.asList(BEFORE_ANNOTATION_NAME, AFTER_ANNOTATION_NAME);
private static final List<String> INSTANCE_5_CONFIGS = Arrays.asList(BEFORE_EACH_ANNOTATION_NAME, AFTER_EACH_ANNOTATION_NAME);
@@ -222,7 +222,7 @@ public abstract class AbstractPatternBasedConfigurationProducer<T extends Module
return classes.size() > 1;
}
private static PsiElement[] collectLocationElements(LinkedHashSet<String> classes, DataContext dataContext) {
private PsiElement[] collectLocationElements(LinkedHashSet<String> classes, DataContext dataContext) {
final Location<?>[] locations = Location.DATA_KEYS.getData(dataContext);
if (locations != null) {
List<PsiElement> elements = new ArrayList<>();
@@ -238,11 +238,11 @@ public abstract class AbstractPatternBasedConfigurationProducer<T extends Module
return null;
}
public static String getQName(PsiElement psiMember) {
public String getQName(PsiElement psiMember) {
return getQName(psiMember, null);
}
public static String getQName(PsiElement psiMember, Location location) {
public String getQName(PsiElement psiMember, Location location) {
if (psiMember instanceof PsiClass) {
return ClassUtil.getJVMClassName((PsiClass)psiMember);
}
@@ -252,11 +252,15 @@ public abstract class AbstractPatternBasedConfigurationProducer<T extends Module
: location instanceof PsiMemberParameterizedLocation ? ((PsiMemberParameterizedLocation)location).getContainingClass()
: ((PsiMember)psiMember).getContainingClass();
assert containingClass != null;
return ClassUtil.getJVMClassName(containingClass) + "," + ((PsiMember)psiMember).getName();
return ClassUtil.getJVMClassName(containingClass) + "," + getMethodPresentation((PsiMember)psiMember);
} else if (psiMember instanceof PsiPackage) {
return ((PsiPackage)psiMember).getQualifiedName();
}
assert false;
return null;
}
protected String getMethodPresentation(PsiMember psiMember) {
return psiMember.getName();
}
}