@@ -36,7 +36,6 @@ import com.intellij.openapi.application.runWriteAction
3636import com.intellij.openapi.command.WriteCommandAction
3737import com.intellij.openapi.components.service
3838import com.intellij.openapi.options.ShowSettingsUtil
39- import com.intellij.openapi.projectRoots.JavaSdkVersion
4039import com.intellij.openapi.roots.ContentEntry
4140import com.intellij.openapi.roots.DependencyScope
4241import com.intellij.openapi.roots.ExternalLibraryDescriptor
@@ -48,7 +47,6 @@ import com.intellij.openapi.ui.DialogPanel
4847import com.intellij.openapi.ui.DialogWrapper
4948import com.intellij.openapi.ui.Messages
5049import com.intellij.openapi.ui.ValidationInfo
51- import com.intellij.openapi.ui.popup.IconButton
5250import com.intellij.openapi.vfs.VfsUtil
5351import com.intellij.openapi.vfs.VfsUtilCore.urlToPath
5452import com.intellij.openapi.vfs.VirtualFile
@@ -76,12 +74,8 @@ import com.intellij.util.IncorrectOperationException
7674import com.intellij.util.io.exists
7775import com.intellij.util.lang.JavaVersion
7876import com.intellij.util.ui.JBUI
79- import com.intellij.util.ui.JBUI.Borders.empty
80- import com.intellij.util.ui.JBUI.Borders.merge
81- import com.intellij.util.ui.JBUI.scale
8277import com.intellij.util.ui.JBUI.size
8378import com.intellij.util.ui.UIUtil
84- import com.intellij.util.ui.components.BorderLayoutPanel
8579import java.awt.BorderLayout
8680import java.nio.file.Files
8781import java.nio.file.Path
@@ -225,6 +219,13 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
225219 contextHelpLabel?.let { add(it, BorderLayout .LINE_END ) }
226220 })
227221
222+ private fun findSdkVersion (): Int {
223+ val projectSdk = ModuleRootManager .getInstance(model.testModule).sdk
224+ val sdkVersion = JavaVersion .tryParse(projectSdk?.versionString)
225+ ? : error(" No sdk found in ${model.testModule} " )
226+ return sdkVersion.feature
227+ }
228+
228229 private fun findTestPackageComboValue (): String {
229230 val packageNames = model.srcClasses.map { it.packageName }.distinct()
230231 return if (packageNames.size == 1 ) packageNames.first() else SAME_PACKAGE_LABEL
@@ -671,9 +672,9 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
671672
672673 parametrizedTestSources.addActionListener { event ->
673674 val comboBox = event.source as ComboBox <* >
674- val item = comboBox.item as ParametrizedTestSource
675+ val parametrizedTestSource = comboBox.item as ParametrizedTestSource
675676
676- val areMocksSupported = item == ParametrizedTestSource .DO_NOT_PARAMETRIZE
677+ val areMocksSupported = parametrizedTestSource == ParametrizedTestSource .DO_NOT_PARAMETRIZE
677678
678679 mockStrategies.isEnabled = areMocksSupported
679680 staticsMocking.isEnabled = areMocksSupported && mockStrategies.item != MockStrategyApi .NO_MOCKS
@@ -684,7 +685,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
684685 staticsMocking.item = NoStaticMocking
685686 }
686687
687- updateTestFrameworksList(item )
688+ updateTestFrameworksList(parametrizedTestSource )
688689 }
689690
690691 cbSpecifyTestPackage.addActionListener {
@@ -713,10 +714,17 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m
713714 // We would like to remove JUnit4 from framework list in parametrized mode
714715 private fun updateTestFrameworksList (parametrizedTestSource : ParametrizedTestSource ) {
715716 // We do not support parameterized tests for JUnit4
716- val enabledTestFrameworks = when (parametrizedTestSource) {
717+ var enabledTestFrameworks = when (parametrizedTestSource) {
717718 ParametrizedTestSource .DO_NOT_PARAMETRIZE -> TestFramework .allItems
718719 ParametrizedTestSource .PARAMETRIZE -> TestFramework .allItems.filterNot { it == Junit4 }
719720 }
721+
722+ // Will be removed after gradle-intelij-plugin version update upper than 2020.2
723+ // TestNg will be reverted after https://github.com/UnitTestBot/UTBotJava/issues/309
724+ if (findSdkVersion() < 11 ) {
725+ enabledTestFrameworks = enabledTestFrameworks.filterNot { it == TestNg }
726+ }
727+
720728 var defaultItem = when (parametrizedTestSource) {
721729 ParametrizedTestSource .DO_NOT_PARAMETRIZE -> TestFramework .defaultItem
722730 ParametrizedTestSource .PARAMETRIZE -> TestFramework .parametrizedDefaultItem
0 commit comments