Refactored AbstractOptimizeImportsTest to inherit from AbstractImportsTest

This commit is contained in:
Valentin Kipyatkov
2015-02-13 20:53:55 +03:00
parent 03f7c265d7
commit 2e3ed6b66f
58 changed files with 55 additions and 81 deletions
@@ -634,7 +634,7 @@ fun main(args: Array<String>) {
} }
testClass(javaClass<AbstractOptimizeImportsTest>()) { testClass(javaClass<AbstractOptimizeImportsTest>()) {
model("editor/optimizeImports", extension = null, recursive = false) model("editor/optimizeImports", pattern = """^([^\.]+)\.kt$""")
} }
testClass(javaClass<AbstractJetPositionManagerTest>()) { testClass(javaClass<AbstractJetPositionManagerTest>()) {
@@ -18,43 +18,17 @@ package org.jetbrains.kotlin.idea.imports
import com.intellij.openapi.command.CommandProcessor import com.intellij.openapi.command.CommandProcessor
import com.intellij.openapi.command.UndoConfirmationPolicy import com.intellij.openapi.command.UndoConfirmationPolicy
import org.jetbrains.kotlin.idea.JetLightCodeInsightFixtureTestCase
import java.io.File import java.io.File
import org.junit.Assert import org.junit.Assert
import org.jetbrains.kotlin.idea.PluginTestCaseBase import org.jetbrains.kotlin.idea.PluginTestCaseBase
import org.jetbrains.kotlin.*
import org.jetbrains.kotlin.psi.*
public abstract class AbstractOptimizeImportsTest() : JetLightCodeInsightFixtureTestCase() { public abstract class AbstractOptimizeImportsTest() : AbstractImportsTest() {
override fun doTest(file: JetFile) {
public fun doTest(path: String) { KotlinImportOptimizer().processFile(file).run()
val fixture = myFixture!!
fixture.setTestDataPath(path)
val (expectedFile, testFiles) = findTestFiles(path)
fixture.configureByFiles(*testFiles.map { it.name : String? }.copyToArray())
CommandProcessor.getInstance()!!.executeCommand(
getProject(),
KotlinImportOptimizer().processFile(fixture.getFile()),
"Optimize Imports",
null,
UndoConfirmationPolicy.DO_NOT_REQUEST_CONFIRMATION
)
fixture.checkResultByFile(expectedFile.name, true)
} }
private fun findTestFiles(path: String): Pair<File, List<File>> { override val preferAllUnderImportsDefault: Boolean
val files = File(path).listFiles()!! get() = false
val testName = getTestName(false)
val expectedFileName = "$testName.after.kt"
val expectedFile = files.find { it.name == expectedFileName }
Assert.assertNotNull("Can't find $expectedFileName", expectedFile)
val fileToBeOptimizedName = "$testName.kt"
val fileToBeOptimized = files.find { it.name == fileToBeOptimizedName }
Assert.assertNotNull("Can't find $fileToBeOptimizedName", fileToBeOptimized)
val testFiles = listOf(fileToBeOptimized!!) + files.filter { it != fileToBeOptimized && it != expectedFile }
return Pair(expectedFile!!, testFiles)
}
override fun getTestDataPath() = "${PluginTestCaseBase.getTestDataPathBase()}/editor/optimizeImports/${getTestName(false)}"
} }
@@ -32,144 +32,144 @@ import java.util.regex.Pattern;
@RunWith(JUnit3RunnerWithInners.class) @RunWith(JUnit3RunnerWithInners.class)
public class OptimizeImportsTestGenerated extends AbstractOptimizeImportsTest { public class OptimizeImportsTestGenerated extends AbstractOptimizeImportsTest {
public void testAllFilesPresentInOptimizeImports() throws Exception { public void testAllFilesPresentInOptimizeImports() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/editor/optimizeImports"), Pattern.compile("^([^\\.]+)$"), false); JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/editor/optimizeImports"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
} }
@TestMetadata("AlreadyOptimized") @TestMetadata("AlreadyOptimized.kt")
public void testAlreadyOptimized() throws Exception { public void testAlreadyOptimized() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/AlreadyOptimized/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/AlreadyOptimized.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("ArrayAccessExpression") @TestMetadata("ArrayAccessExpression.kt")
public void testArrayAccessExpression() throws Exception { public void testArrayAccessExpression() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ArrayAccessExpression/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ArrayAccessExpression.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("ClassMemberImported") @TestMetadata("ClassMemberImported.kt")
public void testClassMemberImported() throws Exception { public void testClassMemberImported() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ClassMemberImported/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ClassMemberImported.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("ComponentFunction") @TestMetadata("ComponentFunction.kt")
public void testComponentFunction() throws Exception { public void testComponentFunction() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ComponentFunction/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/ComponentFunction.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("CurrentPackage") @TestMetadata("CurrentPackage.kt")
public void testCurrentPackage() throws Exception { public void testCurrentPackage() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/CurrentPackage/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/CurrentPackage.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("DefaultJsImports") @TestMetadata("DefaultJsImports.kt")
public void testDefaultJsImports() throws Exception { public void testDefaultJsImports() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DefaultJsImports/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DefaultJsImports.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("DuplicatedImports") @TestMetadata("DuplicatedImports.kt")
public void testDuplicatedImports() throws Exception { public void testDuplicatedImports() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DuplicatedImports/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DuplicatedImports.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("Enums") @TestMetadata("Enums.kt")
public void testEnums() throws Exception { public void testEnums() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Enums/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Enums.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("InvokeFunction") @TestMetadata("InvokeFunction.kt")
public void testInvokeFunction() throws Exception { public void testInvokeFunction() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/InvokeFunction/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/InvokeFunction.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("IteratorFunction") @TestMetadata("IteratorFunction.kt")
public void testIteratorFunction() throws Exception { public void testIteratorFunction() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/IteratorFunction/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/IteratorFunction.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("JavaStaticField") @TestMetadata("JavaStaticField.kt")
public void testJavaStaticField() throws Exception { public void testJavaStaticField() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/JavaStaticField/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/JavaStaticField.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("KotlinPackage") @TestMetadata("KotlinPackage.kt")
public void testKotlinPackage() throws Exception { public void testKotlinPackage() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/KotlinPackage/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/KotlinPackage.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("Kt1850FullQualified") @TestMetadata("Kt1850FullQualified.kt")
public void testKt1850FullQualified() throws Exception { public void testKt1850FullQualified() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt1850FullQualified/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt1850FullQualified.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("Kt1850InnerClass") @TestMetadata("Kt1850InnerClass.kt")
public void testKt1850InnerClass() throws Exception { public void testKt1850InnerClass() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt1850InnerClass/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt1850InnerClass.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("Kt2488EnumEntry") @TestMetadata("Kt2488EnumEntry.kt")
public void testKt2488EnumEntry() throws Exception { public void testKt2488EnumEntry() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt2488EnumEntry/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt2488EnumEntry.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("Kt2709") @TestMetadata("Kt2709.kt")
public void testKt2709() throws Exception { public void testKt2709() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt2709/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/Kt2709.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("MembersInScope") @TestMetadata("MembersInScope.kt")
public void testMembersInScope() throws Exception { public void testMembersInScope() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/MembersInScope/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/MembersInScope.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("PartiallyQualified") @TestMetadata("PartiallyQualified.kt")
public void testPartiallyQualified() throws Exception { public void testPartiallyQualified() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/PartiallyQualified/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/PartiallyQualified.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("RemoveImportsIfGeneral") @TestMetadata("RemoveImportsIfGeneral.kt")
public void testRemoveImportsIfGeneral() throws Exception { public void testRemoveImportsIfGeneral() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/RemoveImportsIfGeneral/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/RemoveImportsIfGeneral.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("RemoveImportsIfGeneralBefore") @TestMetadata("RemoveImportsIfGeneralBefore.kt")
public void testRemoveImportsIfGeneralBefore() throws Exception { public void testRemoveImportsIfGeneralBefore() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/RemoveImportsIfGeneralBefore/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/RemoveImportsIfGeneralBefore.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("SamConstructor") @TestMetadata("SamConstructor.kt")
public void testSamConstructor() throws Exception { public void testSamConstructor() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/SamConstructor/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/SamConstructor.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("UnusedImports") @TestMetadata("UnusedImports.kt")
public void testUnusedImports() throws Exception { public void testUnusedImports() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/UnusedImports/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/UnusedImports.kt");
doTest(fileName); doTest(fileName);
} }
@TestMetadata("WithAliases") @TestMetadata("WithAliases.kt")
public void testWithAliases() throws Exception { public void testWithAliases() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/WithAliases/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/WithAliases.kt");
doTest(fileName); doTest(fileName);
} }
} }