blob: 89d45451bb3b519b85c2946787fdfb49bf8b2f31 [file] [log] [blame]
Ben Gruver07e6ade2015-03-28 12:50:36 -07001package org.jf.smalidea;
2
3import com.intellij.openapi.roots.JavaProjectRootsUtil;
4import com.intellij.openapi.vfs.VirtualFile;
5import com.intellij.psi.PsiClass;
Ben Gruver07e6ade2015-03-28 12:50:36 -07006import com.intellij.psi.search.GlobalSearchScope;
7import com.intellij.refactoring.MultiFileTestCase;
8import com.intellij.refactoring.PackageWrapper;
9import com.intellij.refactoring.move.moveClassesOrPackages.AutocreatingSingleSourceRootMoveDestination;
10import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesProcessor;
Ben Gruver07e6ade2015-03-28 12:50:36 -070011import org.jetbrains.annotations.NotNull;
12
13import java.util.List;
14
15public class ClassMoveTest extends MultiFileTestCase {
16 @Override
17 protected String getTestDataPath() {
18 return "testData";
19 }
20
21 @NotNull
22 @Override
23 protected String getTestRoot() {
24 return "/classMove/";
25 }
26
27 public void testBasicFromNoPackage() {
28 doTest("blah", "my");
29 }
30
31 public void testBasicToNoPackage() {
32 doTest("my.blah", "");
33 }
34
35 private void doTest(@NotNull final String oldQualifiedName, @NotNull final String newPackage) {
36 doTest(new PerformAction() {
37 @Override
38 public void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception {
39 doMove(oldQualifiedName, newPackage);
40 }
41 });
42 }
43
44 private void doMove(String oldQualifiedName, final String newPackage) throws Exception {
45 final PsiClass testClass = myJavaFacade.findClass(oldQualifiedName, GlobalSearchScope.allScope(getProject()));
46
Ben Gruver07e6ade2015-03-28 12:50:36 -070047 final List<VirtualFile> contentSourceRoots =
48 JavaProjectRootsUtil.getSuitableDestinationSourceRoots(getProject());
49
50 new MoveClassesOrPackagesProcessor(getProject(), new PsiClass[] {testClass},
51 new AutocreatingSingleSourceRootMoveDestination(new PackageWrapper(getPsiManager(), newPackage),
52 contentSourceRoots.get(0)), false, false, null).run();
Ben Gruver07e6ade2015-03-28 12:50:36 -070053 }
54
55}