[Analysis API test] extract AbstractPsiDeclarationProviderTest
^KT-64805
This commit is contained in:
committed by
Space Team
parent
0f3f0ff080
commit
6145255e2c
+2
-2
@@ -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.FrontendKind;
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
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.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.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
|
|||||||
@SuppressWarnings("all")
|
@SuppressWarnings("all")
|
||||||
@TestMetadata("analysis/analysis-api/testData/standalone/binary")
|
@TestMetadata("analysis/analysis-api/testData/standalone/binary")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
public class FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderBinaryTestGenerated extends AbstractPsiDeclarationProviderBinaryTest {
|
public class FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public AnalysisApiTestConfigurator getConfigurator() {
|
public AnalysisApiTestConfigurator getConfigurator() {
|
||||||
+2
-2
@@ -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.FrontendKind;
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode;
|
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.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.jetbrains.kotlin.test.TestMetadata;
|
||||||
import org.junit.jupiter.api.Nested;
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
|
|||||||
@SuppressWarnings("all")
|
@SuppressWarnings("all")
|
||||||
@TestMetadata("analysis/analysis-api/testData/standalone/source")
|
@TestMetadata("analysis/analysis-api/testData/standalone/source")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
public class FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderSourceTestGenerated extends AbstractPsiDeclarationProviderSourceTest {
|
public class FirStandaloneNormalAnalysisSourceModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public AnalysisApiTestConfigurator getConfigurator() {
|
public AnalysisApiTestConfigurator getConfigurator() {
|
||||||
-45
@@ -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",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+6
-7
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.test.model.TestModule
|
|||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import org.jetbrains.kotlin.test.services.assertions
|
import org.jetbrains.kotlin.test.services.assertions
|
||||||
|
|
||||||
abstract class AbstractPsiDeclarationProviderBinaryTest : AbstractAnalysisApiBasedTest() {
|
abstract class AbstractPsiDeclarationProviderTest : AbstractAnalysisApiBasedTest() {
|
||||||
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
val caretPosition = testServices.expressionMarkerProvider.getCaretPosition(mainFile)
|
val caretPosition = testServices.expressionMarkerProvider.getCaretPosition(mainFile)
|
||||||
val ktReferences = findReferencesAtCaret(mainFile, caretPosition)
|
val ktReferences = findReferencesAtCaret(mainFile, caretPosition)
|
||||||
@@ -21,12 +21,11 @@ abstract class AbstractPsiDeclarationProviderBinaryTest : AbstractAnalysisApiBas
|
|||||||
}
|
}
|
||||||
|
|
||||||
val element = ktReferences.first().element
|
val element = ktReferences.first().element
|
||||||
val resolvedTo =
|
val resolvedTo = analyseForTest(element) {
|
||||||
analyseForTest(element) {
|
val symbols = ktReferences.flatMap { it.resolveToSymbols() }
|
||||||
val symbols = ktReferences.flatMap { it.resolveToSymbols() }
|
val psiElements = symbols.mapNotNull { psiForTest(it, element.project) }
|
||||||
val psiElements = symbols.mapNotNull { psiForTest(it, element.project) }
|
psiElements.joinToString(separator = "\n") { TestPsiElementRenderer.render(it) }
|
||||||
psiElements.joinToString(separator = "\n") { TestPsiElementRenderer.render(it) }
|
}
|
||||||
}
|
|
||||||
|
|
||||||
val actual = "Resolved to:\n$resolvedTo"
|
val actual = "Resolved to:\n$resolvedTo"
|
||||||
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
|
||||||
+3
-4
@@ -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.AbstractAnalysisApiSubstitutorsTest
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.types.AbstractBuiltInTypeTest
|
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.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.AbstractPsiDeclarationProviderTest
|
||||||
import org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.components.psiDeclarationProvider.AbstractPsiDeclarationProviderSourceTest
|
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode
|
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.AnalysisSessionMode
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind
|
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind
|
||||||
@@ -239,13 +238,13 @@ private fun AnalysisApiTestGroup.generateAnalysisApiNonComponentsTests() {
|
|||||||
private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() {
|
private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() {
|
||||||
group("standalone") {
|
group("standalone") {
|
||||||
test(
|
test(
|
||||||
AbstractPsiDeclarationProviderSourceTest::class,
|
AbstractPsiDeclarationProviderTest::class,
|
||||||
filter = testModuleKindIs(TestModuleKind.Source)
|
filter = testModuleKindIs(TestModuleKind.Source)
|
||||||
) {
|
) {
|
||||||
model(it, "source")
|
model(it, "source")
|
||||||
}
|
}
|
||||||
test(
|
test(
|
||||||
AbstractPsiDeclarationProviderBinaryTest::class,
|
AbstractPsiDeclarationProviderTest::class,
|
||||||
filter = testModuleKindIs(TestModuleKind.LibraryBinary)
|
filter = testModuleKindIs(TestModuleKind.LibraryBinary)
|
||||||
) {
|
) {
|
||||||
model(it, "binary")
|
model(it, "binary")
|
||||||
|
|||||||
Reference in New Issue
Block a user