[tests] Clean-up AbstractReferenceResolveTest.kt

Extract local `getRenderedReferencesForCaretPosition` function
into a member function for clarity
This commit is contained in:
Roman Golyshev
2024-01-25 11:10:28 +01:00
committed by Space Team
parent fb225f5f20
commit e5c6a5bac3
@@ -56,23 +56,10 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() {
testServices.assertions.fail { "No carets were specified for resolve test" }
}
fun getRenderedReferencesForCaretPosition(caret: CaretMarker): String {
val ktReferences = findReferencesAtCaret(ktFile, caret.offset)
if (ktReferences.isEmpty()) {
testServices.assertions.fail { "No references at caret $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) }
}
return resolvedTo
val resolutionAtPositions = carets.map { caret ->
caret to renderResolvedReferencesForCaretPosition(ktFile, caret, mainModule, testServices)
}
val resolutionAtPositions = carets.map { it to getRenderedReferencesForCaretPosition(it) }
val actual = if (resolutionAtPositions.size == 1) {
val (_, singleResolutionResult) = resolutionAtPositions.single()
@@ -86,6 +73,26 @@ abstract class AbstractReferenceResolveTest : AbstractAnalysisApiBasedTest() {
testServices.assertions.assertEqualsToTestDataFileSibling(actual)
}
private fun renderResolvedReferencesForCaretPosition(
ktFile: KtFile,
caret: CaretMarker,
mainModule: TestModule,
testServices: TestServices,
): String {
val ktReferences = findReferencesAtCaret(ktFile, caret.offset)
if (ktReferences.isEmpty()) {
testServices.assertions.fail { "No references at caret $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) }
}
return resolvedTo
}
protected open fun <R> analyzeReferenceElement(element: KtElement, mainModule: TestModule, action: KtAnalysisSession.() -> R): R {
return analyseForTest(element) { action() }
}