1 package jdepend.framework; 2 3 import java.io.File ; 4 import java.io.IOException ; 5 import java.util.ArrayList ; 6 import java.util.Collection ; 7 8 12 13 public class ClassFileParserTest extends JDependTestCase { 14 15 private ClassFileParser parser; 16 17 public ClassFileParserTest(String name) { 18 super(name); 19 } 20 21 protected void setUp() { 22 super.setUp(); 23 PackageFilter filter = new PackageFilter(new ArrayList ()); 24 parser = new ClassFileParser(filter); 25 } 26 27 protected void tearDown() { 28 super.tearDown(); 29 } 30 31 public void testInvalidClassFile() { 32 33 File f = new File (getTestDir() + getPackageSubDir() + 34 "ExampleTest.java"); 35 36 try { 37 38 parser.parse(f); 39 fail("Invalid class file: Should raise IOException"); 40 41 } catch (IOException expected) { 42 assertTrue(true); 43 } 44 } 45 46 public void testInterfaceClass() throws IOException { 47 48 File f = new File (getBuildDir() + getPackageSubDir() + 49 "ExampleInterface.class"); 50 51 JavaClass clazz = parser.parse(f); 52 53 assertTrue(clazz.isAbstract()); 54 55 assertEquals("jdepend.framework.ExampleInterface", clazz.getName()); 56 57 assertEquals("ExampleInterface.java", clazz.getSourceFile()); 58 59 Collection imports = clazz.getImportedPackages(); 60 assertEquals(6, imports.size()); 61 62 assertTrue(imports.contains(new JavaPackage("java.math"))); 63 assertTrue(imports.contains(new JavaPackage("java.text"))); 64 assertTrue(imports.contains(new JavaPackage("java.lang"))); 65 assertTrue(imports.contains(new JavaPackage("java.io"))); 66 assertTrue(imports.contains(new JavaPackage("java.rmi"))); 67 assertTrue(imports.contains(new JavaPackage("java.util"))); 68 } 69 70 public void testAbstractClass() throws IOException { 71 72 File f = new File (getBuildDir() + getPackageSubDir() + 73 "ExampleAbstractClass.class"); 74 75 JavaClass clazz = parser.parse(f); 76 77 assertTrue(clazz.isAbstract()); 78 79 assertEquals("jdepend.framework.ExampleAbstractClass", clazz.getName()); 80 81 assertEquals("ExampleAbstractClass.java", clazz.getSourceFile()); 82 83 Collection imports = clazz.getImportedPackages(); 84 assertEquals(7, imports.size()); 85 86 assertTrue(imports.contains(new JavaPackage("java.math"))); 87 assertTrue(imports.contains(new JavaPackage("java.text"))); 88 assertTrue(imports.contains(new JavaPackage("java.lang"))); 89 assertTrue(imports.contains(new JavaPackage("java.lang.reflect"))); 90 assertTrue(imports.contains(new JavaPackage("java.io"))); 91 assertTrue(imports.contains(new JavaPackage("java.rmi"))); 92 assertTrue(imports.contains(new JavaPackage("java.util"))); 93 } 94 95 public void testConcreteClass() throws IOException { 96 97 File f = new File (getBuildDir() + getPackageSubDir() + 98 "ExampleConcreteClass.class"); 99 100 JavaClass clazz = parser.parse(f); 101 102 assertFalse(clazz.isAbstract()); 103 104 assertEquals("jdepend.framework.ExampleConcreteClass", clazz.getName()); 105 106 assertEquals("ExampleConcreteClass.java", clazz.getSourceFile()); 107 108 Collection imports = clazz.getImportedPackages(); 109 assertEquals(9, imports.size()); 110 111 assertTrue(imports.contains(new JavaPackage("java.net"))); 112 assertTrue(imports.contains(new JavaPackage("java.text"))); 113 assertTrue(imports.contains(new JavaPackage("java.sql"))); 114 assertTrue(imports.contains(new JavaPackage("java.lang"))); 115 assertTrue(imports.contains(new JavaPackage("java.io"))); 116 assertTrue(imports.contains(new JavaPackage("java.rmi"))); 117 assertTrue(imports.contains(new JavaPackage("java.util"))); 118 assertTrue(imports.contains(new JavaPackage("java.util.jar"))); 119 assertTrue(imports.contains(new JavaPackage("java.math"))); 120 } 121 122 public void testInnerClass() throws IOException { 123 124 File f = new File (getBuildDir() + getPackageSubDir() + 125 "ExampleConcreteClass$ExampleInnerClass.class"); 126 127 JavaClass clazz = parser.parse(f); 128 129 assertFalse(clazz.isAbstract()); 130 131 assertEquals("jdepend.framework.ExampleConcreteClass$ExampleInnerClass", 132 clazz.getName()); 133 134 assertEquals("ExampleConcreteClass.java", clazz.getSourceFile()); 135 136 Collection imports = clazz.getImportedPackages(); 137 assertEquals(1, imports.size()); 138 139 assertTrue(imports.contains(new JavaPackage("java.lang"))); 140 141 } 142 143 public void testPackageClass() throws IOException { 144 145 File f = new File (getBuildDir() + getPackageSubDir() + 146 "ExamplePackageClass.class"); 147 148 JavaClass clazz = parser.parse(f); 149 150 assertFalse(clazz.isAbstract()); 151 152 assertEquals("jdepend.framework.ExamplePackageClass", clazz.getName()); 153 154 assertEquals("ExampleConcreteClass.java", clazz.getSourceFile()); 155 156 Collection imports = clazz.getImportedPackages(); 157 assertEquals(1, imports.size()); 158 159 assertTrue(imports.contains(new JavaPackage("java.lang"))); 160 161 } 162 } | Popular Tags |