diff --git a/platform/configuration-store-impl/testSrc/ModuleStoreRenameTest.kt b/platform/configuration-store-impl/testSrc/ModuleStoreRenameTest.kt index b6c21e7841db..779ca39b2fb7 100644 --- a/platform/configuration-store-impl/testSrc/ModuleStoreRenameTest.kt +++ b/platform/configuration-store-impl/testSrc/ModuleStoreRenameTest.kt @@ -10,7 +10,6 @@ import com.intellij.openapi.components.stateStore import com.intellij.openapi.module.ModifiableModuleModel import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager -import com.intellij.openapi.module.ModuleTypeId import com.intellij.openapi.project.ModuleAdapter import com.intellij.openapi.project.Project import com.intellij.openapi.util.io.systemIndependentPath @@ -24,12 +23,13 @@ import org.junit.Rule import org.junit.Test import org.junit.rules.ExternalResource import java.io.File +import java.nio.file.Paths import java.util.UUID import kotlin.properties.Delegates class ModuleStoreRenameTest { companion object { - ClassRule val projectRule = ProjectRule() + @ClassRule val projectRule = ProjectRule() } var module: Module by Delegates.notNull() @@ -44,8 +44,15 @@ class ModuleStoreRenameTest { object : ExternalResource() { override fun before() { runInEdtAndWait { - module = runWriteAction { ModuleManager.getInstance(projectRule.project).newModule(tempDirManager.newPath().resolve("m.iml").systemIndependentPath, ModuleTypeId.JAVA_MODULE) } + module = projectRule.createModule(tempDirManager.newPath().resolve("m.iml")) } + + module.getMessageBus().connect().subscribe(ProjectTopics.MODULES, object : ModuleAdapter() { + override fun modulesRenamed(project: Project, modules: MutableList, oldNameProvider: Function) { + assertThat(modules).containsOnly(module) + oldModuleNames.add(oldNameProvider.`fun`(module)) + } + }) } // should be invoked after project tearDown @@ -58,22 +65,12 @@ class ModuleStoreRenameTest { } } }, - DisposeModulesRule(projectRule), - object : ExternalResource() { - override fun before() { - module.getMessageBus().connect().subscribe(ProjectTopics.MODULES, object : ModuleAdapter() { - override fun modulesRenamed(project: Project, modules: MutableList, oldNameProvider: Function) { - assertThat(modules).containsOnly(module) - oldModuleNames.add(oldNameProvider.`fun`(module)) - } - }) - } - } + DisposeModulesRule(projectRule) ) public Rule fun getChain(): RuleChain = ruleChain - fun Module.change(task: ModifiableModuleModel.() -> Unit) { + fun changeModule(task: ModifiableModuleModel.() -> Unit) { runInEdtAndWait { val model = ModuleManager.getInstance(projectRule.project).getModifiableModel() runWriteAction { @@ -92,7 +89,7 @@ class ModuleStoreRenameTest { val oldName = module.getName() val newName = "foo" - module.change { renameModule(module, newName) } + changeModule { renameModule(module, newName) } assertRename(newName, oldFile) assertThat(oldModuleNames).containsOnly(oldName) } @@ -135,9 +132,9 @@ class ModuleStoreRenameTest { val parentVirtualDir = storage.getVirtualFile()!!.getParent() runInEdtAndWait { runWriteAction { parentVirtualDir.rename(null, UUID.randomUUID().toString()) } } - val newFile = File(parentVirtualDir.getPath(), module.getName() + ModuleFileType.DOT_DEFAULT_EXTENSION) + val newFile = Paths.get(parentVirtualDir.getPath(), "${module.getName()}${ModuleFileType.DOT_DEFAULT_EXTENSION}") try { - assertThat(newFile).isFile() + assertThat(newFile).isRegularFile() assertRename(module.getName(), oldFile) assertThat(oldModuleNames).isEmpty() } diff --git a/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt b/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt index 96e30f8dfe66..bf346fcf2481 100644 --- a/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt +++ b/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt @@ -26,7 +26,7 @@ import java.nio.file.Paths @RunsInActiveStoreMode class ModuleStoreTest { companion object { - ClassRule val projectRule = ProjectRule() + @ClassRule val projectRule = ProjectRule() val MODULE_DIR = "\$MODULE_DIR$" @@ -41,7 +41,7 @@ class ModuleStoreTest { private fun VirtualFile.loadModule() = runWriteAction { ModuleManager.getInstance(projectRule.project).loadModule(getPath()) } - fun Path.createModule() = runWriteAction { ModuleManager.getInstance(projectRule.project).newModule(systemIndependentPath, ModuleTypeId.JAVA_MODULE) } + fun Path.createModule() = projectRule.createModule(this) } private val tempDirManager = TemporaryDirectory() @@ -159,4 +159,6 @@ class ModuleStoreTest { } val Module.contentRootUrls: Array - get() = ModuleRootManager.getInstance(this).getContentRootUrls() \ No newline at end of file + get() = ModuleRootManager.getInstance(this).getContentRootUrls() + +fun ProjectRule.createModule(path: Path) = runWriteAction { ModuleManager.getInstance(project).newModule(path.systemIndependentPath, ModuleTypeId.JAVA_MODULE) } \ No newline at end of file diff --git a/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt b/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt index bf2817250882..ceff1113bc6c 100644 --- a/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt +++ b/platform/testFramework/src/com/intellij/testFramework/FixtureRule.kt @@ -33,7 +33,6 @@ import com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager import com.intellij.testFramework.fixtures.IdeaProjectTestFixture import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory -import com.intellij.testFramework.fixtures.TestFixtureBuilder import com.intellij.util.SmartList import com.intellij.util.ThrowableRunnable import com.intellij.util.lang.CompoundRuntimeException @@ -50,7 +49,6 @@ import java.lang.annotation.Target import java.lang.reflect.InvocationTargetException import java.util.concurrent.atomic.AtomicBoolean import javax.swing.SwingUtilities -import kotlin.properties.Delegates /** * Project created on request, so, could be used as a bare (only application). @@ -156,24 +154,6 @@ public open class FixtureRule() : ExternalResource() { } } -public fun FixtureRule(tuner: TestFixtureBuilder.() -> Unit): FixtureRule = HeavyFixtureRule(tuner) - -private class HeavyFixtureRule(private val tune: TestFixtureBuilder.() -> Unit) : FixtureRule() { - private var name: String by Delegates.notNull() - - override final fun apply(base: Statement, description: Description): Statement { - name = description.getMethodName() - return super.apply(base, description) - } - - override final fun createBuilder(): TestFixtureBuilder { - val builder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(name) - _projectFixture = builder.getFixture() - builder.tune() - return builder - } -} - public class RuleChain(vararg val rules: TestRule) : TestRule { override fun apply(base: Statement, description: Description): Statement { var statement = base