Make GradleClassFinder optional in tests for known class finder
Since 182 Gradle plugin is not fully loaded in tests and GradleClassFinder is absent in the list.
This commit is contained in:
@@ -18,33 +18,37 @@ package org.jetbrains.kotlin.idea
|
|||||||
|
|
||||||
import com.intellij.psi.NonClasspathClassFinder
|
import com.intellij.psi.NonClasspathClassFinder
|
||||||
import com.intellij.psi.PsiElementFinder
|
import com.intellij.psi.PsiElementFinder
|
||||||
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
|
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
|
|
||||||
class RegisteredFindersTest : KotlinLightCodeInsightFixtureTestCase() {
|
class RegisteredFindersTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||||
override fun getProjectDescriptor() = LightCodeInsightFixtureTestCase.JAVA_LATEST
|
override fun getProjectDescriptor(): LightProjectDescriptor = LightCodeInsightFixtureTestCase.JAVA_LATEST
|
||||||
|
|
||||||
fun testKnownNonClasspathFinder() {
|
fun testKnownNonClasspathFinder() {
|
||||||
val expectedFindersNames = setOf(
|
val expectedFindersNames = setOf(
|
||||||
"GantClassFinder",
|
"GantClassFinder",
|
||||||
"GradleClassFinder",
|
"KotlinScriptDependenciesClassFinder"
|
||||||
"KotlinScriptDependenciesClassFinder"
|
|
||||||
).toMutableSet()
|
).toMutableSet()
|
||||||
|
|
||||||
val optionalFindersNames = setOf(
|
val optionalFindersNames = setOf(
|
||||||
"AlternativeJreClassFinder",
|
"GradleClassFinder",
|
||||||
"IdeaOpenApiClassFinder",
|
"AlternativeJreClassFinder",
|
||||||
"BundledGroovyClassFinder")
|
"IdeaOpenApiClassFinder",
|
||||||
|
"BundledGroovyClassFinder"
|
||||||
|
)
|
||||||
|
|
||||||
project.getExtensions<PsiElementFinder>(PsiElementFinder.EP_NAME).forEach { finder ->
|
project.getExtensions<PsiElementFinder>(PsiElementFinder.EP_NAME).forEach { finder ->
|
||||||
if (finder is NonClasspathClassFinder) {
|
if (finder is NonClasspathClassFinder) {
|
||||||
val name = finder::class.java.simpleName
|
val name = finder::class.java.simpleName
|
||||||
val isKnown = expectedFindersNames.remove(name) || optionalFindersNames.contains(name)
|
val isKnown = expectedFindersNames.remove(name) || optionalFindersNames.contains(name)
|
||||||
Assert.assertTrue("Unknown finder found: $finder, class name: $name, search in $expectedFindersNames.\n" +
|
Assert.assertTrue(
|
||||||
"Consider updating ${KotlinJavaPsiFacade::class.java}",
|
"Unknown finder found: $finder, class name: $name, search in $expectedFindersNames.\n" +
|
||||||
isKnown)
|
"Consider updating ${KotlinJavaPsiFacade::class.java}",
|
||||||
|
isKnown
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user