From 6145255e2c0e8c22d8285e0a8b5a19a162849079 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 9 Jan 2024 16:40:35 +0100 Subject: [PATCH] [Analysis API test] extract AbstractPsiDeclarationProviderTest ^KT-64805 --- ...ePsiDeclarationProviderTestGenerated.java} | 4 +- ...ePsiDeclarationProviderTestGenerated.java} | 4 +- ...bstractPsiDeclarationProviderSourceTest.kt | 45 ------------------- ... => AbstractPsiDeclarationProviderTest.kt} | 13 +++--- .../tests/analysis/api/analysisApi.kt | 7 ++- 5 files changed, 13 insertions(+), 60 deletions(-) rename analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/{FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated.java => FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java} (98%) rename analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/{FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated.java => FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated.java} (97%) delete mode 100644 analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderSourceTest.kt rename analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/{AbstractPsiDeclarationProviderBinaryTest.kt => AbstractPsiDeclarationProviderTest.kt} (74%) diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java similarity index 98% rename from analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated.java rename to analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java index ab9bb391530..c65d85aa64f 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModul import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; -import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderBinaryTest; +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderTest; import org.jetbrains.kotlin.test.TestMetadata; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -27,7 +27,7 @@ import java.util.regex.Pattern; @SuppressWarnings("all") @TestMetadata("analysis/analysis-api/testData/standalone/binary") @TestDataPath("$PROJECT_ROOT") -public class FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated extends AbstractPsiDeclarationProviderBinaryTest { +public class FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest { @NotNull @Override public AnalysisApiTestConfigurator getConfigurator() { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated.java similarity index 97% rename from analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated.java rename to analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated.java index 62450424613..8cce38d4a0e 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated.java @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModul import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; -import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderSourceTest; +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderTest; import org.jetbrains.kotlin.test.TestMetadata; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -27,7 +27,7 @@ import java.util.regex.Pattern; @SuppressWarnings("all") @TestMetadata("analysis/analysis-api/testData/standalone/source") @TestDataPath("$PROJECT_ROOT") -public class FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated extends AbstractPsiDeclarationProviderSourceTest { +public class FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest { @NotNull @Override public AnalysisApiTestConfigurator getConfigurator() { diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderSourceTest.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderSourceTest.kt deleted file mode 100644 index bb9a1e64772..00000000000 --- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderSourceTest.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider - -import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest -import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider -import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer -import org.jetbrains.kotlin.test.model.TestModule -import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.services.assertions - -abstract class AbstractPsiDeclarationProviderSourceTest : AbstractAnalysisApiBasedTest() { - override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { - val caretPosition = testServices.expressionMarkerProvider.getCaretPosition(mainFile) - val ktReferences = findReferencesAtCaret(mainFile, caretPosition) - if (ktReferences.isEmpty()) { - testServices.assertions.fail { "No references at caret found" } - } - - val element = ktReferences.first().element - val resolvedTo = - analyseForTest(element) { - val symbols = ktReferences.flatMap { it.resolveToSymbols() } - val psiElements = symbols.mapNotNull { psiForTest(it, element.project) } - psiElements.joinToString(separator = "\n") { TestPsiElementRenderer.render(it) } - } - - if (Directives.UNRESOLVED_REFERENCE in mainModule.directives) { - return - } - - val actual = "Resolved to:\n$resolvedTo" - testServices.assertions.assertEqualsToTestDataFileSibling(actual) - } - - private object Directives : SimpleDirectivesContainer() { - val UNRESOLVED_REFERENCE by directive( - "Reference should be unresolved", - ) - } -} \ No newline at end of file diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderBinaryTest.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderTest.kt similarity index 74% rename from analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderBinaryTest.kt rename to analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderTest.kt index 3112b89f642..507cf14941d 100644 --- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderBinaryTest.kt +++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/components/psiDeclarationProvider/AbstractPsiDeclarationProviderTest.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractPsiDeclarationProviderBinaryTest : AbstractAnalysisApiBasedTest() { +abstract class AbstractPsiDeclarationProviderTest : AbstractAnalysisApiBasedTest() { override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val caretPosition = testServices.expressionMarkerProvider.getCaretPosition(mainFile) val ktReferences = findReferencesAtCaret(mainFile, caretPosition) @@ -21,12 +21,11 @@ abstract class AbstractPsiDeclarationProviderBinaryTest : AbstractAnalysisApiBas } val element = ktReferences.first().element - val resolvedTo = - analyseForTest(element) { - val symbols = ktReferences.flatMap { it.resolveToSymbols() } - val psiElements = symbols.mapNotNull { psiForTest(it, element.project) } - psiElements.joinToString(separator = "\n") { TestPsiElementRenderer.render(it) } - } + val resolvedTo = analyseForTest(element) { + val symbols = ktReferences.flatMap { it.resolveToSymbols() } + val psiElements = symbols.mapNotNull { psiForTest(it, element.project) } + psiElements.joinToString(separator = "\n") { TestPsiElementRenderer.render(it) } + } val actual = "Resolved to:\n$resolvedTo" testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt index 63d5af9d777..8c8fde2f53d 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt @@ -59,8 +59,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.* import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractAnalysisApiSubstitutorsTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractTypeByDeclarationReturnTypeTest -import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderBinaryTest -import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderSourceTest +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderTest import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind @@ -239,13 +238,13 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() { private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() { group("standalone") { test( - AbstractPsiDeclarationProviderSourceTest::class, + AbstractPsiDeclarationProviderTest::class, filter = testModuleKindIs(TestModuleKind.Source) ) { model(it, "source") } test( - AbstractPsiDeclarationProviderBinaryTest::class, + AbstractPsiDeclarationProviderTest::class, filter = testModuleKindIs(TestModuleKind.LibraryBinary) ) { model(it, "binary")