Test Framework: Fix module creation in multi-module tests
This commit is contained in:
+7
-5
@@ -17,15 +17,15 @@
|
|||||||
package org.jetbrains.kotlin.idea.test
|
package org.jetbrains.kotlin.idea.test
|
||||||
|
|
||||||
import com.intellij.ide.highlighter.ModuleFileType
|
import com.intellij.ide.highlighter.ModuleFileType
|
||||||
import com.intellij.openapi.module.StdModuleTypes
|
import com.intellij.openapi.module.ModuleManager
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore
|
import com.intellij.openapi.vfs.VfsUtilCore
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import com.intellij.openapi.vfs.VirtualFileVisitor
|
import com.intellij.openapi.vfs.VirtualFileVisitor
|
||||||
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
|
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
|
||||||
import com.intellij.refactoring.MultiFileTestCase
|
import com.intellij.refactoring.MultiFileTestCase
|
||||||
import com.intellij.testFramework.PsiTestUtil
|
import com.intellij.testFramework.PsiTestUtil
|
||||||
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
abstract class KotlinMultiFileTestCase : MultiFileTestCase() {
|
abstract class KotlinMultiFileTestCase : MultiFileTestCase() {
|
||||||
protected var isMultiModule = false
|
protected var isMultiModule = false
|
||||||
@@ -37,14 +37,14 @@ abstract class KotlinMultiFileTestCase : MultiFileTestCase() {
|
|||||||
|
|
||||||
override fun prepareProject(rootDir: VirtualFile) {
|
override fun prepareProject(rootDir: VirtualFile) {
|
||||||
if (isMultiModule) {
|
if (isMultiModule) {
|
||||||
|
val model = ModuleManager.getInstance(project).modifiableModel
|
||||||
|
|
||||||
VfsUtilCore.visitChildrenRecursively(
|
VfsUtilCore.visitChildrenRecursively(
|
||||||
rootDir,
|
rootDir,
|
||||||
object : VirtualFileVisitor<Any>() {
|
object : VirtualFileVisitor<Any>() {
|
||||||
override fun visitFile(file: VirtualFile): Boolean {
|
override fun visitFile(file: VirtualFile): Boolean {
|
||||||
if (!file.isDirectory && file.name.endsWith(ModuleFileType.DOT_DEFAULT_EXTENSION)) {
|
if (!file.isDirectory && file.name.endsWith(ModuleFileType.DOT_DEFAULT_EXTENSION)) {
|
||||||
val module = createModule(File(file.path), StdModuleTypes.JAVA)
|
model.loadModule(file.path)
|
||||||
val contentRoot = file.parent.findChild("src")!!
|
|
||||||
PsiTestUtil.addSourceContentToRoots(module, contentRoot)
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,6 +52,8 @@ abstract class KotlinMultiFileTestCase : MultiFileTestCase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
runWriteAction { model.commit() }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
PsiTestUtil.addSourceContentToRoots(myModule, rootDir)
|
PsiTestUtil.addSourceContentToRoots(myModule, rootDir)
|
||||||
|
|||||||
-1
@@ -8,6 +8,5 @@
|
|||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
<orderEntry type="module" module-name="B" />
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
-1
@@ -8,6 +8,5 @@
|
|||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
<orderEntry type="module" module-name="B" />
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
Reference in New Issue
Block a user