From 0deb09fadb6c2711efbbc4f5d82d28056e3b63e2 Mon Sep 17 00:00:00 2001 From: Nikita Biriukov Date: Thu, 27 Jun 2024 18:17:42 +0200 Subject: [PATCH] [gradle][kotlin] IDEA-354292 cleanup: move test verification methods into a base test class GitOrigin-RevId: f65a3b5458b6e6507e933ffbab2b5b301142be20 --- ...nGradleRunConfigurationProducerBaseTest.kt | 47 +++++++++++++++++++ ...nGradleTaskRunConfigurationProducerTest.kt | 45 +----------------- 2 files changed, 49 insertions(+), 43 deletions(-) create mode 100644 plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleRunConfigurationProducerBaseTest.kt diff --git a/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleRunConfigurationProducerBaseTest.kt b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleRunConfigurationProducerBaseTest.kt new file mode 100644 index 000000000000..a73badedde85 --- /dev/null +++ b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleRunConfigurationProducerBaseTest.kt @@ -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(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()?.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") + } +} diff --git a/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleTaskRunConfigurationProducerTest.kt b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleTaskRunConfigurationProducerTest.kt index d3c3d51f4e89..5ddeec6a8d69 100644 --- a/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleTaskRunConfigurationProducerTest.kt +++ b/plugins/kotlin/gradle/gradle-java/tests.shared/test/org/jetbrains/kotlin/idea/run/gradle/AbstractKotlinGradleTaskRunConfigurationProducerTest.kt @@ -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(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()?.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") - } }