1 package test.net.sourceforge.pmd.typeresolution; 2 3 import net.sourceforge.pmd.typeresolution.PMDASMClassLoader; 4 5 import java.util.Map; 6 7 import junit.framework.TestCase; 8 9 public class PMDASMClassLoaderTest extends TestCase { 10 11 private PMDASMClassLoader cl; 12 protected void setUp() throws Exception { 13 cl = new PMDASMClassLoader(); 14 super.setUp(); 15 } 16 17 public void testLoadClassWithImportOnDemand() throws Exception { 18 String className = "test.net.sourceforge.pmd.typeresolution.ClassWithImportOnDemand"; 19 Class clazz = cl.loadClass(className); 20 assertNotNull(clazz); 21 Map imports = cl.getImportedClasses(className); 22 assertNotNull(imports); 23 assertEquals(4, imports.size()); 24 assertEquals("java.util.List", imports.get("List")); 25 assertEquals("java.util.ArrayList", imports.get("ArrayList")); 26 assertEquals("java.lang.Object", imports.get("Object")); 27 assertEquals("test.net.sourceforge.pmd.typeresolution.ClassWithImportOnDemand", imports.get("ClassWithImportOnDemand")); 28 } 29 30 public void testClassWithImportInnerOnDemand() throws Exception { 31 String className = "test.net.sourceforge.pmd.typeresolution.ClassWithImportInnerOnDemand"; 32 Class clazz = cl.loadClass(className); 33 assertNotNull(clazz); 34 Map imports = cl.getImportedClasses(className); 35 assertNotNull(imports); 36 System.err.println(imports); 37 assertEquals(8, imports.size()); 38 assertEquals("java.util.Iterator", imports.get("Iterator")); 39 assertEquals("java.util.Map", imports.get("Map")); 40 assertEquals("java.util.Set", imports.get("Set")); 41 assertEquals("java.util.Map$Entry", imports.get("Entry")); 42 assertEquals("java.util.Map$Entry", imports.get("Map$Entry")); 43 assertEquals("java.util.Map$Entry", imports.get("Map$Entry")); 44 assertEquals("java.lang.Object", imports.get("Object")); 45 assertEquals("test.net.sourceforge.pmd.typeresolution.ClassWithImportInnerOnDemand", imports.get("ClassWithImportInnerOnDemand")); 46 } 47 }