blob: 89d45451bb3b519b85c2946787fdfb49bf8b2f31 [file] [log] [blame]
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();
}
}