mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 23:39:39 +07:00
164 lines
7.9 KiB
Java
164 lines
7.9 KiB
Java
package com.intellij.execution.actions;
|
|
|
|
import com.intellij.execution.BaseConfigurationTestCase;
|
|
import com.intellij.execution.RunManagerEx;
|
|
import com.intellij.execution.RunnerAndConfigurationSettings;
|
|
import com.intellij.execution.application.ApplicationConfiguration;
|
|
import com.intellij.execution.junit.*;
|
|
import com.intellij.execution.testframework.TestSearchScope;
|
|
import com.intellij.openapi.actionSystem.DataConstants;
|
|
import com.intellij.openapi.actionSystem.ex.DataConstantsEx;
|
|
import com.intellij.openapi.module.Module;
|
|
import com.intellij.openapi.module.ModuleUtil;
|
|
import com.intellij.psi.PsiClass;
|
|
import com.intellij.psi.PsiMethod;
|
|
import com.intellij.psi.PsiPackage;
|
|
import com.intellij.testFramework.MapDataContext;
|
|
|
|
import java.io.IOException;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.HashSet;
|
|
|
|
public class ContextConfigurationTest extends BaseConfigurationTestCase {
|
|
private static final String PACKAGE_NAME = "apackage";
|
|
private static final String SHORT_CLASS_NAME = "SampleClass";
|
|
private static final String CLASS_NAME = PACKAGE_NAME + "." + SHORT_CLASS_NAME;
|
|
private static final String METHOD_NAME = "test1";
|
|
|
|
@Override
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
addModule("commonConfiguration");
|
|
}
|
|
|
|
public void testJUnitMethodTest() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiMethod testMethod = psiClass.findMethodsByName(METHOD_NAME, false)[0];
|
|
JUnitConfiguration configuration = (JUnitConfiguration)createConfiguration(testMethod);
|
|
checkTestObject(JUnitConfiguration.TEST_METHOD, configuration);
|
|
checkClassName(CLASS_NAME, configuration);
|
|
checkMethodName(METHOD_NAME, configuration);
|
|
checkPackage(PACKAGE_NAME, configuration);
|
|
checkGenaratedName(configuration, SHORT_CLASS_NAME + "." + METHOD_NAME);
|
|
}
|
|
|
|
public void testJUnitClassTest() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
final MapDataContext dataContext = new MapDataContext();
|
|
JUnitConfiguration configuration = createJUnitConfiguration(psiClass, TestClassConfigurationProducer.class, dataContext);
|
|
checkTestObject(JUnitConfiguration.TEST_CLASS, configuration);
|
|
checkClassName(CLASS_NAME, configuration);
|
|
checkPackage(PACKAGE_NAME, configuration);
|
|
checkGenaratedName(configuration, SHORT_CLASS_NAME);
|
|
}
|
|
|
|
|
|
public void testRecreateJUnitClass() throws IOException {
|
|
createEmptyModule();
|
|
addDependency(getModule2(), getModule1());
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiPackage psiPackage = JUnitUtil.getContainingPackage(psiClass);
|
|
JUnitConfiguration configuration = createJUnitConfiguration(psiPackage, AllInPackageConfigurationProducer.class, new MapDataContext());
|
|
configuration.getPersistentData().setScope(TestSearchScope.MODULE_WITH_DEPENDENCIES);
|
|
configuration.setModule(getModule2());
|
|
MapDataContext dataContext = new MapDataContext();
|
|
dataContext.put(DataConstantsEx.RUNTIME_CONFIGURATION, configuration);
|
|
configuration = createJUnitConfiguration(psiClass, TestClassConfigurationProducer.class, dataContext);
|
|
checkClassName(psiClass.getQualifiedName(), configuration);
|
|
assertEquals(Collections.singleton(getModule2()), new HashSet(Arrays.asList(configuration.getModules())));
|
|
}
|
|
|
|
public void testJUnitPackage() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiPackage psiPackage = JUnitUtil.getContainingPackage(psiClass);
|
|
final MapDataContext dataContext = new MapDataContext();
|
|
final Module module = ModuleUtil.findModuleForPsiElement(psiClass);
|
|
dataContext.put(DataConstants.MODULE, module);
|
|
JUnitConfiguration configuration = createJUnitConfiguration(psiPackage, AllInPackageConfigurationProducer.class, dataContext);
|
|
checkTestObject(JUnitConfiguration.TEST_PACKAGE, configuration);
|
|
checkPackage(PACKAGE_NAME, configuration);
|
|
checkGenaratedName(configuration, PACKAGE_NAME + " in " + module.getName());
|
|
}
|
|
|
|
public void testJUnitDefaultPackage() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiPackage psiPackage = JUnitUtil.getContainingPackage(psiClass);
|
|
PsiPackage defaultPackage = psiPackage.getParentPackage();
|
|
final Module module = ModuleUtil.findModuleForPsiElement(psiClass);
|
|
final MapDataContext dataContext = new MapDataContext();
|
|
dataContext.put(DataConstants.MODULE, module);
|
|
JUnitConfiguration configuration = createJUnitConfiguration(defaultPackage, AllInPackageConfigurationProducer.class, dataContext);
|
|
checkTestObject(JUnitConfiguration.TEST_PACKAGE, configuration);
|
|
checkPackage("", configuration);
|
|
checkGenaratedName(configuration, "All in " + module.getName());
|
|
}
|
|
|
|
public void testApplication() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiMethod psiMethod = psiClass.findMethodsByName("main", false)[0];
|
|
ApplicationConfiguration configuration = createConfiguration(psiMethod);
|
|
assertEquals(CLASS_NAME, configuration.MAIN_CLASS_NAME);
|
|
assertEquals(configuration.getGeneratedName(), configuration.getName());
|
|
assertEquals(SHORT_CLASS_NAME, configuration.getName());
|
|
}
|
|
|
|
public void testReusingConfiguration() {
|
|
RunManagerEx runManager = RunManagerEx.getInstanceEx(myProject);
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiPackage psiPackage = JUnitUtil.getContainingPackage(psiClass);
|
|
|
|
ConfigurationContext context = createContext(psiClass);
|
|
assertEquals(null, context.findExisting());
|
|
RunnerAndConfigurationSettings testClass = context.getConfiguration();
|
|
runManager.addConfiguration(testClass, false);
|
|
context = createContext(psiClass);
|
|
assertSame(testClass, context.findExisting());
|
|
|
|
runManager.setActiveConfiguration(testClass);
|
|
context = createContext(psiPackage);
|
|
assertEquals(null, context.findExisting());
|
|
RunnerAndConfigurationSettings testPackage = context.getConfiguration();
|
|
runManager.addConfiguration(testPackage, false);
|
|
context = createContext(psiPackage);
|
|
assertSame(testPackage, context.findExisting());
|
|
assertSame(testClass, runManager.getSelectedConfiguration());
|
|
runManager.setActiveConfiguration(context.findExisting());
|
|
assertSame(testPackage, runManager.getSelectedConfiguration());
|
|
}
|
|
|
|
public void testJUnitGeneratedName() {
|
|
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
|
|
PsiPackage psiPackage = JUnitUtil.getContainingPackage(psiClass);
|
|
JUnitConfiguration configuration = new JUnitConfiguration(null, myProject, JUnitConfigurationType.getInstance().getConfigurationFactories()[0]);
|
|
JUnitConfiguration.Data data = configuration.getPersistentData();
|
|
data.PACKAGE_NAME = psiPackage.getQualifiedName();
|
|
data.TEST_OBJECT = JUnitConfiguration.TEST_PACKAGE;
|
|
assertEquals(PACKAGE_NAME, configuration.getGeneratedName());
|
|
data.PACKAGE_NAME = "not.existing.pkg";
|
|
assertEquals("not.existing.pkg", configuration.getGeneratedName());
|
|
|
|
data.TEST_OBJECT = JUnitConfiguration.TEST_CLASS;
|
|
data.MAIN_CLASS_NAME = psiClass.getQualifiedName();
|
|
assertEquals(SHORT_CLASS_NAME, configuration.getGeneratedName());
|
|
data.MAIN_CLASS_NAME = "not.existing.TestClass";
|
|
assertEquals("TestClass", configuration.getGeneratedName());
|
|
data.MAIN_CLASS_NAME = "pkg.TestClass.";
|
|
assertEquals("pkg.TestClass.", configuration.getGeneratedName());
|
|
data.MAIN_CLASS_NAME = "TestClass";
|
|
assertEquals("TestClass", configuration.getGeneratedName());
|
|
|
|
data.TEST_OBJECT = JUnitConfiguration.TEST_METHOD;
|
|
data.MAIN_CLASS_NAME = psiClass.getQualifiedName();
|
|
data.METHOD_NAME = METHOD_NAME;
|
|
assertEquals(SHORT_CLASS_NAME + "." + METHOD_NAME, configuration.getGeneratedName());
|
|
data.MAIN_CLASS_NAME = "not.existing.TestClass";
|
|
assertEquals("TestClass." + METHOD_NAME, configuration.getGeneratedName());
|
|
}
|
|
|
|
private void checkGenaratedName(JUnitConfiguration configuration, String name) {
|
|
assertEquals(configuration.getGeneratedName(), configuration.getName());
|
|
assertEquals(name, configuration.getName());
|
|
}
|
|
}
|