summaryrefslogtreecommitdiff
path: root/plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java')
-rw-r--r--plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java193
1 files changed, 0 insertions, 193 deletions
diff --git a/plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java b/plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java
deleted file mode 100644
index 8f75c4921a1c..000000000000
--- a/plugins/typeMigration/test/com/intellij/refactoring/TypeMigrationTestBase.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package com.intellij.refactoring;
-
-import com.intellij.openapi.application.PluginPathManager;
-import com.intellij.openapi.command.WriteCommandAction;
-import com.intellij.openapi.fileEditor.FileDocumentManager;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.io.FileUtil;
-import com.intellij.openapi.vfs.LocalFileSystem;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.psi.PsiClass;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiField;
-import com.intellij.psi.PsiType;
-import com.intellij.psi.search.GlobalSearchScope;
-import com.intellij.psi.search.LocalSearchScope;
-import com.intellij.refactoring.typeMigration.TypeMigrationProcessor;
-import com.intellij.refactoring.typeMigration.TypeMigrationRules;
-import com.intellij.usageView.UsageInfo;
-import org.jetbrains.annotations.NonNls;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.PrintWriter;
-
-/**
- * @author anna
- * Date: 30-Apr-2008
- */
-public abstract class TypeMigrationTestBase extends MultiFileTestCase {
- @Override
- protected String getTestDataPath() {
- return PluginPathManager.getPluginHomePath("typeMigration") + "/testData";
- }
-
- protected void doTestFieldType(@NonNls String fieldName, PsiType fromType, PsiType toType) {
- doTestFieldType(fieldName, "Test", fromType, toType);
- }
-
- protected void doTestFieldType(@NonNls final String fieldName, String className, final PsiType rootType, final PsiType migrationType) {
- final RulesProvider provider = new RulesProvider() {
- @Override
- public TypeMigrationRules provide() throws Exception {
- final TypeMigrationRules rules = new TypeMigrationRules(rootType);
- rules.setMigrationRootType(migrationType);
- return rules;
- }
-
- @Override
- public PsiElement victims(PsiClass aClass) {
- final PsiField field = aClass.findFieldByName(fieldName, false);
- assert field != null : fieldName + " not found in " + aClass;
- return field;
- }
- };
-
- start(provider, className);
- }
-
- protected void doTestMethodType(@NonNls final String methodName, final PsiType rootType, final PsiType migrationType) {
- doTestMethodType(methodName, "Test", rootType, migrationType);
- }
-
- protected void doTestMethodType(@NonNls final String methodName, @NonNls String className, final PsiType rootType, final PsiType migrationType) {
- final RulesProvider provider = new RulesProvider() {
- @Override
- public TypeMigrationRules provide() throws Exception {
- final TypeMigrationRules rules = new TypeMigrationRules(rootType);
- rules.setMigrationRootType(migrationType);
- return rules;
- }
-
- @Override
- public PsiElement victims(PsiClass aClass) {
- return aClass.findMethodsByName(methodName, false)[0];
- }
- };
-
- start(provider, className);
- }
-
- protected void doTestFirstParamType(@NonNls final String methodName, final PsiType rootType, final PsiType migrationType) {
- doTestFirstParamType(methodName, "Test", rootType, migrationType);
- }
-
- protected void doTestFirstParamType(@NonNls final String methodName, String className, final PsiType rootType, final PsiType migrationType) {
- final RulesProvider provider = new RulesProvider() {
- @Override
- public TypeMigrationRules provide() throws Exception {
- final TypeMigrationRules rules = new TypeMigrationRules(rootType);
- rules.setMigrationRootType(migrationType);
- return rules;
- }
-
- @Override
- public PsiElement victims(PsiClass aClass) {
- return aClass.findMethodsByName(methodName, false)[0].getParameterList().getParameters()[0];
- }
- };
-
- start(provider, className);
- }
-
- public void start(final RulesProvider provider) {
- start(provider, "Test");
- }
-
- public void start(final RulesProvider provider, final String className) {
- doTest(new PerformAction() {
- @Override
- public void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception {
- TypeMigrationTestBase.this.performAction(className, rootDir.getName(), provider);
- }
- });
- }
-
- private void performAction(String className, String rootDir, RulesProvider provider) throws Exception {
- PsiClass aClass = myJavaFacade.findClass(className, GlobalSearchScope.allScope(getProject()));
-
- assertNotNull("Class " + className + " not found", aClass);
-
- final TypeMigrationRules rules = provider.provide();
- rules.setBoundScope(new LocalSearchScope(aClass.getContainingFile()));
- final TestTypeMigrationProcessor pr = new TestTypeMigrationProcessor(getProject(), provider.victims(aClass), rules);
-
- final UsageInfo[] usages = pr.findUsages();
- final String report = pr.getLabeler().getMigrationReport();
-
- WriteCommandAction.runWriteCommandAction(null, new Runnable() {
- public void run() {
- pr.performRefactoring(usages);
- }
- });
-
-
- String itemName = className + ".items";
- String patternName = getTestDataPath() + getTestRoot() + getTestName(true) + "/after/" + itemName;
-
- File patternFile = new File(patternName);
-
- if (!patternFile.exists()) {
- PrintWriter writer = new PrintWriter(new FileOutputStream(patternFile));
- try {
- writer.print(report);
- writer.close();
- }
- finally {
- writer.close();
- }
-
- System.out.println("Pattern not found, file " + patternName + " created.");
-
- LocalFileSystem.getInstance().refreshAndFindFileByIoFile(patternFile);
- }
-
- File graFile = new File(FileUtil.getTempDirectory() + File.separator + rootDir + File.separator + itemName);
-
- PrintWriter writer = new PrintWriter(new FileOutputStream(graFile));
- try {
- writer.print(report);
- writer.close();
- }
- finally {
- writer.close();
- }
-
- LocalFileSystem.getInstance().refreshAndFindFileByIoFile(graFile);
- FileDocumentManager.getInstance().saveAllDocuments();
- }
-
- interface RulesProvider {
- TypeMigrationRules provide() throws Exception;
-
- PsiElement victims(PsiClass aClass);
- }
-
- private static class TestTypeMigrationProcessor extends TypeMigrationProcessor {
- public TestTypeMigrationProcessor(final Project project, final PsiElement root, final TypeMigrationRules rules) {
- super(project, root, rules);
- }
-
- @NotNull
- @Override
- public UsageInfo[] findUsages() {
- return super.findUsages();
- }
-
- @Override
- public void performRefactoring(final UsageInfo[] usages) {
- super.performRefactoring(usages);
- }
- }
-} \ No newline at end of file