From 113c83b47a29c9103cc5acdd24045816c772f1fe Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 19 Sep 2017 14:17:34 +0300 Subject: [PATCH] Minor, cleanup AbstractQuickFixMultiFileTest --- .../AbstractAndroidQuickFixMultiFileTest.java | 4 +- .../quickfix/AbstractQuickFixMultiFileTest.kt | 44 ++++++------------- 2 files changed, 15 insertions(+), 33 deletions(-) diff --git a/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java b/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java index 41704163d37..77b5944c2be 100644 --- a/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java +++ b/idea/idea-android/tests/org/jetbrains/kotlin/android/quickfix/AbstractAndroidQuickFixMultiFileTest.java @@ -45,7 +45,7 @@ public abstract class AbstractAndroidQuickFixMultiFileTest extends AbstractQuick } @Override - protected void doTestWithExtraFile(@NotNull String beforeFileName) throws Exception { + protected void doTestWithExtraFile(@NotNull String beforeFileName) { addManifest(); super.doTestWithExtraFile(beforeFileName); } @@ -59,7 +59,7 @@ public abstract class AbstractAndroidQuickFixMultiFileTest extends AbstractQuick ApplicationManager.getApplication().runWriteAction(facetModel::commit); } - private void addManifest() throws Exception { + private void addManifest() { myFixture.configureByFile("idea/testData/android/AndroidManifest.xml"); } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.kt b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.kt index 7c6e8b70acf..0b94878c081 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/AbstractQuickFixMultiFileTest.kt @@ -20,7 +20,6 @@ import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.daemon.quickFix.ActionHint import com.intellij.codeInsight.intention.IntentionAction import com.intellij.codeInspection.InspectionEP -import com.intellij.codeInspection.InspectionProfileEntry import com.intellij.codeInspection.LocalInspectionEP import com.intellij.ide.highlighter.JavaFileType import com.intellij.openapi.command.CommandProcessor @@ -47,12 +46,10 @@ import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.testFramework.runWriteAction import java.io.File -import java.io.IOException import java.util.* import java.util.regex.Pattern abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTestCase() { - @Throws(Exception::class) protected open fun doTestWithExtraFile(beforeFileName: String) { enableInspections(beforeFileName) @@ -64,7 +61,6 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest } } - @Throws(IOException::class, ClassNotFoundException::class) private fun enableInspections(beforeFileName: String) { val inspectionFile = findInspectionFile(File(beforeFileName).parentFile) if (inspectionFile != null) { @@ -79,15 +75,10 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest ContainerUtil.addAll>(eps, *Extensions.getExtensions(LocalInspectionEP.LOCAL_INSPECTION)) ContainerUtil.addAll>(eps, *Extensions.getExtensions(InspectionEP.GLOBAL_INSPECTION)) - var tool: InspectionProfileEntry? = null - for (ep in eps) { - if (klass.name == ep.implementationClass) { - tool = ep.instantiateTool() - } - } - assert(tool != null) { "Could not find inspection tool for class: " + klass } + val tool = eps.firstOrNull { it.implementationClass == klass.name }?.instantiateTool() + ?: error("Could not find inspection tool for class: $klass") - myFixture.enableInspections(tool!!) + myFixture.enableInspections(tool) } override fun setUp() { @@ -105,11 +96,8 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest * * * @param beforeFile will be added last, as subFiles are dependencies of it */ - protected fun configureMultiFileTest(subFiles: List, beforeFile: TestFile): List { - val vFiles = mutableListOf() - for (subFile in subFiles) { - vFiles.add(createTestFile(subFile)) - } + private fun configureMultiFileTest(subFiles: List, beforeFile: TestFile): List { + val vFiles = subFiles.map(this::createTestFile).toMutableList() val beforeVFile = createTestFile(beforeFile) vFiles.add(beforeVFile) myFixture.configureFromExistingVirtualFile(beforeVFile) @@ -122,14 +110,13 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest private fun createTestFile(testFile: TestFile): VirtualFile { return runWriteAction { val vFile = myFixture.tempDirFixture.createFile(testFile.path) - vFile.setCharset(CharsetToolkit.UTF8_CHARSET) + vFile.charset = CharsetToolkit.UTF8_CHARSET VfsUtil.saveText(vFile, testFile.content) vFile } } - @Throws(Exception::class) - protected fun doMultiFileTest(beforeFileName: String) { + private fun doMultiFileTest(beforeFileName: String) { val multifileText = FileUtil.loadFile(File(beforeFileName), true) val subFiles = KotlinTestUtils.createTestFiles( @@ -137,11 +124,9 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest multifileText, object : KotlinTestUtils.TestFileFactoryNoModules() { override fun create(fileName: String, text: String, directives: Map): TestFile { - var text = text if (text.startsWith("// FILE")) { - val firstLineDropped = StringUtil.substringAfter(text, "\n")!! - - text = firstLineDropped + // Drop the first line + return TestFile(fileName, StringUtil.substringAfter(text, "\n")!!) } return TestFile(fileName, text) } @@ -205,7 +190,6 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest }, "", "") } - @Throws(Exception::class) private fun doTest(beforeFileName: String) { val mainFile = File(beforeFileName) val originalFileText = FileUtil.loadFile(mainFile, true) @@ -213,7 +197,7 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest val mainFileDir = mainFile.parentFile!! val mainFileName = mainFile.name - val extraFiles = mainFileDir.listFiles { dir, name -> name.startsWith(extraFileNamePrefix(mainFileName)) && name != mainFileName }!! + val extraFiles = mainFileDir.listFiles { _, name -> name.startsWith(extraFileNamePrefix(mainFileName)) && name != mainFileName }!! val testFiles = ArrayList() testFiles.add(mainFile.name) @@ -245,13 +229,11 @@ abstract class AbstractQuickFixMultiFileTest : KotlinLightCodeInsightFixtureTest KotlinTestUtils.assertEqualsToFile(File(afterFilePath), editor) } - val mainFile = myFixture.file - val mainFileName = mainFile.name - for (file in mainFile.containingDirectory.files) { + for (file in myFixture.file.containingDirectory.files) { val fileName = file.name - if (fileName == mainFileName || !fileName.startsWith(extraFileNamePrefix(myFixture.file.name))) continue + if (fileName == myFixture.file.name || !fileName.startsWith(extraFileNamePrefix(myFixture.file.name))) continue - val extraFileFullPath = beforeFileName.replace(mainFileName, fileName) + val extraFileFullPath = beforeFileName.replace(myFixture.file.name, fileName) val afterFile = File(extraFileFullPath.replace(".before.", ".after.")) if (afterFile.exists()) { KotlinTestUtils.assertEqualsToFile(afterFile, file.text)