Guard PatternConfigurationProducer usages with JUnit presence check (EA-122472)

This commit is contained in:
Nikolay Krasko
2018-07-12 18:07:45 +03:00
parent 752cdedfe2
commit ee5d357336
@@ -19,6 +19,8 @@ import com.intellij.execution.JavaRunConfigurationExtensionManager
import com.intellij.execution.actions.ConfigurationContext import com.intellij.execution.actions.ConfigurationContext
import com.intellij.execution.actions.RunConfigurationProducer import com.intellij.execution.actions.RunConfigurationProducer
import com.intellij.execution.junit.PatternConfigurationProducer import com.intellij.execution.junit.PatternConfigurationProducer
import com.intellij.ide.plugins.PluginManager
import com.intellij.openapi.extensions.PluginId.getId
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration import com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.util.Ref import com.intellij.openapi.util.Ref
@@ -29,13 +31,16 @@ import org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigu
import org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer import org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer
import org.jetbrains.plugins.gradle.util.GradleConstants import org.jetbrains.plugins.gradle.util.GradleConstants
class KotlinTestClassGradleConfigurationProducer : TestClassGradleConfigurationProducer() { private val IS_JUNIT_INSTALLED by lazy { PluginManager.isPluginInstalled(getId("JUnit")) }
class KotlinTestClassGradleConfigurationProducer : TestClassGradleConfigurationProducer() {
override fun doSetupConfigurationFromContext( override fun doSetupConfigurationFromContext(
configuration: ExternalSystemRunConfiguration, configuration: ExternalSystemRunConfiguration,
context: ConfigurationContext, context: ConfigurationContext,
sourceElement: Ref<PsiElement> sourceElement: Ref<PsiElement>
): Boolean { ): Boolean {
if (!IS_JUNIT_INSTALLED) return false
val contextLocation = context.location ?: return false val contextLocation = context.location ?: return false
val module = context.module ?: return false val module = context.module ?: return false
@@ -63,6 +68,8 @@ class KotlinTestClassGradleConfigurationProducer : TestClassGradleConfigurationP
} }
override fun doIsConfigurationFromContext(configuration: ExternalSystemRunConfiguration, context: ConfigurationContext): Boolean { override fun doIsConfigurationFromContext(configuration: ExternalSystemRunConfiguration, context: ConfigurationContext): Boolean {
if (!IS_JUNIT_INSTALLED) return false
val leaf = context.location?.psiElement ?: return false val leaf = context.location?.psiElement ?: return false
if (context.module == null) return false if (context.module == null) return false
@@ -92,14 +99,14 @@ class KotlinTestClassGradleConfigurationProducer : TestClassGradleConfigurationP
} }
} }
class KotlinTestMethodGradleConfigurationProducer class KotlinTestMethodGradleConfigurationProducer : TestMethodGradleConfigurationProducer() {
: TestMethodGradleConfigurationProducer() {
override fun doSetupConfigurationFromContext( override fun doSetupConfigurationFromContext(
configuration: ExternalSystemRunConfiguration, configuration: ExternalSystemRunConfiguration,
context: ConfigurationContext, context: ConfigurationContext,
sourceElement: Ref<PsiElement> sourceElement: Ref<PsiElement>
): Boolean { ): Boolean {
if (!IS_JUNIT_INSTALLED) return false
val contextLocation = context.location ?: return false val contextLocation = context.location ?: return false
if (context.module == null) return false if (context.module == null) return false
@@ -121,6 +128,8 @@ class KotlinTestMethodGradleConfigurationProducer
} }
override fun doIsConfigurationFromContext(configuration: ExternalSystemRunConfiguration, context: ConfigurationContext): Boolean { override fun doIsConfigurationFromContext(configuration: ExternalSystemRunConfiguration, context: ConfigurationContext): Boolean {
if (!IS_JUNIT_INSTALLED) return false
if (RunConfigurationProducer.getInstance(PatternConfigurationProducer::class.java).isMultipleElementsSelected(context)) { if (RunConfigurationProducer.getInstance(PatternConfigurationProducer::class.java).isMultipleElementsSelected(context)) {
return false return false
} }