Add tests for Java "Move class/package" refactoring

#KT-3626 Fixed
This commit is contained in:
Alexey Sedunov
2014-02-12 21:21:54 +04:00
parent 5ba49fbada
commit 7d3b21130a
34 changed files with 241 additions and 1 deletions
@@ -0,0 +1,7 @@
package a
import b.A
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package a
import b.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package a
import b.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
package b;
public class A {
}
@@ -0,0 +1,5 @@
package b
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package b
import a.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package b
import b.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,7 @@
package c
import b.A
fun bar() {
val t: A = A()
}
@@ -0,0 +1,8 @@
package c
import a.*
import b.A
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package c
import b.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package c
import b.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
package a;
public class <caret>A {
}
@@ -0,0 +1,5 @@
package a
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package a
import b.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package a
import a.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
package b
fun bar() {
val t: a.A = a.A()
}
@@ -0,0 +1,7 @@
package b
import a.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package b
import a.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
package c
fun bar() {
val t: a.A = a.A()
}
@@ -0,0 +1,7 @@
package c
import a.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,7 @@
package c
import b.*
fun bar() {
val t: a.A = a.A()
}
@@ -0,0 +1,7 @@
package c
import a.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
{
"mainFile": "a/main.java",
"type": "MOVE_TOP_LEVEL_CLASSES",
"targetPackage": "b"
}
@@ -0,0 +1,5 @@
package b.a;
public class A {
}
@@ -0,0 +1,5 @@
import b.a.A
fun bar() {
val t: A = A()
}
@@ -0,0 +1,5 @@
import b.a.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,5 @@
import b.a.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,5 @@
package a;
public class A {
}
@@ -0,0 +1,3 @@
fun bar() {
val t: a.A = a.A()
}
@@ -0,0 +1,5 @@
import a.*
fun bar() {
val t: A = A()
}
@@ -0,0 +1,5 @@
import a.A as X
fun bar() {
val t: X = X()
}
@@ -0,0 +1,6 @@
{
"mainFile": "a/main.java",
"type": "MOVE_PACKAGES",
"sourcePackage": "a",
"targetPackage": "b"
}
@@ -37,6 +37,11 @@ import com.intellij.openapi.application.ApplicationManager
import com.intellij.psi.PsiDocumentManager
import com.intellij.openapi.util.Computable
import org.jetbrains.jet.JetTestUtils
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesProcessor
import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination
import com.intellij.refactoring.PackageWrapper
import com.intellij.psi.JavaPsiFacade
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager
@@ -140,7 +145,40 @@ enum class MoveAction {
options.setMemberVisibility(visibility)
}
MoveMembersProcessor(mainFile.getProject(), options).run()
MoveMembersProcessor(elementAtCaret.getProject(), options).run()
}
}
MOVE_TOP_LEVEL_CLASSES {
override fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) {
val classToMove = elementAtCaret!!.getParentByType(javaClass<PsiClass>())!!
val targetPackage = config.getString("targetPackage")
MoveClassesOrPackagesProcessor(
project = mainFile.getProject(),
elements = array(classToMove),
moveDestination = MultipleRootsMoveDestination(PackageWrapper(mainFile.getManager(), targetPackage)),
searchInComments = false,
searchInNonJavaFiles = true,
moveCallback = null
).run()
}
}
MOVE_PACKAGES {
override fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) {
val project = mainFile.getProject()
val sourcePackage = config.getString("sourcePackage")
val targetPackage = config.getString("targetPackage")
MoveClassesOrPackagesProcessor(
project = project,
elements = array(JavaPsiFacade.getInstance(project).findPackage(sourcePackage)!!),
moveDestination = MultipleRootsMoveDestination(PackageWrapper(mainFile.getManager(), targetPackage)),
searchInComments = false,
searchInNonJavaFiles = true,
moveCallback = null
).run()
}
}
@@ -66,6 +66,11 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest {
doTest("idea/testData/refactoring/move/java/moveClass/moveAsMember/moveClassToTopLevelClassOfAnotherPackage/moveClassToTopLevelClassOfAnotherPackage.test");
}
@TestMetadata("java/moveClass/moveTop/moveTopLevelClassToAnotherPackage/moveTopLevelClassToAnotherPackage.test")
public void testJava_moveClass_moveTop_moveTopLevelClassToAnotherPackage_MoveTopLevelClassToAnotherPackage() throws Exception {
doTest("idea/testData/refactoring/move/java/moveClass/moveTop/moveTopLevelClassToAnotherPackage/moveTopLevelClassToAnotherPackage.test");
}
@TestMetadata("java/moveField/moveFieldToExternalNestedClass/moveFieldToExternalNestedClass.test")
public void testJava_moveField_moveFieldToExternalNestedClass_MoveFieldToExternalNestedClass() throws Exception {
doTest("idea/testData/refactoring/move/java/moveField/moveFieldToExternalNestedClass/moveFieldToExternalNestedClass.test");
@@ -126,4 +131,9 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest {
doTest("idea/testData/refactoring/move/java/moveMethod/moveMethodToTopLevelClassOfAnotherPackage/moveMethodToTopLevelClassOfAnotherPackage.test");
}
@TestMetadata("java/movePackage/movePackageToAnotherPackage/movePackageToAnotherPackage.test")
public void testJava_movePackage_movePackageToAnotherPackage_MovePackageToAnotherPackage() throws Exception {
doTest("idea/testData/refactoring/move/java/movePackage/movePackageToAnotherPackage/movePackageToAnotherPackage.test");
}
}