Skip to content

Commit 861219f

Browse files
committed
ConfigureKotlinTest refactoring to avoid duplicating production logic
1 parent 63c6ba7 commit 861219f

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,19 @@ abstract class KotlinWithLibraryConfigurator internal constructor() : KotlinProj
121121
defaultPath: String,
122122
pathFromDialog: String?,
123123
collector: NotificationMessageCollector
124+
) {
125+
val classesPath = getPathToCopyFileTo(module.project, OrderRootType.CLASSES, defaultPath, pathFromDialog)
126+
val sourcesPath = getPathToCopyFileTo(module.project, OrderRootType.SOURCES, defaultPath, pathFromDialog)
127+
configureModuleWithLibrary(module, classesPath, sourcesPath, collector, useBundled = pathFromDialog == null)
128+
}
129+
130+
fun configureModuleWithLibrary(
131+
module: Module,
132+
classesPath: String,
133+
sourcesPath: String,
134+
collector: NotificationMessageCollector,
135+
forceJarState: FileState? = null,
136+
useBundled: Boolean = false
124137
) {
125138
val project = module.project
126139

@@ -132,10 +145,14 @@ abstract class KotlinWithLibraryConfigurator internal constructor() : KotlinProj
132145
val model = library.modifiableModel
133146

134147
for (descriptor in getLibraryJarDescriptors(sdk)) {
135-
val dirToCopyJar = getPathToCopyFileTo(project, descriptor.orderRootType, defaultPath, pathFromDialog)
136-
val runtimeState = getJarState(project,
137-
File(dirToCopyJar, descriptor.jarName),
138-
descriptor.orderRootType, pathFromDialog == null)
148+
val dirToCopyJar = if (descriptor.orderRootType == OrderRootType.SOURCES)
149+
sourcesPath
150+
else
151+
classesPath
152+
153+
val runtimeState = forceJarState ?: getJarState(project,
154+
File(dirToCopyJar, descriptor.jarName),
155+
descriptor.orderRootType, useBundled)
139156

140157
configureLibraryJar(model, runtimeState, dirToCopyJar, descriptor, collector)
141158
}

idea/tests/org/jetbrains/kotlin/idea/configuration/AbstractConfigureKotlinTest.kt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@
1616

1717
package org.jetbrains.kotlin.idea.configuration
1818

19-
import com.intellij.openapi.application.ApplicationManager
2019
import com.intellij.openapi.application.PathMacros
2120
import com.intellij.openapi.module.Module
2221
import com.intellij.openapi.module.ModuleManager
2322
import com.intellij.openapi.project.Project
24-
import com.intellij.openapi.roots.ModuleRootManager
2523
import com.intellij.openapi.util.io.FileUtil
2624
import com.intellij.openapi.util.io.FileUtilRt
2725
import com.intellij.testFramework.PlatformTestCase
@@ -148,19 +146,9 @@ abstract class AbstractConfigureKotlinTest : PlatformTestCase() {
148146
val project = modules.iterator().next().project
149147
val collector = createConfigureKotlinNotificationCollector(project)
150148

149+
val pathToJar = getPathToJar(runtimeState, jarFromDist, jarFromTemp)
151150
for (module in modules) {
152-
var library = configurator.getKotlinLibrary(module)
153-
if (library == null) {
154-
library = configurator.createNewLibrary(project, collector)
155-
}
156-
val pathToJar = getPathToJar(runtimeState, jarFromDist, jarFromTemp)
157-
val sdk = ModuleRootManager.getInstance(module).sdk
158-
val model = library.modifiableModel
159-
for (descriptor in configurator.getLibraryJarDescriptors(sdk)) {
160-
configurator.configureLibraryJar(model, runtimeState, pathToJar, descriptor, collector)
161-
}
162-
ApplicationManager.getApplication().runWriteAction { model.commit() }
163-
configurator.addLibraryToModuleIfNeeded(module, library, collector)
151+
configurator.configureModuleWithLibrary(module, pathToJar, pathToJar, collector, runtimeState)
164152
}
165153
collector.showNotification()
166154
}

0 commit comments

Comments
 (0)