FIR IDE: fix uast import test after fixing import references

This commit is contained in:
Ilya Kirillov
2021-06-03 16:31:46 +02:00
committed by TeamCityServer
parent ae7a6dc742
commit be99f24278
@@ -6,11 +6,10 @@
package org.jetbrains.uast.test.kotlin
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiField
import com.intellij.psi.PsiMethod
import com.intellij.testFramework.TestDataPath
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtNamedFunction
import org.jetbrains.kotlin.psi.KtObjectDeclaration
import org.jetbrains.kotlin.psi.psiUtil.getQualifiedElementSelector
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners
import org.jetbrains.kotlin.test.TestMetadata
import org.jetbrains.uast.UFile
@@ -41,21 +40,32 @@ class FirUastResolveApiTest : AbstractFirUastTest() {
fun testImports() {
doCheck("plugins/uast-kotlin/testData/Imports.kt") { _, uFile ->
uFile.imports.forEach { uImport ->
if ((uImport.sourcePsi as? KtImportDirective)?.text?.contains("sleep") == true) {
//todo investigate
return@forEach
}
val resolvedImport = uImport.resolve()
?: throw IllegalStateException("Unresolved import: ${uImport.asRenderString()}")
val expected = when (resolvedImport) {
is PsiClass -> {
// import java.lang.Thread.*
resolvedImport.name == "Thread"
resolvedImport.name == "Thread" || resolvedImport.name == "UncaughtExceptionHandler"
}
is PsiMethod -> {
// import java.lang.Thread.(currentThread/sleep)
resolvedImport.name == "currentThread" || resolvedImport.name == "sleep"
}
is PsiField -> {
// import java.lang.Thread.NORM_PRIORITY
resolvedImport.name == "NORM_PRIORITY"
}
is KtNamedFunction -> {
// import kotlin.collections.emptyList
resolvedImport.isTopLevel && resolvedImport.name == "emptyList"
}
is KtObjectDeclaration -> {
is KtProperty -> {
// import kotlin.Int.Companion.SIZE_BYTES
val selector = (uImport.importReference?.sourcePsi as? KtExpression)?.getQualifiedElementSelector()
resolvedImport.isCompanion() && selector?.text == "SIZE_BYTES"
resolvedImport.name == "SIZE_BYTES"
}
else -> false
}