From c842dfb470ca99b39fed1d23ce0a955a7feca59f Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 22 Sep 2016 15:46:42 +0300 Subject: [PATCH] [tests] common base class for Java module tests --- .../completion/ModuleCompletionTest.kt | 17 ++-------- .../daemon/ModuleHighlightingTest.kt | 20 +++-------- .../codeInsight/daemon/ModuleRenameTest.kt | 14 ++------ ...tJava9ModulesCodeInsightFixtureTestCase.kt | 34 +++++++++++++++++++ .../MultiModuleJava9ProjectDescriptor.kt | 2 +- 5 files changed, 43 insertions(+), 44 deletions(-) create mode 100644 java/java-tests/testSrc/com/intellij/testFramework/fixtures/LightJava9ModulesCodeInsightFixtureTestCase.kt diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/ModuleCompletionTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/completion/ModuleCompletionTest.kt index 444f2738f98d..e022580dda2b 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/ModuleCompletionTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/ModuleCompletionTest.kt @@ -15,27 +15,16 @@ */ package com.intellij.codeInsight.completion -import com.intellij.testFramework.LightProjectDescriptor -import com.intellij.testFramework.VfsTestUtil -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor +import com.intellij.testFramework.fixtures.LightJava9ModulesCodeInsightFixtureTestCase import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.M2 -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.MAIN import org.assertj.core.api.Assertions.assertThat -class ModuleCompletionTest : LightFixtureCompletionTestCase() { - override fun getProjectDescriptor(): LightProjectDescriptor = MultiModuleJava9ProjectDescriptor - +class ModuleCompletionTest : LightJava9ModulesCodeInsightFixtureTestCase() { override fun setUp() { super.setUp() addFile("module-info.java", "module M2 { }", M2) } - override fun tearDown() { - MultiModuleJava9ProjectDescriptor.cleanupSourceRoots() - super.tearDown() - } - fun testFileHeader() = complete("", "module ") fun testStatements1() = variants("module M { }", "requires", "exports", "uses", "provides") fun testStatements2() = complete("module M { requires X; ex }", "module M { requires X; exports }") @@ -64,8 +53,6 @@ class ModuleCompletionTest : LightFixtureCompletionTestCase() { } // - private fun addFile(path: String, text: String, module: ModuleDescriptor = MAIN) = VfsTestUtil.createFile(module.root(), path, text) - private fun complete(text: String, expected: String) { myFixture.configureByText("module-info.java", text) myFixture.completeBasic() diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleHighlightingTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleHighlightingTest.kt index 874742d360f8..c1db1138e1ec 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleHighlightingTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleHighlightingTest.kt @@ -16,29 +16,19 @@ package com.intellij.codeInsight.daemon import com.intellij.psi.PsiJavaModule -import com.intellij.testFramework.LightProjectDescriptor -import com.intellij.testFramework.VfsTestUtil -import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor -import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.* +import com.intellij.testFramework.fixtures.LightJava9ModulesCodeInsightFixtureTestCase +import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.M2 +import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.M3 import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl import org.assertj.core.api.Assertions.assertThat -class ModuleHighlightingTest : LightCodeInsightFixtureTestCase() { - override fun getProjectDescriptor(): LightProjectDescriptor = MultiModuleJava9ProjectDescriptor - +class ModuleHighlightingTest : LightJava9ModulesCodeInsightFixtureTestCase() { override fun setUp() { super.setUp() addFile("module-info.java", "module M2 { }", M2) addFile("module-info.java", "module M3 { }", M3) } - override fun tearDown() { - MultiModuleJava9ProjectDescriptor.cleanupSourceRoots() - super.tearDown() - } - fun testWrongFileName() { highlight("M.java", """/* ... */ module M { }""") } @@ -147,8 +137,6 @@ class ModuleHighlightingTest : LightCodeInsightFixtureTestCase() { } // - private fun addFile(path: String, text: String, module: ModuleDescriptor = MAIN) = VfsTestUtil.createFile(module.root(), path, text) - private fun highlight(text: String, filter: Boolean = false) = highlight("module-info.java", text, filter) private fun highlight(path: String, text: String, filter: Boolean = false) { diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleRenameTest.kt b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleRenameTest.kt index 8ac0bfc8c6d7..e44179620834 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleRenameTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleRenameTest.kt @@ -20,28 +20,20 @@ import com.intellij.psi.PsiDocumentManager import com.intellij.psi.impl.file.impl.JavaFileManager import com.intellij.psi.search.GlobalSearchScope import com.intellij.refactoring.rename.RenameProcessor -import com.intellij.testFramework.LightProjectDescriptor import com.intellij.testFramework.VfsTestUtil -import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase +import com.intellij.testFramework.fixtures.LightJava9ModulesCodeInsightFixtureTestCase import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.M2 import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.MAIN import org.junit.Test -class ModuleRenameTest : LightCodeInsightFixtureTestCase() { - override fun getProjectDescriptor(): LightProjectDescriptor = MultiModuleJava9ProjectDescriptor - +class ModuleRenameTest : LightJava9ModulesCodeInsightFixtureTestCase() { override fun setUp() { super.setUp() addFile("module-info.java", "module M2 { }", M2) } - override fun tearDown() { - MultiModuleJava9ProjectDescriptor.cleanupSourceRoots() - super.tearDown() - } - @Test fun testRename() { myFixture.configureByText("module-info.java", "module M { requires M2; }") val module = JavaFileManager.SERVICE.getInstance(project).findModules("M2", GlobalSearchScope.allScope(project)).first() @@ -51,6 +43,4 @@ class ModuleRenameTest : LightCodeInsightFixtureTestCase() { } myFixture.checkResult("module M { requires M2.bis; }") } - - private fun addFile(path: String, text: String, module: ModuleDescriptor = MAIN) = VfsTestUtil.createFile(module.root(), path, text) } \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/testFramework/fixtures/LightJava9ModulesCodeInsightFixtureTestCase.kt b/java/java-tests/testSrc/com/intellij/testFramework/fixtures/LightJava9ModulesCodeInsightFixtureTestCase.kt new file mode 100644 index 000000000000..d69d576aa500 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/testFramework/fixtures/LightJava9ModulesCodeInsightFixtureTestCase.kt @@ -0,0 +1,34 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.testFramework.fixtures + +import com.intellij.openapi.vfs.VirtualFile +import com.intellij.testFramework.LightProjectDescriptor +import com.intellij.testFramework.VfsTestUtil +import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor +import com.intellij.testFramework.fixtures.MultiModuleJava9ProjectDescriptor.ModuleDescriptor.MAIN + +abstract class LightJava9ModulesCodeInsightFixtureTestCase : LightCodeInsightFixtureTestCase() { + override fun getProjectDescriptor(): LightProjectDescriptor = MultiModuleJava9ProjectDescriptor + + override fun tearDown() { + MultiModuleJava9ProjectDescriptor.cleanupSourceRoots() + super.tearDown() + } + + protected fun addFile(path: String, text: String, module: ModuleDescriptor = MAIN): VirtualFile = + VfsTestUtil.createFile(module.root(), path, text) +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/testFramework/fixtures/MultiModuleJava9ProjectDescriptor.kt b/java/java-tests/testSrc/com/intellij/testFramework/fixtures/MultiModuleJava9ProjectDescriptor.kt index e95a7e6f2ab1..2021dcd603a3 100644 --- a/java/java-tests/testSrc/com/intellij/testFramework/fixtures/MultiModuleJava9ProjectDescriptor.kt +++ b/java/java-tests/testSrc/com/intellij/testFramework/fixtures/MultiModuleJava9ProjectDescriptor.kt @@ -34,7 +34,7 @@ import com.intellij.testFramework.LightPlatformTestCase /** * Dependencies: 'main' -> 'm2', 'm3' */ -object MultiModuleJava9ProjectDescriptor : DefaultLightProjectDescriptor() { +object MultiModuleJava9ProjectDescriptor : DefaultLightProjectDescriptor() { enum class ModuleDescriptor(internal val moduleName: String, internal val rootName: String) { MAIN(TEST_MODULE_NAME, "/not_used/"), M2("${TEST_MODULE_NAME}_m2", "src_m2"),