[Analysis API Standalone] extract a assertIsCallOf test utility to reused in other test modules

^KT-63126
This commit is contained in:
Ilya Kirillov
2023-11-02 17:21:14 +01:00
committed by Space Team
parent 890fbd6b0b
commit 1c17f4a835
2 changed files with 18 additions and 10 deletions
@@ -209,16 +209,6 @@ class StandaloneSessionBuilderTest {
}
private fun KtCallExpression.assertIsCallOf(callableId: CallableId) {
analyze(this) {
val ktCallInfo = resolveCall()
Assertions.assertInstanceOf(KtSuccessCallInfo::class.java, ktCallInfo); ktCallInfo as KtSuccessCallInfo
val symbol = ktCallInfo.successfulFunctionCallOrNull()?.symbol
Assertions.assertInstanceOf(KtFunctionSymbol::class.java, symbol); symbol as KtFunctionSymbol
Assertions.assertEquals(callableId, symbol.callableIdIfNonLocal)
}
}
private fun KtTypeReference.assertIsReferenceTo(classId: ClassId) {
analyze(this) {
val actualClassId = getKtType().expandedClassSymbol?.classIdIfNonLocal
@@ -5,6 +5,13 @@
package org.jetbrains.kotlin.analysis.api.standalone.fir.test.cases.session.builder
import org.jetbrains.kotlin.analysis.api.analyze
import org.jetbrains.kotlin.analysis.api.calls.KtSuccessCallInfo
import org.jetbrains.kotlin.analysis.api.calls.successfulFunctionCallOrNull
import org.jetbrains.kotlin.analysis.api.calls.symbol
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.test.MockLibraryUtil
import org.jetbrains.kotlin.test.util.KtTestUtil
import java.nio.file.Files
@@ -13,11 +20,22 @@ import java.nio.file.Paths
import kotlin.io.path.absolutePathString
import kotlin.io.path.extension
import kotlin.streams.asSequence
import org.junit.jupiter.api.Assertions
internal fun testDataPath(path: String): Path {
return Paths.get("analysis/analysis-api-standalone/testData/sessionBuilder").resolve(path)
}
fun KtCallExpression.assertIsCallOf(callableId: CallableId) {
analyze(this) {
val ktCallInfo = resolveCall()
Assertions.assertInstanceOf(KtSuccessCallInfo::class.java, ktCallInfo); ktCallInfo as KtSuccessCallInfo
val symbol = ktCallInfo.successfulFunctionCallOrNull()?.symbol
Assertions.assertInstanceOf(KtFunctionSymbol::class.java, symbol); symbol as KtFunctionSymbol
Assertions.assertEquals(callableId, symbol.callableIdIfNonLocal)
}
}
internal fun compileCommonKlib(kLibSourcesRoot: Path): Path {
val ktFiles = Files.walk(kLibSourcesRoot).asSequence().filter { it.extension == "kt" }.toList()