From 0c70119637435855513b57f0b4759a01cedd4a24 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Thu, 18 Jan 2024 16:01:51 +0100 Subject: [PATCH] [tests] Refactor `AbstractReferenceResolveTest`. Part 2 Extract processing a single caret into a function, so it would be easier to process multiple carets in the future Required for KT-65152 and KT-62695 --- .../AbstractReferenceResolveTest.kt | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceResolveTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceResolveTest.kt index 8274e7a6929..b4d0856048e 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceResolveTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/references/AbstractReferenceResolveTest.kt @@ -51,18 +51,25 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() { } protected fun doTestByFileStructure(ktFile: KtFile, caretPosition: Int, mainModule: TestModule, testServices: TestServices) { - val ktReferences = findReferencesAtCaret(ktFile, caretPosition) - if (ktReferences.isEmpty()) { - testServices.assertions.fail { "No references at caret found" } - } - - val resolvedTo = analyzeReferenceElement(ktReferences.first().element, mainModule) { - val symbols = ktReferences.flatMap { it.resolveToSymbols() } - val renderPsiClassName = Directives.RENDER_PSI_CLASS_NAME in mainModule.directives - renderResolvedTo(symbols, renderPsiClassName, renderingOptions) { getAdditionalSymbolInfo(it) } + + fun getRenderedReferencesForCaretPosition(caretPosition: Int): String { + val ktReferences = findReferencesAtCaret(ktFile, caretPosition) + if (ktReferences.isEmpty()) { + testServices.assertions.fail { "No references at caret position $caretPosition found" } + } + + val resolvedTo = analyzeReferenceElement(ktReferences.first().element, mainModule) { + val symbols = ktReferences.flatMap { it.resolveToSymbols() } + val renderPsiClassName = Directives.RENDER_PSI_CLASS_NAME in mainModule.directives + renderResolvedTo(symbols, renderPsiClassName, renderingOptions) { getAdditionalSymbolInfo(it) } + } + + return resolvedTo } + val resolvedTo = getRenderedReferencesForCaretPosition(caretPosition) val actual = "Resolved to:\n$resolvedTo" + testServices.assertions.assertEqualsToTestDataFileSibling(actual) }