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  }