From ebd72b26b43c22dd6770cf5f317e1c93c12041e2 Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Mon, 12 Feb 2024 09:58:46 +0100 Subject: [PATCH] [jvm] Add documentation JVM test API GitOrigin-RevId: a05f30bea33866ef770cc6db081c7ec7426fd083 --- .../testFramework/JvmSdkInspectionTestBase.kt | 12 ++++++++++-- .../analysis/testFramework/JvmGoToRelatedTestBase.kt | 3 +++ .../analysis/testFramework/JvmInspectionTestBase.kt | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/jvm/jvm-analysis-internal-testFramework/src/com/intellij/jvm/analysis/internal/testFramework/JvmSdkInspectionTestBase.kt b/jvm/jvm-analysis-internal-testFramework/src/com/intellij/jvm/analysis/internal/testFramework/JvmSdkInspectionTestBase.kt index 637b793da45b..f27f3d346d9c 100644 --- a/jvm/jvm-analysis-internal-testFramework/src/com/intellij/jvm/analysis/internal/testFramework/JvmSdkInspectionTestBase.kt +++ b/jvm/jvm-analysis-internal-testFramework/src/com/intellij/jvm/analysis/internal/testFramework/JvmSdkInspectionTestBase.kt @@ -7,13 +7,21 @@ import com.intellij.testFramework.IdeaTestUtil import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture +/** + * A base test class that allows setting language level and mock SDK. + */ abstract class JvmSdkInspectionTestBase : JvmInspectionTestBase() { - open val languageLevel: LanguageLevel = LanguageLevel.HIGHEST - + /** + * The mock JDK to use. + * When the mock JDK for this language level is not available, the mock SDK will be chosen according to [IdeaTestUtil.getMockJdk]. + */ open val sdkLevel: LanguageLevel = LanguageLevel.HIGHEST override fun getProjectDescriptor(): LightProjectDescriptor = ProjectDescriptor(sdkLevel) + /** + * Sets the current project and module language level to [languageLevel]. + */ protected fun JavaCodeInsightTestFixture.setLanguageLevel(languageLevel: LanguageLevel) { LanguageLevelProjectExtension.getInstance(project).languageLevel = languageLevel IdeaTestUtil.setModuleLanguageLevel(myFixture.module, languageLevel, testRootDisposable) diff --git a/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmGoToRelatedTestBase.kt b/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmGoToRelatedTestBase.kt index b0d952ab6337..0abf5f884189 100644 --- a/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmGoToRelatedTestBase.kt +++ b/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmGoToRelatedTestBase.kt @@ -4,6 +4,9 @@ import com.intellij.ide.actions.GotoRelatedSymbolAction import com.intellij.navigation.GotoRelatedItem import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture +/** + * A test base for testing [com.intellij.navigation.GotoRelatedProvider] implementations in all JVM languages. + */ abstract class JvmGoToRelatedTestBase : LightJvmCodeInsightFixtureTestCase() { protected fun JavaCodeInsightTestFixture.testGoToRelatedAction( lang: JvmLanguage, diff --git a/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmInspectionTestBase.kt b/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmInspectionTestBase.kt index 797940aa1432..a1f3ca1aee25 100644 --- a/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmInspectionTestBase.kt +++ b/jvm/jvm-analysis-testFramework/src/com/intellij/jvm/analysis/testFramework/JvmInspectionTestBase.kt @@ -9,6 +9,9 @@ import com.intellij.testFramework.InspectionTestUtil import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture +/** + * A base class for testing JVM inspections. + */ abstract class JvmInspectionTestBase : LightJvmCodeInsightFixtureTestCase() { abstract val inspection: InspectionProfileEntry