import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.Function;
-import com.intellij.util.PathUtil;
import com.intellij.util.containers.ContainerUtil;
import gnu.trove.THashSet;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import java.io.File;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
/**
* @author cdr
List<String> jarPaths;
String libraryName;
if (isJunit4) {
- jarPaths = getJUnit4JarPaths();
+ jarPaths = JavaSdkUtil.getJUnit4JarPaths();
libraryName = JUNIT4_LIBRARY_NAME;
}
else {
return result;
}
+ /**
+ * @deprecated
+ */
public static void addJUnit4Library(boolean inTests, Module currentModule) throws ClassNotFoundException {
- final List<String> junit4Paths = getJUnit4JarPaths();
+ final List<String> junit4Paths = JavaSdkUtil.getJUnit4JarPaths();
addJarsToRoots(junit4Paths, JUNIT4_LIBRARY_NAME, currentModule, null);
}
- @NotNull
- private static List<String> getJUnit4JarPaths() {
- try {
- return Arrays.asList(JavaSdkUtil.getJunit4JarPath(),
- PathUtil.getJarPathForClass(Class.forName("org.hamcrest.Matcher")),
- PathUtil.getJarPathForClass(Class.forName("org.hamcrest.Matchers")));
- }
- catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
-
private static List<PsiClass> filterAllowedDependencies(PsiElement element, PsiClass[] classes) {
DependencyValidationManager dependencyValidationManager = DependencyValidationManager.getInstance(element.getProject());
PsiFile fromFile = element.getContainingFile();
import com.intellij.util.PathUtil;
import com.intellij.util.PathsList;
import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Arrays;
+import java.util.List;
public class JavaSdkUtil {
@NonNls public static final String IDEA_PREPEND_RTJAR = "idea.prepend.rtjar";
public static String getIdeaRtJarPath() {
return PathUtil.getJarPathForClass(JavacRunner.class);
}
+
+ @NotNull
+ public static List<String> getJUnit4JarPaths() {
+ try {
+ return Arrays.asList(getJunit4JarPath(),
+ PathUtil.getJarPathForClass(Class.forName("org.hamcrest.Matcher")),
+ PathUtil.getJarPathForClass(Class.forName("org.hamcrest.Matchers")));
+ }
+ catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import java.util.Collections;
+import java.util.List;
+
public abstract class JavaTestFramework implements TestFramework {
public boolean isLibraryAttached(@NotNull Module module) {
GlobalSearchScope scope = GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module);
return c != null;
}
+ @NotNull
+ public List<String> getLibraryPaths() {
+ //todo[nik] pull up to the interface and removed 'getLibraryPath()' method
+ return Collections.singletonList(getLibraryPath());
+ }
+
protected abstract String getMarkerClassFQName();
public boolean isTestClass(@NotNull PsiElement clazz) {
}
public void setupLibrary(Module module) {
- OrderEntryFix.addJarToRoots(getLibraryPath(), module, null);
+ List<String> paths = getLibraryPaths();
+ OrderEntryFix.addJarsToRoots(paths, paths.size() == 1 ? null : getName(), module, null);
}
public boolean isSingleConfig() {
String text = CodeInsightBundle.message("intention.create.test.dialog.library.not.found", descriptor.getName());
myFixLibraryLabel.setText(text);
- myFixLibraryButton.setVisible(descriptor.getLibraryPath() != null);
+ myFixLibraryButton.setVisible(descriptor instanceof JavaTestFramework ? !((JavaTestFramework)descriptor).getLibraryPaths().isEmpty()
+ : descriptor.getLibraryPath() != null);
}
String superClass = descriptor.getDefaultSuperClass();
import com.intellij.CommonBundle;
import com.intellij.codeInsight.AnnotationUtil;
-import com.intellij.codeInsight.daemon.impl.quickfix.OrderEntryFix;
import com.intellij.codeInsight.intention.AddAnnotationFix;
import com.intellij.icons.AllIcons;
import com.intellij.ide.fileTemplates.FileTemplateDescriptor;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
-import com.intellij.openapi.module.Module;
import com.intellij.openapi.projectRoots.ex.JavaSdkUtil;
import com.intellij.openapi.ui.Messages;
import com.intellij.psi.*;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
+import java.util.List;
public class JUnit4Framework extends JavaTestFramework {
private static final Logger LOG = Logger.getInstance("#" + JUnit4Framework.class.getName());
@NotNull
public String getLibraryPath() {
- return JavaSdkUtil.getJunit4JarPath();
+ return getLibraryPaths().get(0);
+ }
+
+ @NotNull
+ @Override
+ public List<String> getLibraryPaths() {
+ return JavaSdkUtil.getJUnit4JarPaths();
}
@Nullable
return new FileTemplateDescriptor("JUnit4 Test Class.java");
}
- @Override
- public void setupLibrary(Module module) {
- try {
- OrderEntryFix.addJUnit4Library(false, module);
- }
- catch (ClassNotFoundException e) {
- LOG.info(e);
- }
- }
-
@Override
public boolean isParameterized(PsiClass clazz) {
final PsiAnnotation annotation = AnnotationUtil.findAnnotation(clazz, JUnitUtil.RUN_WITH);