From d128928c92afb90d211dd40773ced3d449b6e2e3 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 21 Feb 2014 12:34:15 +0100 Subject: [PATCH] Cleanup (configuration tests correctly generified and annotated) --- .../execution/BaseConfigurationTestCase.java | 50 +++++++++---- .../ConfigurationRefactoringsTest.java | 73 ++++++++++++++----- 2 files changed, 88 insertions(+), 35 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/execution/BaseConfigurationTestCase.java b/java/java-tests/testSrc/com/intellij/execution/BaseConfigurationTestCase.java index 2ddd8d11aa40..9092e2551a8d 100644 --- a/java/java-tests/testSrc/com/intellij/execution/BaseConfigurationTestCase.java +++ b/java/java-tests/testSrc/com/intellij/execution/BaseConfigurationTestCase.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.execution; import com.intellij.execution.actions.ConfigurationContext; @@ -5,7 +20,9 @@ import com.intellij.execution.actions.ConfigurationFromContext; import com.intellij.execution.actions.RunConfigurationProducer; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.junit.JUnitConfiguration; -import com.intellij.openapi.actionSystem.DataConstants; +import com.intellij.execution.junit.JUnitConfigurationProducer; +import com.intellij.openapi.actionSystem.CommonDataKeys; +import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.PathManagerEx; import com.intellij.openapi.module.Module; @@ -25,6 +42,7 @@ import com.intellij.testFramework.IdeaTestCase; import com.intellij.testFramework.MapDataContext; import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.TempFiles; +import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; @@ -64,7 +82,7 @@ public abstract class BaseConfigurationTestCase extends IdeaTestCase { ModuleRootModificationUtil.addModuleLibrary(module, mockJUnit.getUrl()); ModuleRootModificationUtil.setModuleSdk(module, ModuleRootManager.getInstance(myModule).getSdk()); GlobalSearchScope scope = GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(module); - VirtualFile testCase = mockJUnit.findChild("junit").findChild("framework").findChild("TestCase.java"); + VirtualFile testCase = mockJUnit.findFileByRelativePath("junit/framework/TestCase.java"); assertNotNull(testCase); assertTrue(scope.contains(testCase)); Module missingModule = createTempModule(); @@ -139,37 +157,39 @@ public abstract class BaseConfigurationTestCase extends IdeaTestCase { return JavaPsiFacade.getInstance(myProject).findClass(qualifiedName, scope); } - protected JUnitConfiguration createJUnitConfiguration(final PsiElement psiElement, - final Class producerClass, - final MapDataContext dataContext) { + protected JUnitConfiguration createJUnitConfiguration(@NotNull PsiElement psiElement, + @NotNull Class producerClass, + @NotNull MapDataContext dataContext) { ConfigurationContext context = createContext(psiElement, dataContext); RunConfigurationProducer producer = RunConfigurationProducer.getInstance(producerClass); assert producer != null; ConfigurationFromContext fromContext = producer.createConfigurationFromContext(context); + assertNotNull(fromContext); return (JUnitConfiguration)fromContext.getConfiguration(); } - protected final T createConfiguration(PsiElement psiElement) { - return (T)createConfiguration(psiElement, new MapDataContext()); + protected final T createConfiguration(@NotNull PsiElement psiElement) { + return createConfiguration(psiElement, new MapDataContext()); } - protected T createConfiguration(PsiElement psiElement, MapDataContext dataContext) { + protected T createConfiguration(@NotNull PsiElement psiElement, @NotNull MapDataContext dataContext) { ConfigurationContext context = createContext(psiElement, dataContext); RunnerAndConfigurationSettings settings = context.getConfiguration(); - return settings == null ? null : (T)settings.getConfiguration(); + @SuppressWarnings("unchecked") T configuration = settings == null ? null : (T)settings.getConfiguration(); + return configuration; } - public ConfigurationContext createContext(PsiElement psiClass) { + public ConfigurationContext createContext(@NotNull PsiElement psiClass) { MapDataContext dataContext = new MapDataContext(); return createContext(psiClass, dataContext); } - public ConfigurationContext createContext(PsiElement psiClass, MapDataContext dataContext) { - dataContext.put(DataConstants.PROJECT, myProject); - if (dataContext.getData(DataConstants.MODULE) == null) { - dataContext.put(DataConstants.MODULE, ModuleUtilCore.findModuleForPsiElement(psiClass)); + public ConfigurationContext createContext(@NotNull PsiElement psiClass, @NotNull MapDataContext dataContext) { + dataContext.put(CommonDataKeys.PROJECT, myProject); + if (LangDataKeys.MODULE.getData(dataContext) == null) { + dataContext.put(LangDataKeys.MODULE, ModuleUtilCore.findModuleForPsiElement(psiClass)); } - dataContext.put(Location.LOCATION, PsiLocation.fromPsiElement(psiClass)); + dataContext.put(Location.DATA_KEY, PsiLocation.fromPsiElement(psiClass)); return ConfigurationContext.getFromContext(dataContext); } diff --git a/java/java-tests/testSrc/com/intellij/execution/ConfigurationRefactoringsTest.java b/java/java-tests/testSrc/com/intellij/execution/ConfigurationRefactoringsTest.java index a5d882c89026..174b9af3507a 100644 --- a/java/java-tests/testSrc/com/intellij/execution/ConfigurationRefactoringsTest.java +++ b/java/java-tests/testSrc/com/intellij/execution/ConfigurationRefactoringsTest.java @@ -1,3 +1,18 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.execution; import com.intellij.execution.application.ApplicationConfiguration; @@ -6,6 +21,7 @@ import com.intellij.execution.configurations.RuntimeConfigurationException; import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl; import com.intellij.execution.junit.AllInPackageConfigurationProducer; import com.intellij.execution.junit.JUnitConfiguration; +import com.intellij.execution.junit.JUnitConfigurationProducer; import com.intellij.execution.junit.JUnitConfigurationType; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; @@ -19,6 +35,7 @@ import com.intellij.refactoring.move.moveMembers.MoveMembersProcessor; import com.intellij.refactoring.rename.RenameProcessor; import com.intellij.testFramework.MapDataContext; import com.intellij.util.containers.HashSet; +import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -38,6 +55,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { "}"; public void testRenameApplication() throws IOException { PsiClass psiClass = mySource.createClass("Application", APPLICATION_CODE); + assertNotNull(psiClass); ApplicationConfiguration configuration = createConfiguration(psiClass); assertNotNull(configuration); rename(psiClass, "NewName"); @@ -52,6 +70,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { public void testMoveApplication() throws IOException { PsiClass psiClass = mySource.createClass("Application", APPLICATION_CODE); + assertNotNull(psiClass); ApplicationConfiguration configuration = createConfiguration(psiClass); move(psiClass, "pkg"); try { @@ -71,15 +90,16 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { JUnitConfiguration configuration = createJUnitConfiguration(psiPackage, AllInPackageConfigurationProducer.class, new MapDataContext()); rename(psiPackage, "pkg2"); checkPackage("pkg2", configuration); - PsiPackage outter = mySource.createPackage("outterPkg"); - move(JavaPsiFacade.getInstance(myProject).findPackage("pkg2"), outter.getQualifiedName()); - checkPackage("outterPkg.pkg2", configuration); - rename(outter, "outter2"); - checkPackage("outter2.pkg2", configuration); + PsiPackage outer = mySource.createPackage("outerPkg"); + move(JavaPsiFacade.getInstance(myProject).findPackage("pkg2"), outer.getQualifiedName()); + checkPackage("outerPkg.pkg2", configuration); + rename(outer, "outer2"); + checkPackage("outer2.pkg2", configuration); } public void testRenameJUnitContainingPackage() throws IOException { PsiClass psiClass = mySource.createClass("ATest", TEST_CODE); + assertNotNull(psiClass); JUnitConfiguration configuration = createConfiguration(psiClass); PsiPackage psiPackage = mySource.createPackage("pkg"); move(psiClass, "pkg"); @@ -95,6 +115,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { public void testRefactorTestMethod() throws IOException { PsiClass psiClass = mySource.createClass("ATest", TEST_CODE); + assertNotNull(psiClass); PsiMethod testMethod = psiClass.findMethodsByName("test", false)[0]; JUnitConfiguration configuration = createConfiguration(testMethod); rename(testMethod, "test1"); @@ -110,6 +131,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { PsiClass otherTest = mySource.createClass("ATest", TEST_CODE); HashSet members = new HashSet(); + assertNotNull(psiClass); members.add(psiClass.findMethodsByName("test1", false)[0]); moveMembers(otherTest, members); psiClass = configuration.getConfigurationModule().findClass(configuration.getPersistentData().getMainClassName()); @@ -117,6 +139,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { checkClassName("ATest", configuration); assertEquals("ATest.test1", configuration.getName()); + assertNotNull(psiClass); PsiMethod otherMethod = psiClass.findMethodsByName("otherMethod", false)[0]; rename(otherMethod, "newName"); checkMethodName("test1", configuration); @@ -124,11 +147,13 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { public void testRenameBadTestClass() throws IOException { PsiClass psiClass = mySource.createClass("NotATest", NOT_A_TEST); - JUnitConfiguration configuration = new JUnitConfiguration("notATest", myProject, JUnitConfigurationType.getInstance().getConfigurationFactories()[0]); + assertNotNull(psiClass); + JUnitConfigurationType instance = JUnitConfigurationType.getInstance(); + assertNotNull(instance); + JUnitConfiguration configuration = new JUnitConfiguration("notATest", myProject, instance.getConfigurationFactories()[0]); configuration.setMainClass(psiClass); configuration.setModule(configuration.getValidModules().iterator().next()); - checkConfigurationException("NotATest isn't test class", configuration); RunManagerEx.getInstanceEx(myProject).setTemporaryConfiguration(new RunnerAndConfigurationSettingsImpl(null, configuration, false)); @@ -144,7 +169,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { assertEquals("test2", data.getMethodName()); } - private void checkConfigurationException(String expectedExceptionMessage, JUnitConfiguration configuration) { + private static void checkConfigurationException(String expectedExceptionMessage, JUnitConfiguration configuration) { try { configuration.checkConfiguration(); } @@ -156,13 +181,18 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { } public void testRefactorOtherClass() throws IOException { - JUnitConfiguration configuration = createConfiguration(mySource.createClass("ATest", TEST_CODE)); - PsiClass psiClass = mySource.createClass("Application", APPLICATION_CODE); + PsiClass psiClass = mySource.createClass("ATest", TEST_CODE); + assertNotNull(psiClass); + JUnitConfiguration configuration = createConfiguration(psiClass); + + psiClass = mySource.createClass("Application", APPLICATION_CODE); + assertNotNull(psiClass); rename(psiClass, "NewName"); checkClassName("ATest", configuration); mySource.createPackage("pkg"); psiClass = mySource.findClass("NewName"); + assertNotNull(psiClass); move(psiClass, "pkg"); checkClassName("ATest", configuration); } @@ -170,7 +200,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { private void moveMembers(final PsiClass otherTest, final HashSet members) { new WriteCommandAction(myProject) { @Override - protected void run(final Result result) throws Throwable { + protected void run(@NotNull Result result) throws Throwable { MockMoveMembersOptions options = new MockMoveMembersOptions(otherTest.getQualifiedName(), members); new MoveMembersProcessor(myProject, null, options).run(); } @@ -186,12 +216,13 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { private void move(final PsiElement psiElement, String packageName) { VirtualFile pkgFile = mySource.createPackageDir(packageName); final PsiDirectory toDir = PsiManager.getInstance(myProject).findDirectory(pkgFile); + assertNotNull(toDir); new WriteCommandAction(myProject, psiElement.getContainingFile()) { @Override - protected void run(final Result result) throws Throwable { + protected void run(@NotNull Result result) throws Throwable { + PackageWrapper wrapper = PackageWrapper.create(JavaDirectoryService.getInstance().getPackage(toDir)); new MoveClassesOrPackagesProcessor(myProject, new PsiElement[]{psiElement}, - new SingleSourceRootMoveDestination( - PackageWrapper.create(JavaDirectoryService.getInstance().getPackage(toDir)), toDir), + new SingleSourceRootMoveDestination(wrapper, toDir), false, false, null).run(); } }.executeSilently(); @@ -200,11 +231,11 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { private void rename(final PsiElement psiElement, final String newName) { new WriteCommandAction(myProject, psiElement.getContainingFile()) { @Override - protected void run(final Result result) throws Throwable { + protected void run(@NotNull Result result) throws Throwable { new RenameProcessor(myProject, psiElement, newName, false, false).run(); } }.executeSilently(); - } + } @Override protected void setUp() throws Exception { @@ -218,18 +249,20 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase { protected void tearDown() throws Exception { mySource.tearDown(); mySource = null; - super.tearDown(); //To change body of overriden methods use Options | File Templates. + super.tearDown(); } @Override - protected T createConfiguration(PsiElement psiClass, MapDataContext dataContext) { - T configuration = (T)super.createConfiguration(psiClass, dataContext); + protected T createConfiguration(@NotNull PsiElement psiClass, @NotNull MapDataContext dataContext) { + T configuration = super.createConfiguration(psiClass, dataContext); RunManagerEx.getInstanceEx(myProject).setTemporaryConfiguration(new RunnerAndConfigurationSettingsImpl(null, configuration, false)); return configuration; } @Override - protected JUnitConfiguration createJUnitConfiguration(final PsiElement psiElement, final Class producerClass, final MapDataContext dataContext) { + protected JUnitConfiguration createJUnitConfiguration(@NotNull PsiElement psiElement, + @NotNull Class producerClass, + @NotNull MapDataContext dataContext) { final JUnitConfiguration configuration = super.createJUnitConfiguration(psiElement, producerClass, dataContext); RunManagerEx.getInstanceEx(myProject).setTemporaryConfiguration(new RunnerAndConfigurationSettingsImpl(null, configuration, false)); return configuration;