diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt index 74ffc966cd..8ad612435a 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt @@ -52,7 +52,7 @@ import org.utbot.engine.util.mockListeners.ForceStaticMockListener import org.utbot.framework.plugin.api.testFlow import org.utbot.framework.plugin.services.WorkingDirService import org.utbot.intellij.plugin.settings.Settings -import org.utbot.intellij.plugin.ui.utils.isGradle +import org.utbot.intellij.plugin.ui.utils.isBuildWithGradle import org.utbot.intellij.plugin.ui.utils.suitableTestSourceRoots import org.utbot.intellij.plugin.util.PluginWorkingDirProvider import org.utbot.intellij.plugin.util.isAbstract @@ -86,7 +86,7 @@ object UtTestsDialogProcessor { // we want to start the child process in the same directory as the test runner WorkingDirService.workingDirProvider = PluginWorkingDirProvider(project) - if (project.isGradle() && testModules.flatMap { it.suitableTestSourceRoots() }.isEmpty()) { + if (project.isBuildWithGradle && testModules.flatMap { it.suitableTestSourceRoots() }.isEmpty()) { val errorMessage = """ No test source roots found in the project.
Please, create or configure at least one test source root. diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt index 27784e949f..bfc595acd9 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt @@ -130,7 +130,7 @@ import org.utbot.intellij.plugin.ui.utils.addSourceRootIfAbsent import org.utbot.intellij.plugin.ui.utils.allLibraries import org.utbot.intellij.plugin.ui.utils.findFrameworkLibrary import org.utbot.intellij.plugin.ui.utils.getOrCreateTestResourcesPath -import org.utbot.intellij.plugin.ui.utils.isGradle +import org.utbot.intellij.plugin.ui.utils.isBuildWithGradle import org.utbot.intellij.plugin.ui.utils.kotlinTargetPlatform import org.utbot.intellij.plugin.ui.utils.parseVersion import org.utbot.intellij.plugin.ui.utils.testResourceRootTypes @@ -436,7 +436,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m val testRoot = getTestRoot() ?: return ValidationInfo("Test source root is not configured", testSourceFolderField.childComponent) - if (!model.project.isGradle() && findReadOnlyContentEntry(testRoot) == null) { + if (!model.project.isBuildWithGradle && findReadOnlyContentEntry(testRoot) == null) { return ValidationInfo("Test source root is located out of content entry", testSourceFolderField.childComponent) } diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/components/TestFolderComboWithBrowseButton.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/components/TestFolderComboWithBrowseButton.kt index cc1937546a..fffec1a6cc 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/components/TestFolderComboWithBrowseButton.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/components/TestFolderComboWithBrowseButton.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.util.projectStructure.allModules import org.utbot.common.PathUtil import org.utbot.intellij.plugin.models.GenerateTestsModel import org.utbot.intellij.plugin.ui.utils.addDedicatedTestRoot -import org.utbot.intellij.plugin.ui.utils.isGradle +import org.utbot.intellij.plugin.ui.utils.isBuildWithGradle import org.utbot.intellij.plugin.ui.utils.suitableTestSourceRoots class TestFolderComboWithBrowseButton(private val model: GenerateTestsModel) : ComboboxWithBrowseButton() { @@ -25,7 +25,7 @@ class TestFolderComboWithBrowseButton(private val model: GenerateTestsModel) : C private val SET_TEST_FOLDER = "set test folder" init { - if (model.project.isGradle()) { + if (model.project.isBuildWithGradle) { setButtonEnabled(false) button.toolTipText = "Please define custom test source root via Gradle" } @@ -51,10 +51,10 @@ class TestFolderComboWithBrowseButton(private val model: GenerateTestsModel) : C } } - val testRoots = model.potentialTestModules - .flatMap { it.suitableTestSourceRoots().toList() } - .toMutableList() + val suggestedModules = + if (model.project.isBuildWithGradle) model.project.allModules() else model.potentialTestModules + val testRoots = suggestedModules.flatMap { it.suitableTestSourceRoots().toList() }.toMutableList() // this method is blocked for Gradle, where multiple test modules can exist model.testModule.addDedicatedTestRoot(testRoots) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/utils/ModuleUtils.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/utils/ModuleUtils.kt index d8b8e8980e..efbb684ee2 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/utils/ModuleUtils.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/utils/ModuleUtils.kt @@ -31,7 +31,6 @@ import org.jetbrains.android.sdk.AndroidSdkType import org.jetbrains.jps.model.module.JpsModuleSourceRootType import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider import org.jetbrains.kotlin.config.TestResourceKotlinRootType -import org.jetbrains.kotlin.idea.util.projectStructure.allModules import org.jetbrains.kotlin.platform.TargetPlatformVersion private val logger = KotlinLogging.logger {} @@ -87,10 +86,6 @@ fun Module.getOrCreateSarifReportsPath(testSourceRoot: VirtualFile?): Path { * Find test modules by current source module. */ fun Module.testModules(project: Project): List { - if (project.isGradle()) { - return project.allModules() - } - var testModules = findPotentialModulesForTests(project, this) val testRootUrls = testModules.flatMap { it.suitableTestSourceRoots() } @@ -152,12 +147,13 @@ private fun Module.suitableTestSourceFolders(codegenLanguage: CodegenLanguage): // Heuristics: User is more likely to choose the shorter path .sortedBy { it.url.length } } -fun Project.isGradle() = GradleProjectInfo.getInstance(this).isBuildWithGradle +val Project.isBuildWithGradle + get() = GradleProjectInfo.getInstance(this).isBuildWithGradle private const val dedicatedTestSourceRootName = "utbot_tests" fun Module.addDedicatedTestRoot(testSourceRoots: MutableList): VirtualFile? { // Don't suggest new test source roots for Gradle project where 'unexpected' test roots won't work - if (project.isGradle()) return null + if (project.isBuildWithGradle) return null // Dedicated test root already exists if (testSourceRoots.any { file -> file.name == dedicatedTestSourceRootName }) return null