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.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
)
} }
} }