/*
* Copyright (C) 2006, 2007 Dennis Hunziker, Ueli Kistler
* Copyright (C) 2007 Reto Schuettel, Robin Stocker
*/
package org.python.pydev.refactoring.tests.adapter;
import org.eclipse.jface.text.Document;
import org.python.pydev.refactoring.ast.FQIdentifier;
import org.python.pydev.refactoring.ast.adapters.ModuleAdapter;
import org.python.pydev.refactoring.ast.visitors.VisitorFactory;
import org.python.pydev.refactoring.tests.core.AbstractIOTestCase;
import com.thoughtworks.xstream.XStream;
public class ModuleAdapterTestCase extends AbstractIOTestCase {
public ModuleAdapterTestCase(String name) {
super(name);
}
@Override
public void runTest() throws Throwable {
StringBuffer buffer = new StringBuffer();
ModuleAdapterTestConfig config = null;
XStream xstream = new XStream();
xstream.alias("config", ModuleAdapterTestConfig.class);
ModuleAdapter module = VisitorFactory.createModuleAdapter(null, null, new Document(data.source),
new PythonNatureStub(), createVersionProvider());
if (data.config.length() > 0) {
config = (ModuleAdapterTestConfig) xstream.fromXML(data.config);
} else {
fail("Could not unserialize configuration");
return; /* explicit return, fail should already abort */
}
for (String identifier : config.resolveNames) {
for (FQIdentifier id : module.resolveFullyQualified(identifier)) {
buffer.append("# " + identifier + " -> " + id.getFQName());
buffer.append("\n");
}
}
buffer.append("# Imported regular modules (Alias, Realname)");
for (String aliasModule : module.getRegularImportedModules().keySet()) {
buffer.append("\n# " + aliasModule + " " + module.getRegularImportedModules().get(aliasModule));
}
buffer.append("\n");
buffer.append("# AliasToIdentifier (Module, Realname, Alias)");
for (FQIdentifier identifier : module.getAliasToIdentifier()) {
buffer.append("\n# " + identifier.getModule() + " " + identifier.getRealName() + " "
+ identifier.getAlias());
}
this.setTestGenerated(buffer.toString().trim());
assertEquals(getExpected(), getGenerated());
}
}