| package org.jf.smalidea; |
| |
| import com.intellij.openapi.roots.JavaProjectRootsUtil; |
| import com.intellij.openapi.vfs.VirtualFile; |
| import com.intellij.psi.PsiClass; |
| import com.intellij.psi.search.GlobalSearchScope; |
| import com.intellij.refactoring.MultiFileTestCase; |
| import com.intellij.refactoring.PackageWrapper; |
| import com.intellij.refactoring.move.moveClassesOrPackages.AutocreatingSingleSourceRootMoveDestination; |
| import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesProcessor; |
| import org.jetbrains.annotations.NotNull; |
| |
| import java.util.List; |
| |
| public class ClassMoveTest extends MultiFileTestCase { |
| @Override |
| protected String getTestDataPath() { |
| return "testData"; |
| } |
| |
| @NotNull |
| @Override |
| protected String getTestRoot() { |
| return "/classMove/"; |
| } |
| |
| public void testBasicFromNoPackage() { |
| doTest("blah", "my"); |
| } |
| |
| public void testBasicToNoPackage() { |
| doTest("my.blah", ""); |
| } |
| |
| private void doTest(@NotNull final String oldQualifiedName, @NotNull final String newPackage) { |
| doTest(new PerformAction() { |
| @Override |
| public void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception { |
| doMove(oldQualifiedName, newPackage); |
| } |
| }); |
| } |
| |
| private void doMove(String oldQualifiedName, final String newPackage) throws Exception { |
| final PsiClass testClass = myJavaFacade.findClass(oldQualifiedName, GlobalSearchScope.allScope(getProject())); |
| |
| final List<VirtualFile> contentSourceRoots = |
| JavaProjectRootsUtil.getSuitableDestinationSourceRoots(getProject()); |
| |
| new MoveClassesOrPackagesProcessor(getProject(), new PsiClass[] {testClass}, |
| new AutocreatingSingleSourceRootMoveDestination(new PackageWrapper(getPsiManager(), newPackage), |
| contentSourceRoots.get(0)), false, false, null).run(); |
| } |
| |
| } |