class members refactoring refactoring
[fedora-idea.git] / refactoring / tests / com / intellij / refactoring / RemoveMiddleManTest.java
blob5c85cb235c706125b9ce209000c2788dcbb72eaa
1 /*
2 * User: anna
3 * Date: 20-Aug-2008
4 */
5 package com.intellij.refactoring;
7 import com.intellij.openapi.fileEditor.FileDocumentManager;
8 import com.intellij.openapi.vfs.LocalFileSystem;
9 import com.intellij.openapi.vfs.VirtualFile;
10 import com.intellij.psi.PsiClass;
11 import com.intellij.psi.PsiField;
12 import com.intellij.psi.PsiMethod;
13 import com.intellij.refactoring.removemiddleman.DelegationUtils;
14 import com.intellij.refactoring.removemiddleman.RemoveMiddlemanProcessor;
15 import com.intellij.refactoring.util.classMembers.MemberInfo;
17 import java.util.ArrayList;
18 import java.util.List;
19 import java.util.Set;
21 public class RemoveMiddleManTest extends MultiFileTestCase{
22 protected String getTestRoot() {
23 return "/refactoring/removemiddleman/";
26 private void doTest() throws Exception {
27 doTest(true);
30 private void doTest(final boolean delete) throws Exception {
31 doTest(new PerformAction() {
32 public void performAction(final VirtualFile rootDir, final VirtualFile rootAfter) throws Exception {
33 PsiClass aClass = myJavaFacade.findClass("Test");
35 if (aClass == null) aClass = myJavaFacade.findClass("p.Test");
36 assertNotNull("Class Test not found", aClass);
38 final PsiField field = aClass.findFieldByName("myField", false);
39 final Set<PsiMethod> methods = DelegationUtils.getDelegatingMethodsForField(field);
40 List<MemberInfo> infos = new ArrayList<MemberInfo>();
41 for (PsiMethod method : methods) {
42 final MemberInfo info = new MemberInfo(method);
43 info.setChecked(true);
44 info.setToAbstract(delete);
45 infos.add(info);
47 RemoveMiddlemanProcessor processor = new RemoveMiddlemanProcessor(field, infos);
48 processor.run();
49 LocalFileSystem.getInstance().refresh(false);
50 FileDocumentManager.getInstance().saveAllDocuments();
52 });
55 public void testNoGetter() throws Exception {
56 doTest();
59 public void testSiblings() throws Exception {
60 doTest();
64 public void testInterface() throws Exception {
65 doTest();
68 public void testPresentGetter() throws Exception {
69 doTest();
72 public void testInterfaceDelegation() throws Exception {
73 doTest();