• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.jf.smalidea;
2 
3 import com.intellij.openapi.fileEditor.FileDocumentManager;
4 import com.intellij.openapi.vfs.VirtualFile;
5 import com.intellij.psi.PsiClass;
6 import com.intellij.psi.PsiDocumentManager;
7 import com.intellij.psi.PsiField;
8 import com.intellij.psi.search.GlobalSearchScope;
9 import com.intellij.refactoring.MultiFileTestCase;
10 import com.intellij.refactoring.rename.RenameProcessor;
11 import org.jetbrains.annotations.NotNull;
12 
13 public class FieldRenameTest extends MultiFileTestCase {
14     @Override
getTestDataPath()15     protected String getTestDataPath() {
16         return "testData";
17     }
18 
19     @NotNull
20     @Override
getTestRoot()21     protected String getTestRoot() {
22         return "/fieldRename/";
23     }
24 
testFieldRename()25     public void testFieldRename() {
26         doTest("blah", "blah", "blort");
27     }
28 
doTest(@otNull final String containingClass, @NotNull final String oldFieldName, @NotNull final String newFieldName)29     private void doTest(@NotNull final String containingClass, @NotNull final String oldFieldName,
30                         @NotNull final String newFieldName) {
31         doTest(new PerformAction() {
32             @Override
33             public void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception {
34                 doRename(containingClass, oldFieldName, newFieldName);
35             }
36         });
37     }
38 
doRename(String containingClass, String oldFieldName, String newFieldName)39     private void doRename(String containingClass, String oldFieldName, String newFieldName) throws Exception {
40         PsiClass testClass = myJavaFacade.findClass(containingClass, GlobalSearchScope.allScope(getProject()));
41 
42         PsiField field = testClass.findFieldByName(oldFieldName, false);
43 
44         RenameProcessor processor = new RenameProcessor(getProject(), field, newFieldName, false, false);
45         processor.run();
46 
47         PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
48         FileDocumentManager.getInstance().saveAllDocuments();
49     }
50 }
51