mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
copy multiple files :test
(cherry picked from commit dd440f563e52ab0e724d0b971c1ce95bb4da8c80)
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
package pack1;
|
||||
class Klass {
|
||||
}
|
||||
|
||||
class AnotherKlass {
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package pack2;
|
||||
class Klass {
|
||||
}
|
||||
|
||||
class AnotherKlass {
|
||||
}
|
||||
@@ -18,22 +18,11 @@ package com.intellij.refactoring;
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.CodeInsightTestCase;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import com.intellij.psi.search.ProjectScope;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.refactoring.copy.CopyHandler;
|
||||
import com.intellij.refactoring.inline.InlineToAnonymousClassHandler;
|
||||
import com.intellij.refactoring.inline.InlineToAnonymousClassProcessor;
|
||||
import com.intellij.testFramework.IdeaTestUtil;
|
||||
import com.intellij.testFramework.PlatformTestUtil;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class CopyTest extends CodeInsightTestCase {
|
||||
|
||||
@@ -57,4 +46,51 @@ public class CopyTest extends CodeInsightTestCase {
|
||||
PsiPackage pack2 = myJavaFacade.findPackage("pack2");
|
||||
assertTrue(CopyHandler.canCopy(new PsiElement[]{pack1.getDirectories()[0], pack2.getDirectories()[0]}));
|
||||
}
|
||||
|
||||
public void testMultipleClasses() throws Exception {
|
||||
String rootBefore = getRoot();
|
||||
PsiTestUtil.removeAllRoots(myModule, JavaSdkImpl.getMockJdk17());
|
||||
final VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, rootBefore, myFilesToDelete);
|
||||
final PsiClass aClass = myJavaFacade.findClass("pack1.Klass");
|
||||
assertNotNull(aClass);
|
||||
|
||||
final PsiFile containingFile = aClass.getContainingFile();
|
||||
|
||||
assertTrue(CopyHandler.canCopy(new PsiElement[]{containingFile}));
|
||||
assertFalse(CopyHandler.canClone(new PsiElement[]{containingFile}));
|
||||
|
||||
PsiPackage pack2 = myJavaFacade.findPackage("pack2");
|
||||
final PsiDirectory targetDirectory = pack2.getDirectories()[0];
|
||||
CopyHandler.doCopy(new PsiElement[]{containingFile}, targetDirectory);
|
||||
|
||||
VirtualFile fileAfter = root.findFileByRelativePath("pack2/Klass.java");
|
||||
VirtualFile fileExpected = root.findFileByRelativePath("pack2/Klass.expected.java");
|
||||
|
||||
PlatformTestUtil.assertFilesEqual(fileExpected, fileAfter);
|
||||
}
|
||||
|
||||
public void testMultipleFiles() throws Exception {
|
||||
String rootBefore = getRoot();
|
||||
PsiTestUtil.removeAllRoots(myModule, JavaSdkImpl.getMockJdk17());
|
||||
final VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, rootBefore, myFilesToDelete);
|
||||
|
||||
final VirtualFile first = root.findFileByRelativePath("from/1.txt");
|
||||
assertNotNull(first);
|
||||
final VirtualFile second = root.findFileByRelativePath("from/2.txt");
|
||||
assertNotNull(second);
|
||||
|
||||
final PsiFile firstPsi = myPsiManager.findFile(first);
|
||||
final PsiFile secondPsi = myPsiManager.findFile(second);
|
||||
|
||||
assertTrue(CopyHandler.canCopy(new PsiElement[]{firstPsi, secondPsi}));
|
||||
|
||||
final VirtualFile toDir = root.findChild("to");
|
||||
assertNotNull(toDir);
|
||||
final PsiDirectory targetDirectory = myPsiManager.findDirectory(toDir);
|
||||
|
||||
CopyHandler.doCopy(new PsiElement[]{firstPsi, secondPsi}, targetDirectory);
|
||||
|
||||
assertNotNull(root.findFileByRelativePath("to/1.txt"));
|
||||
assertNotNull(root.findFileByRelativePath("to/2.txt"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user