[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.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() {
|
||||
+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.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() {
|
||||
-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.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)
|
||||
+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.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")
|
||||
|
||||
Reference in New Issue
Block a user