Skip to content

Commit 2df2a03

Browse files
committed
Check sdk in action
1 parent 74a0623 commit 2df2a03

File tree

4 files changed

+25
-17
lines changed

4 files changed

+25
-17
lines changed

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,6 @@ data class GenerateTestsModel(
7979
}
8080
var runGeneratedTestsWithCoverage : Boolean = false
8181
var enableSummariesGeneration : Boolean = true
82-
83-
val jdkVersion: JavaSdkVersion?
84-
get() = try {
85-
testModule.jdkVersion()
86-
} catch (e: IllegalStateException) {
87-
// Just ignore it here, notification will be shown in org.utbot.intellij.plugin.ui.utils.ModuleUtilsKt.jdkVersionBy
88-
null
89-
}
9082
}
9183

9284
val PsiClass.packageName: String

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ import org.utbot.intellij.plugin.ui.utils.testResourceRootTypes
141141
import org.utbot.intellij.plugin.ui.utils.testRootType
142142
import org.utbot.intellij.plugin.util.IntelliJApiHelper
143143
import org.utbot.intellij.plugin.util.extractFirstLevelMembers
144+
import org.utbot.intellij.plugin.util.findSdkVersion
144145

145146
private const val RECENTS_KEY = "org.utbot.recents"
146147

@@ -315,14 +316,8 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
315316
label?.let { add(it, BorderLayout.LINE_END) }
316317
})
317318

318-
private fun findSdkVersion(): JavaVersion {
319-
val moduleSdk = ModuleRootManager.getInstance(model.srcModule).sdk
320-
return JavaVersion.tryParse(moduleSdk?.versionString)
321-
?: error("Cannot define sdk version in module ${model.srcModule}")
322-
}
323-
324319
override fun createTitlePane(): JComponent? {
325-
val sdkVersion = findSdkVersion()
320+
val sdkVersion = findSdkVersion(model.srcModule)
326321
//TODO:SAT-1571 investigate Android Studio specific sdk issues
327322
if (sdkVersion.feature in minSupportedSdkVersion..maxSupportedSdkVersion || IntelliJApiHelper.isAndroidStudio()) return null
328323
isOKActionEnabled = false
@@ -374,7 +369,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
374369
val isEdited = ShowSettingsUtil.getInstance().editConfigurable(model.project, projectStructure)
375370
{ projectStructure.select(model.srcModule.name, ClasspathEditor.getName(), true) }
376371

377-
val sdkVersion = findSdkVersion()
372+
val sdkVersion = findSdkVersion(model.srcModule)
378373
val sdkFixed = isEdited && sdkVersion.feature in minSupportedSdkVersion..maxSupportedSdkVersion
379374
if (sdkFixed) {
380375
this@SdkNotificationPanel.isVisible = false
@@ -723,7 +718,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
723718
val libraryInProject =
724719
findFrameworkLibrary(model.project, model.testModule, selectedTestFramework, LibrarySearchScope.Project)
725720
val versionInProject = libraryInProject?.libraryName?.parseVersion()
726-
val sdkVersion: Int? = findSdkVersion().feature
721+
val sdkVersion = findSdkVersion(model.srcModule).feature
727722

728723
val libraryDescriptor = when (selectedTestFramework) {
729724
Junit4 -> jUnit4LibraryDescriptor(versionInProject)

utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/actions/GenerateTestsAction.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.intellij.refactoring.util.classMembers.MemberInfo
2121
import org.jetbrains.kotlin.idea.core.getPackage
2222
import org.jetbrains.kotlin.idea.core.util.toPsiDirectory
2323
import org.jetbrains.kotlin.idea.core.util.toPsiFile
24+
import org.jetbrains.kotlin.idea.util.module
2425
import org.utbot.intellij.plugin.util.extractFirstLevelMembers
2526
import org.utbot.intellij.plugin.util.isVisible
2627
import java.util.*
@@ -29,6 +30,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull
2930
import org.utbot.framework.plugin.api.util.LockFile
3031
import org.utbot.intellij.plugin.models.packageName
3132
import org.utbot.intellij.plugin.ui.InvalidClassNotifier
33+
import org.utbot.intellij.plugin.util.findSdkVersionOrNull
3234
import org.utbot.intellij.plugin.util.isAbstract
3335

3436
class GenerateTestsAction : AnAction(), UpdateInBackground {
@@ -164,6 +166,10 @@ class GenerateTestsAction : AnAction(), UpdateInBackground {
164166
}
165167

166168
private fun PsiClass.isInvalid(withWarnings: Boolean): Boolean {
169+
if (this.module?.let { findSdkVersionOrNull(it) } == null) {
170+
if (withWarnings) InvalidClassNotifier.notify("class out of module with defined sdk")
171+
}
172+
167173
val isAbstractOrInterface = this.isInterface || this.isAbstract
168174
if (isAbstractOrInterface) {
169175
if (withWarnings) InvalidClassNotifier.notify("abstract class or interface ${this.name}")
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.utbot.intellij.plugin.util
2+
3+
import com.intellij.openapi.module.Module
4+
import com.intellij.openapi.roots.ModuleRootManager
5+
import com.intellij.util.lang.JavaVersion
6+
7+
fun findSdkVersion(module:Module): JavaVersion =
8+
findSdkVersionOrNull(module) ?: error("Cannot define sdk version in module $module")
9+
10+
fun findSdkVersionOrNull(module: Module): JavaVersion? {
11+
val moduleSdk = ModuleRootManager.getInstance(module).sdk
12+
return JavaVersion.tryParse(moduleSdk?.versionString)
13+
}
14+
15+

0 commit comments

Comments
 (0)