/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.python.pydev.refactoring.refactorer.refactorings.rename;
import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import org.python.pydev.parser.visitors.scope.ASTEntry;
import com.python.pydev.refactoring.wizards.rename.PyRenameImportProcess;
public class RenameModuleRefactoringTest extends RefactoringRenameTestBase {
public static void main(String[] args) {
try {
DEBUG_REFERENCES = false;
RenameModuleRefactoringTest test = new RenameModuleRefactoringTest();
test.setUp();
test.testRenameModuleInWorkspace3();
test.tearDown();
junit.textui.TestRunner.run(RenameModuleRefactoringTest.class);
} catch (Throwable e) {
e.printStackTrace();
}
}
@Override
protected Class getProcessUnderTest() {
return PyRenameImportProcess.class;
}
public void testRenameModuleInWorkspace() throws Exception {
//importer.py and importer2.py are the same:
//
//import mod1
//from mod1 import submod1
Map<String, HashSet<ASTEntry>> references = getReferencesForRenameSimple("reflib.renamemodule.importer", 0, 8);
assertEquals(3, references.size());
assertTrue(references.containsKey(CURRENT_MODULE_IN_REFERENCES));
assertEquals(4, references.get(CURRENT_MODULE_IN_REFERENCES).size());
assertTrue(references.containsKey("reflib.renamemodule.mod1.__init__")); //module renamed
assertEquals(1, references.get("reflib.renamemodule.mod1.__init__").size());
assertTrue(references.containsKey("reflib.renamemodule.importer2"));
assertEquals(4, references.get("reflib.renamemodule.importer2").size());
}
public void testRenameModuleInWorkspace2() throws Exception {
//importer.py and importer2.py are the same:
//
//import mod1
//from mod1 import submod1
Map<String, HashSet<ASTEntry>> references = getReferencesForRenameSimple("reflib.renamemodule.importer", 1, 18);
checkSubMod1References(references);
assertTrue(references.containsKey("reflib.renamemodule.importer2"));
assertTrue(references.containsKey("reflib.renamemodule.importer3"));
assertTrue(references.containsKey("reflib.renamemodule.importer4"));
assertTrue(references.containsKey("reflib.renamemodule.importer5"));
assertTrue(references.containsKey("reflib.renamemodule.mod1.submod1")); //module renamed
}
public void testRenameModuleInWorkspace3() throws Exception {
//from reflib.renamemodule.mod1 import submod1
Map<String, HashSet<ASTEntry>> references = getReferencesForRenameSimple("reflib.renamemodule.importer5", 0, 40);
checkSubMod1References(references);
assertTrue(references.containsKey("reflib.renamemodule.importer"));
assertTrue(references.containsKey("reflib.renamemodule.importer2"));
assertTrue(references.containsKey("reflib.renamemodule.importer3"));
assertTrue(references.containsKey("reflib.renamemodule.importer4"));
assertTrue(references.containsKey("reflib.renamemodule.mod1.submod1")); //module renamed
}
private void checkSubMod1References(Map<String, HashSet<ASTEntry>> references) {
assertEquals(6, references.size());
assertTrue(references.containsKey(CURRENT_MODULE_IN_REFERENCES));
assertEquals(1, references.get(CURRENT_MODULE_IN_REFERENCES).size());
for (Collection<ASTEntry> values : references.values()) {
assertEquals(1, values.size());
}
}
}