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 }