move file instead of splitting in classes when all classes in file are moved (IDEA-66437)

This commit is contained in:
anna
2011-03-14 14:08:37 +01:00
parent cc332d6529
commit 2f32d06e43
6 changed files with 55 additions and 9 deletions
@@ -1,5 +1,3 @@
package t;
class MyClass{}
class MyOneMoreClass{}
@@ -8,4 +8,4 @@ class S11{}
class S12{}
class S13{}
class S13{}
@@ -8,10 +8,14 @@ import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileAdapter;
import com.intellij.openapi.vfs.VirtualFileEvent;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiPackage;
import com.intellij.refactoring.move.moveClassesOrPackages.MoveDirectoryWithClassesProcessor;
import junit.framework.Assert;
import java.util.Arrays;
import java.util.Comparator;
@@ -37,7 +41,21 @@ public class MovePackageAsDirectoryTest extends MultiFileTestCase {
}
public void testMultipleClassesInOneFile() throws Exception {
doTest(createAction("pack1", "target"));
final boolean [] fileWasDeleted = new boolean[]{false};
final VirtualFileAdapter fileAdapter = new VirtualFileAdapter() {
@Override
public void fileDeleted(VirtualFileEvent event) {
fileWasDeleted[0] = !event.getFile().isDirectory();
}
};
VirtualFileManager.getInstance().addVirtualFileListener(fileAdapter);
try {
doTest(createAction("pack1", "target"));
}
finally {
VirtualFileManager.getInstance().removeVirtualFileListener(fileAdapter);
}
Assert.assertFalse("Deleted instead of moved", fileWasDeleted[0]);
}