Add tests for Java "Move Inner Class/To Inner Class" refactoring
This commit is contained in:
+4
@@ -0,0 +1,4 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.*
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.X as XX
|
||||
|
||||
fun bar() {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package b;
|
||||
|
||||
public class X {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package b
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.*
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.X as XX
|
||||
|
||||
fun bar() {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
public static class <caret>X {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar() {
|
||||
val t: A.X = A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.*
|
||||
|
||||
fun bar() {
|
||||
val t: A.X = A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.X as XX
|
||||
|
||||
fun bar() {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package b
|
||||
|
||||
fun bar() {
|
||||
val t: a.A.X = a.A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.*
|
||||
|
||||
fun bar() {
|
||||
val t: a.A.X = a.A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import a.A.X as XX
|
||||
|
||||
fun bar() {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"mainFile": "a/main.java",
|
||||
"type": "MOVE_INNER_CLASS",
|
||||
"targetPackage": "b"
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a;
|
||||
|
||||
public class X {
|
||||
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.X as XX
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
public static class <caret>X {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: A.X = A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.X as XX
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"mainFile": "a/main.java",
|
||||
"type": "MOVE_INNER_CLASS",
|
||||
"targetPackage": "a"
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package a;
|
||||
|
||||
public class X {
|
||||
private A outer;
|
||||
|
||||
public X(A outer, String s) {
|
||||
this.outer = outer;
|
||||
System.out.println(s);
|
||||
}
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X(A(), "test")
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X(A(), "test")
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.X
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X(A(), "test")
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
public class <caret>X {
|
||||
public X(String s) {
|
||||
System.out.println(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: A.X = A().X("test")
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = A().X("test")
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.X
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = A().X("test")
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"mainFile": "a/main.java",
|
||||
"type": "MOVE_INNER_CLASS",
|
||||
"targetPackage": "a",
|
||||
"outerInstanceParameterName": "outer"
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a;
|
||||
|
||||
public class Y {
|
||||
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: Y = Y()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: Y = Y()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.Y as XX
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
public static class <caret>X {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: A.X = A.X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.*
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A.X as XX
|
||||
|
||||
fun bar(s: String) {
|
||||
val t: XX = XX()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"mainFile": "a/main.java",
|
||||
"type": "MOVE_INNER_CLASS",
|
||||
"targetPackage": "a",
|
||||
"newClassName": "Y"
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
public class B {
|
||||
public class C {
|
||||
|
||||
public static class A {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun bar() {
|
||||
val t: B.C.A = B.C.A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.*
|
||||
|
||||
fun bar() {
|
||||
val t: C.A = B.C.A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.C.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
public class <caret>A {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class B {
|
||||
public class C {
|
||||
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"mainFile": "main.java",
|
||||
"type": "MOVE_TOP_LEVEL_CLASSES_TO_INNER",
|
||||
"targetClass": "B.C"
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class B {
|
||||
public static class A {
|
||||
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun bar() {
|
||||
val t: B.A = B.A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
public class <caret>A {
|
||||
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
public class B {
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"mainFile": "main.java",
|
||||
"type": "MOVE_TOP_LEVEL_CLASSES_TO_INNER",
|
||||
"targetClass": "B"
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.B
|
||||
|
||||
fun bar() {
|
||||
val t: B.A = B.A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.B.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b;
|
||||
|
||||
public class B {
|
||||
public static class A {
|
||||
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package b
|
||||
|
||||
fun bar() {
|
||||
val t: B.A = B.A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.B.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a;
|
||||
|
||||
public class <caret>A {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import b.B.*
|
||||
|
||||
fun bar() {
|
||||
val t: A = A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package a
|
||||
|
||||
import a.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package b;
|
||||
|
||||
public class B {
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package b
|
||||
|
||||
fun bar() {
|
||||
val t: a.A = a.A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import b.B.*
|
||||
|
||||
fun bar() {
|
||||
val t: a.A = a.A()
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package b
|
||||
|
||||
import a.A as X
|
||||
|
||||
fun bar() {
|
||||
val t: X = X()
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"mainFile": "a/main.java",
|
||||
"type": "MOVE_TOP_LEVEL_CLASSES_TO_INNER",
|
||||
"targetClass": "b.B"
|
||||
}
|
||||
@@ -42,6 +42,9 @@ import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDest
|
||||
import com.intellij.refactoring.PackageWrapper
|
||||
import com.intellij.psi.JavaPsiFacade
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.refactoring.move.moveInner.MoveInnerProcessor
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassToInnerProcessor
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.PsiManager
|
||||
|
||||
@@ -182,5 +185,43 @@ enum class MoveAction {
|
||||
}
|
||||
}
|
||||
|
||||
MOVE_TOP_LEVEL_CLASSES_TO_INNER {
|
||||
override fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) {
|
||||
val project = mainFile.getProject()
|
||||
|
||||
val classToMove = elementAtCaret!!.getParentByType(javaClass<PsiClass>())!!
|
||||
val targetClass = config.getString("targetClass")
|
||||
|
||||
MoveClassToInnerProcessor(
|
||||
project = project,
|
||||
classesToMove = array(classToMove),
|
||||
targetClass = JavaPsiFacade.getInstance(project).findClass(targetClass, GlobalSearchScope.allScope(project))!!,
|
||||
searchInComments = false,
|
||||
searchInNonJavaFiles = true,
|
||||
moveCallback = null
|
||||
).run()
|
||||
}
|
||||
}
|
||||
|
||||
MOVE_INNER_CLASS {
|
||||
override fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject) {
|
||||
val project = mainFile.getProject()
|
||||
|
||||
val classToMove = elementAtCaret!!.getParentByType(javaClass<PsiClass>())!!
|
||||
val newClassName = config.getNullableString("newClassName") ?: classToMove.getName()!!
|
||||
val outerInstanceParameterName = config.getNullableString("outerInstanceParameterName")
|
||||
val targetPackage = config.getString("targetPackage")
|
||||
|
||||
MoveInnerProcessor(
|
||||
project = project,
|
||||
innerClass = classToMove,
|
||||
name = newClassName,
|
||||
passOuterClass = outerInstanceParameterName != null,
|
||||
parameterName = outerInstanceParameterName,
|
||||
targetContainer = JavaPsiFacade.getInstance(project).findPackage(targetPackage)!!.getDirectories()[0]
|
||||
).run()
|
||||
}
|
||||
}
|
||||
|
||||
abstract fun runRefactoring(mainFile: PsiFile, elementAtCaret: PsiElement?, config: JsonObject)
|
||||
}
|
||||
|
||||
@@ -66,11 +66,41 @@ public class JetMoveTestGenerated extends AbstractJetMoveTest {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveAsMember/moveClassToTopLevelClassOfAnotherPackage/moveClassToTopLevelClassOfAnotherPackage.test");
|
||||
}
|
||||
|
||||
@TestMetadata("java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInAnotherPackage/moveNestedClassToTopLevelInAnotherPackage.test")
|
||||
public void testJava_moveClass_moveInnerToTop_moveNestedClassToTopLevelInAnotherPackage_MoveNestedClassToTopLevelInAnotherPackage() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInAnotherPackage/moveNestedClassToTopLevelInAnotherPackage.test");
|
||||
}
|
||||
|
||||
@TestMetadata("java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInTheSamePackage/moveNestedClassToTopLevelInTheSamePackage.test")
|
||||
public void testJava_moveClass_moveInnerToTop_moveNestedClassToTopLevelInTheSamePackage_MoveNestedClassToTopLevelInTheSamePackage() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInTheSamePackage/moveNestedClassToTopLevelInTheSamePackage.test");
|
||||
}
|
||||
|
||||
@TestMetadata("java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInTheSamePackageAndRename/moveNestedClassToTopLevelInTheSamePackageAndRename.test")
|
||||
public void testJava_moveClass_moveInnerToTop_moveNestedClassToTopLevelInTheSamePackageAndRename_MoveNestedClassToTopLevelInTheSamePackageAndRename() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveInnerToTop/moveNestedClassToTopLevelInTheSamePackageAndRename/moveNestedClassToTopLevelInTheSamePackageAndRename.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/moveClass/moveTopToInner/moveTopLevelClassToNestedClass/moveTopLevelClassToTopLevelClass.test")
|
||||
public void testJava_moveClass_moveTopToInner_moveTopLevelClassToNestedClass_MoveTopLevelClassToTopLevelClass() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveTopToInner/moveTopLevelClassToNestedClass/moveTopLevelClassToTopLevelClass.test");
|
||||
}
|
||||
|
||||
@TestMetadata("java/moveClass/moveTopToInner/moveTopLevelClassToTopLevelClass/moveTopLevelClassToTopLevelClass.test")
|
||||
public void testJava_moveClass_moveTopToInner_moveTopLevelClassToTopLevelClass_MoveTopLevelClassToTopLevelClass() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveTopToInner/moveTopLevelClassToTopLevelClass/moveTopLevelClassToTopLevelClass.test");
|
||||
}
|
||||
|
||||
@TestMetadata("java/moveClass/moveTopToInner/moveTopLevelClassToTopLevelClassOfAnotherPackage/moveTopLevelClassToTopLevelClassOfAnotherPackage.test")
|
||||
public void testJava_moveClass_moveTopToInner_moveTopLevelClassToTopLevelClassOfAnotherPackage_MoveTopLevelClassToTopLevelClassOfAnotherPackage() throws Exception {
|
||||
doTest("idea/testData/refactoring/move/java/moveClass/moveTopToInner/moveTopLevelClassToTopLevelClassOfAnotherPackage/moveTopLevelClassToTopLevelClassOfAnotherPackage.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");
|
||||
|
||||
Reference in New Issue
Block a user