/* * Copyright (C) 2006, 2007 Dennis Hunziker, Ueli Kistler */ package org.python.pydev.refactoring.tests.adapter; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.python.pydev.refactoring.ast.adapters.IClassDefAdapter; import org.python.pydev.refactoring.ast.adapters.ModuleAdapter; import org.python.pydev.refactoring.tests.core.AbstractIOTestCase; public class ClassDefAdapterTestCase extends AbstractIOTestCase { public ClassDefAdapterTestCase(String name) { super(name); } @Override public void runTest() throws Throwable { StringBuffer buffer = new StringBuffer(); ModuleAdapter module = createModuleAdapterFromDataSource(); List<IClassDefAdapter> classes = module.getClasses(); assertTrue(classes.size() > 0); for (IClassDefAdapter adapter : module.getClasses()) { printBaseClass(buffer, adapter); List<IClassDefAdapter> baseClasses = adapter.getBaseClasses(); Collections.sort(baseClasses, new Comparator<IClassDefAdapter>() { public int compare(IClassDefAdapter o1, IClassDefAdapter o2) { return o1.getName().compareTo(o2.getName()); } }); for (IClassDefAdapter base : baseClasses) { buffer.append("## " + adapter.getName()); printBaseDefClass(buffer, base); } } String generated = (buffer.toString().trim()); setTestGenerated(generated); assertEquals(getExpected(), getGenerated()); } private void printBaseDefClass(StringBuffer buffer, IClassDefAdapter base) { buffer.append(" Base: " + base.getName()); buffer.append("\n"); } private void printBaseClass(StringBuffer buffer, IClassDefAdapter adapter) { buffer.append("# " + adapter.getName()); for (String name : adapter.getBaseClassNames()) { buffer.append(" " + name); } buffer.append("\n"); } }