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