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:
Nikolay Krasko
2018-08-08 18:42:39 +03:00
parent 465e11c473
commit fce21d1082
@@ -18,33 +18,37 @@ package org.jetbrains.kotlin.idea
import com.intellij.psi.NonClasspathClassFinder
import com.intellij.psi.PsiElementFinder
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
import org.junit.Assert
class RegisteredFindersTest : KotlinLightCodeInsightFixtureTestCase() {
override fun getProjectDescriptor() = LightCodeInsightFixtureTestCase.JAVA_LATEST
override fun getProjectDescriptor(): LightProjectDescriptor = LightCodeInsightFixtureTestCase.JAVA_LATEST
fun testKnownNonClasspathFinder() {
val expectedFindersNames = setOf(
"GantClassFinder",
"GradleClassFinder",
"KotlinScriptDependenciesClassFinder"
"GantClassFinder",
"KotlinScriptDependenciesClassFinder"
).toMutableSet()
val optionalFindersNames = setOf(
"AlternativeJreClassFinder",
"IdeaOpenApiClassFinder",
"BundledGroovyClassFinder")
"GradleClassFinder",
"AlternativeJreClassFinder",
"IdeaOpenApiClassFinder",
"BundledGroovyClassFinder"
)
project.getExtensions<PsiElementFinder>(PsiElementFinder.EP_NAME).forEach { finder ->
if (finder is NonClasspathClassFinder) {
val name = finder::class.java.simpleName
val isKnown = expectedFindersNames.remove(name) || optionalFindersNames.contains(name)
Assert.assertTrue("Unknown finder found: $finder, class name: $name, search in $expectedFindersNames.\n" +
"Consider updating ${KotlinJavaPsiFacade::class.java}",
isKnown)
Assert.assertTrue(
"Unknown finder found: $finder, class name: $name, search in $expectedFindersNames.\n" +
"Consider updating ${KotlinJavaPsiFacade::class.java}",
isKnown
)
}
}