RUBY-5449 find class related tests and vise versa for appropriate element

This commit is contained in:
Dmitry.Krasilschikov
2016-12-17 20:16:16 +03:00
parent 554947d2e8
commit 9bd5077e94
2 changed files with 9 additions and 2 deletions
@@ -35,4 +35,9 @@ public interface TestFinder {
Collection<PsiElement> findClassesForTest(@NotNull PsiElement element);
boolean isTest(@NotNull PsiElement element);
@Nullable
default PsiElement findSelectedElement(@NotNull final PsiElement element) {
return element;
}
}
@@ -39,7 +39,8 @@ public class TestFinderHelper {
public static Collection<PsiElement> findTestsForClass(PsiElement element) {
Collection<PsiElement> result = new LinkedHashSet<>();
for (TestFinder each : getFinders()) {
result.addAll(each.findTestsForClass(element));
final PsiElement selectedElement = each.findSelectedElement(element);
if (selectedElement != null) result.addAll(each.findTestsForClass(selectedElement));
}
return result;
}
@@ -47,7 +48,8 @@ public class TestFinderHelper {
public static Collection<PsiElement> findClassesForTest(PsiElement element) {
Collection<PsiElement> result = new LinkedHashSet<>();
for (TestFinder each : getFinders()) {
result.addAll(each.findClassesForTest(element));
final PsiElement selectedElement = each.findSelectedElement(element);
if (selectedElement != null) result.addAll(each.findClassesForTest(selectedElement));
}
return result;
}