[tests] common base class for Java module tests
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 22 Sep 2016 12:46:42 +0000 (15:46 +0300)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Thu, 22 Sep 2016 12:47:08 +0000 (15:47 +0300)
java/java-tests/testSrc/com/intellij/codeInsight/completion/ModuleCompletionTest.kt
java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleHighlightingTest.kt
java/java-tests/testSrc/com/intellij/codeInsight/daemon/ModuleRenameTest.kt
java/java-tests/testSrc/com/intellij/testFramework/fixtures/LightJava9ModulesCodeInsightFixtureTestCase.kt [new file with mode: 0644]
java/java-tests/testSrc/com/intellij/testFramework/fixtures/MultiModuleJava9ProjectDescriptor.kt

index 444f2738f98d9200e2f2c1a252f2790c1ce705c6..e022580dda2bc3aba3d2d4921a24e04bfa72c8f9 100644 (file)
  */
 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("<caret>", "module <caret>")
   fun testStatements1() = variants("module M { <caret> }", "requires", "exports", "uses", "provides")
   fun testStatements2() = complete("module M { requires X; ex<caret> }", "module M { requires X; exports <caret> }")
@@ -64,8 +53,6 @@ class ModuleCompletionTest : LightFixtureCompletionTestCase() {
   }
 
   //<editor-fold desc="Helpers.">
-  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()
index 874742d360f82afae02f308d0fc4583443e2917c..c1db1138e1eccdbedd6580581f007411cfb4ec46 100644 (file)
 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", """/* ... */ <error descr="Module declaration should be in a file named 'module-info.java'">module M</error> { }""")
   }
@@ -147,8 +137,6 @@ class ModuleHighlightingTest : LightCodeInsightFixtureTestCase() {
   }
 
   //<editor-fold desc="Helpers.">
-  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) {
index 8ac0bfc8c6d7af02f3288897b90b53bdb23d8dd7..e44179620834eeb611142fef35be56a853113e5b 100644 (file)
@@ -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 (file)
index 0000000..d69d576
--- /dev/null
@@ -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
index e95a7e6f2ab11da4e70e24e901ad1e2a5b0b59ec..2021dcd603a3d8d2a89207ee73efded06f10fbe8 100644 (file)
@@ -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"),