Home | History | Annotate | Download | only in smalidea
      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.PsiMethod;
      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 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