diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/noImports.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/noImports.kt new file mode 100644 index 00000000000..d901715b287 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/noImports.kt @@ -0,0 +1,7 @@ +package a + +import b.A + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/onDemandTargetPackageImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/onDemandTargetPackageImport.kt new file mode 100644 index 00000000000..a02f76f138e --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/onDemandTargetPackageImport.kt @@ -0,0 +1,7 @@ +package a + +import b.* + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/specificClassImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/specificClassImport.kt new file mode 100644 index 00000000000..d9c40c2aa39 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/a/specificClassImport.kt @@ -0,0 +1,7 @@ +package a + +import b.A as X + +fun bar() { + val t: X = X() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main.java b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main.java new file mode 100644 index 00000000000..17af270811f --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main.java @@ -0,0 +1,5 @@ +package b; + +public class A { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main2.java b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main2.java new file mode 100644 index 00000000000..722a7e641a7 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/main2.java @@ -0,0 +1,5 @@ +package b; + +public class B { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/noImports.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/noImports.kt new file mode 100644 index 00000000000..11e0790c3bd --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/noImports.kt @@ -0,0 +1,5 @@ +package b + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/onDemandSourcePackageImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/onDemandSourcePackageImport.kt new file mode 100644 index 00000000000..3700d2bbc00 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/onDemandSourcePackageImport.kt @@ -0,0 +1,7 @@ +package b + +import a.* + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/specificClassImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/specificClassImport.kt new file mode 100644 index 00000000000..98ebe2fe73e --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/after/b/specificClassImport.kt @@ -0,0 +1,7 @@ +package b + +import b.A as X + +fun bar() { + val t: X = X() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/main.java b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/main.java new file mode 100644 index 00000000000..ba8432beb0f --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/main.java @@ -0,0 +1,5 @@ +package a; + +public class A { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/noImports.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/noImports.kt new file mode 100644 index 00000000000..e879a7194b7 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/noImports.kt @@ -0,0 +1,5 @@ +package a + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/onDemandTargetPackageImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/onDemandTargetPackageImport.kt new file mode 100644 index 00000000000..a02f76f138e --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/onDemandTargetPackageImport.kt @@ -0,0 +1,7 @@ +package a + +import b.* + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/specificClassImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/specificClassImport.kt new file mode 100644 index 00000000000..88970e2cedc --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/a/specificClassImport.kt @@ -0,0 +1,7 @@ +package a + +import a.A as X + +fun bar() { + val t: X = X() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/main2.java b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/main2.java new file mode 100644 index 00000000000..722a7e641a7 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/main2.java @@ -0,0 +1,5 @@ +package b; + +public class B { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/noImports.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/noImports.kt new file mode 100644 index 00000000000..7b86dd85a0a --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/noImports.kt @@ -0,0 +1,5 @@ +package b + +fun bar() { + val t: a.A = a.A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/onDemandSourcePackageImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/onDemandSourcePackageImport.kt new file mode 100644 index 00000000000..3700d2bbc00 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/onDemandSourcePackageImport.kt @@ -0,0 +1,7 @@ +package b + +import a.* + +fun bar() { + val t: A = A() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/specificClassImport.kt b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/specificClassImport.kt new file mode 100644 index 00000000000..29b95b10227 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/before/b/specificClassImport.kt @@ -0,0 +1,7 @@ +package b + +import a.A as X + +fun bar() { + val t: X = X() +} \ No newline at end of file diff --git a/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/moveFileToAnotherPackage.test b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/moveFileToAnotherPackage.test new file mode 100644 index 00000000000..c408fa49ae9 --- /dev/null +++ b/idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/moveFileToAnotherPackage.test @@ -0,0 +1,5 @@ +{ + "mainFile": "a/main.java", + "type": "MOVE_FILES", + "targetPackage": "b" +} diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/AbstractJetMoveTest.kt b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/AbstractJetMoveTest.kt index a3067efe136..8f0bbac06f0 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/AbstractJetMoveTest.kt +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/AbstractJetMoveTest.kt @@ -47,6 +47,7 @@ import com.intellij.psi.search.GlobalSearchScope import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassToInnerProcessor import com.intellij.psi.PsiFile import com.intellij.psi.PsiManager +import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesProcessor public abstract class AbstractJetMoveTest : MultiFileTestCase() { protected fun doTest(path: String) { @@ -223,5 +224,22 @@ enum class MoveAction { } } + MOVE_FILES { + override fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) { + val project = mainFile.getProject() + val targetPackage = config.getString("targetPackage") + + MoveFilesOrDirectoriesProcessor( + project = project, + elements = array(mainFile), + newParent = JavaPsiFacade.getInstance(project).findPackage(targetPackage)!!.getDirectories()[0], + searchInComments = false, + searchInNonJavaFiles = true, + moveCallback = null, + prepareSuccessfulCallback = null + ).run() + } + } + abstract fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) } diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java index cdda936f30f..8681a1b3e44 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/move/JetMoveTestGenerated.java @@ -131,6 +131,11 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest { doTest("idea/testData/refactoring/move/java/moveField/moveFieldToTopLevelClassOfAnotherPackage/moveFieldToTopLevelClassOfAnotherPackage.test"); } + @TestMetadata("java/moveFile/moveFileToAnotherPackage/moveFileToAnotherPackage.test") + public void testJava_moveFile_moveFileToAnotherPackage_MoveFileToAnotherPackage() throws Exception { + doTest("idea/testData/refactoring/move/java/moveFile/moveFileToAnotherPackage/moveFileToAnotherPackage.test"); + } + @TestMetadata("java/moveMethod/moveMethodToExternalNestedClass/moveMethodToExternalNestedClass.test") public void testJava_moveMethod_moveMethodToExternalNestedClass_MoveMethodToExternalNestedClass() throws Exception { doTest("idea/testData/refactoring/move/java/moveMethod/moveMethodToExternalNestedClass/moveMethodToExternalNestedClass.test");