From f790c11489fdf77dd4bb2364f7b8ef74dd3ffbf7 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 4 Sep 2015 17:39:00 +0300 Subject: [PATCH] listen for rename of test category (IDEA-144086) --- .../execution/junit/JUnitConfiguration.java | 24 ++++++++++++++++++- .../execution/junit/TestCategory.java | 6 +++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java index 64b8ddb7a04a..bcf5ce815146 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java @@ -28,7 +28,6 @@ import com.intellij.execution.junit2.ui.properties.JUnitConsoleProperties; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.runners.ExecutionEnvironmentBuilder; import com.intellij.execution.testframework.TestSearchScope; -import com.intellij.execution.testframework.sm.runner.SMRunnerConsolePropertiesProvider; import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties; import com.intellij.openapi.components.PathMacroManager; import com.intellij.openapi.module.Module; @@ -111,6 +110,23 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { restoreOriginalModule(originalModule); } }; + + final RefactoringListeners.Accessor myCategory = new RefactoringListeners.Accessor() { + @Override + public void setName(@NotNull final String qualifiedName) { + setCategory(qualifiedName); + } + + @Override + public PsiClass getPsiElement() { + return getConfigurationModule().findClass(myData.getCategory()); + } + + @Override + public void setPsiElement(final PsiClass psiClass) { + setCategory(JavaExecutionUtil.getRuntimeQualifiedName(psiClass)); + } + }; public boolean ALTERNATIVE_JRE_PATH_ENABLED; public String ALTERNATIVE_JRE_PATH; @@ -282,6 +298,12 @@ public class JUnitConfiguration extends JavaTestConfigurationBase { if (shouldUpdateName) setGeneratedName(); } + public void setCategory(String categoryName) { + final boolean shouldUpdateName = isGeneratedName(); + myData.setCategoryName(categoryName); + if (shouldUpdateName) setGeneratedName(); + } + public void beMethodConfiguration(final Location methodLocation) { setModule(myData.setTestMethod(methodLocation)); setGeneratedName(); diff --git a/plugins/junit/src/com/intellij/execution/junit/TestCategory.java b/plugins/junit/src/com/intellij/execution/junit/TestCategory.java index b630eef2ac8f..6df1e677e058 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestCategory.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestCategory.java @@ -23,6 +23,7 @@ import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.execution.util.JavaParametersUtil; import com.intellij.execution.util.ProgramParametersUtil; import com.intellij.psi.*; +import com.intellij.refactoring.listeners.RefactoringElementListener; /** * User: anna @@ -67,4 +68,9 @@ class TestCategory extends TestPackage { PsiDirectory testDir) { return false; } + + @Override + public RefactoringElementListener getListener(final PsiElement element, final JUnitConfiguration configuration) { + return RefactoringListeners.getClassOrPackageListener(element, configuration.myCategory); + } } -- 2.32.0