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