[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
This commit is contained in:
Roman Golyshev
2024-01-18 16:01:51 +01:00
committed by Space Team
parent 304112cd8a
commit 0c70119637
@@ -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)
}