mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gradle][kotlin] IDEA-354292 cleanup: move test verification methods into a base test class
GitOrigin-RevId: f65a3b5458b6e6507e933ffbab2b5b301142be20
This commit is contained in:
committed by
intellij-monorepo-bot
parent
dee5a9223b
commit
0deb09fadb
+47
@@ -0,0 +1,47 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.run.gradle
|
||||
|
||||
import com.intellij.execution.PsiLocation
|
||||
import com.intellij.execution.actions.ConfigurationContext
|
||||
import com.intellij.execution.actions.ConfigurationFromContext
|
||||
import com.intellij.execution.actions.ConfigurationFromContextImpl
|
||||
import com.intellij.testFramework.assertInstanceOf
|
||||
import com.intellij.testFramework.runInEdtAndWait
|
||||
import org.jetbrains.kotlin.gradle.AbstractKotlinGradleCodeInsightBaseTest
|
||||
import org.jetbrains.kotlin.idea.test.util.elementByOffset
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import org.jetbrains.plugins.gradle.service.execution.GradleRunConfiguration
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
abstract class AbstractKotlinGradleRunConfigurationProducerBaseTest : AbstractKotlinGradleCodeInsightBaseTest() {
|
||||
|
||||
protected fun verifyGradleConfigurationAtCaret(taskName: String) {
|
||||
runInEdtAndWait {
|
||||
codeInsightFixture.configureFromExistingVirtualFile(getFile("build.gradle.kts"))
|
||||
val location = PsiLocation(codeInsightFixture.elementByOffset)
|
||||
val context = ConfigurationContext.createEmptyContextForLocation(location)
|
||||
val configurationFromContext = context.configurationsFromContext?.singleOrNull()
|
||||
?: error("Unable to find a single configuration from context")
|
||||
verifyGradleRunConfiguration(configurationFromContext, taskName)
|
||||
verifyConfigurationProducer(configurationFromContext, context)
|
||||
}
|
||||
}
|
||||
|
||||
private fun verifyGradleRunConfiguration(configurationFromContext: ConfigurationFromContext, taskName: String) {
|
||||
val gradleConfiguration = assertInstanceOf<GradleRunConfiguration>(configurationFromContext.configuration)
|
||||
assertEquals(listOf(taskName), gradleConfiguration.settings.taskNames,
|
||||
"GradleRunConfiguration must contain only expected task name")
|
||||
assertEquals("${project.name} [$taskName]", gradleConfiguration.name)
|
||||
}
|
||||
|
||||
private fun verifyConfigurationProducer(
|
||||
configurationFromContext: ConfigurationFromContext,
|
||||
context: ConfigurationContext,
|
||||
) {
|
||||
val producer = configurationFromContext.safeAs<ConfigurationFromContextImpl>()?.configurationProducer
|
||||
?: error("Unable to find a RunConfigurationProducer for configuration")
|
||||
assertTrue(producer.isConfigurationFromContext(configurationFromContext.configuration, context),
|
||||
"Producer must be able to identify a configuration that was created by it")
|
||||
}
|
||||
}
|
||||
+2
-43
@@ -1,27 +1,15 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.kotlin.idea.run.gradle
|
||||
|
||||
import com.intellij.execution.PsiLocation
|
||||
import com.intellij.execution.actions.ConfigurationContext
|
||||
import com.intellij.execution.actions.ConfigurationFromContext
|
||||
import com.intellij.execution.actions.ConfigurationFromContextImpl
|
||||
import com.intellij.testFramework.assertInstanceOf
|
||||
import com.intellij.testFramework.runInEdtAndWait
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.AbstractKotlinGradleCodeInsightBaseTest
|
||||
import org.jetbrains.kotlin.idea.test.util.elementByOffset
|
||||
import org.jetbrains.kotlin.idea.testFramework.gradle.assumeThatKotlinDslScriptsModelImportIsSupported
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import org.jetbrains.plugins.gradle.service.execution.GradleRunConfiguration
|
||||
import org.jetbrains.plugins.gradle.testFramework.annotations.AllGradleVersionsSource
|
||||
import org.junit.jupiter.params.ParameterizedTest
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
/**
|
||||
* @see org.jetbrains.kotlin.idea.gradleJava.run.KotlinGradleTaskRunConfigurationProducer
|
||||
*/
|
||||
abstract class AbstractKotlinGradleTaskRunConfigurationProducerTest : AbstractKotlinGradleCodeInsightBaseTest() {
|
||||
abstract class AbstractKotlinGradleTaskRunConfigurationProducerTest : AbstractKotlinGradleRunConfigurationProducerBaseTest() {
|
||||
|
||||
@ParameterizedTest
|
||||
@AllGradleVersionsSource("""
|
||||
@@ -45,36 +33,7 @@ abstract class AbstractKotlinGradleTaskRunConfigurationProducerTest : AbstractKo
|
||||
assumeThatKotlinDslScriptsModelImportIsSupported(gradleVersion)
|
||||
testKotlinDslEmptyProject(gradleVersion) {
|
||||
writeTextAndCommit("build.gradle.kts", taskDefinition)
|
||||
verifyConfigurationAtCaret(taskName)
|
||||
verifyGradleConfigurationAtCaret(taskName)
|
||||
}
|
||||
}
|
||||
|
||||
private fun verifyConfigurationAtCaret(taskName: String) {
|
||||
runInEdtAndWait {
|
||||
codeInsightFixture.configureFromExistingVirtualFile(getFile("build.gradle.kts"))
|
||||
val location = PsiLocation(codeInsightFixture.elementByOffset)
|
||||
val context = ConfigurationContext.createEmptyContextForLocation(location)
|
||||
val configurationFromContext = context.configurationsFromContext?.singleOrNull()
|
||||
?: error("Unable to find a single configuration from context")
|
||||
verifyGradleRunConfiguration(configurationFromContext, taskName)
|
||||
verifyConfigurationProducer(configurationFromContext, context)
|
||||
}
|
||||
}
|
||||
|
||||
private fun verifyGradleRunConfiguration(configurationFromContext: ConfigurationFromContext, taskName: String) {
|
||||
val gradleConfiguration = assertInstanceOf<GradleRunConfiguration>(configurationFromContext.configuration)
|
||||
assertEquals(listOf(taskName), gradleConfiguration.settings.taskNames,
|
||||
"GradleRunConfiguration must contain only expected task name")
|
||||
assertEquals("${project.name} [$taskName]", gradleConfiguration.name)
|
||||
}
|
||||
|
||||
private fun verifyConfigurationProducer(
|
||||
configurationFromContext: ConfigurationFromContext,
|
||||
context: ConfigurationContext,
|
||||
) {
|
||||
val producer = configurationFromContext.safeAs<ConfigurationFromContextImpl>()?.configurationProducer
|
||||
?: error("Unable to find a RunConfigurationProducer for configuration")
|
||||
assertTrue(producer.isConfigurationFromContext(configurationFromContext.configuration, context),
|
||||
"Producer must be able to identify a configuration that was created by it")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user