KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > framework > ClassFileParserTest


1 package jdepend.framework;
2
3 import java.io.File JavaDoc;
4 import java.io.IOException JavaDoc;
5 import java.util.ArrayList JavaDoc;
6 import java.util.Collection JavaDoc;
7
8 /**
9  * @author <b>Mike Clark</b>
10  * @author Clarkware Consulting, Inc.
11  */

12
13 public class ClassFileParserTest extends JDependTestCase {
14
15     private ClassFileParser parser;
16
17     public ClassFileParserTest(String JavaDoc name) {
18         super(name);
19     }
20
21     protected void setUp() {
22         super.setUp();
23         PackageFilter filter = new PackageFilter(new ArrayList JavaDoc());
24         parser = new ClassFileParser(filter);
25     }
26
27     protected void tearDown() {
28         super.tearDown();
29     }
30
31     public void testInvalidClassFile() {
32
33         File JavaDoc f = new File JavaDoc(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 JavaDoc expected) {
42             assertTrue(true);
43         }
44     }
45
46     public void testInterfaceClass() throws IOException JavaDoc {
47
48         File JavaDoc f = new File JavaDoc(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 JavaDoc 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 JavaDoc {
71
72         File JavaDoc f = new File JavaDoc(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 JavaDoc 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 JavaDoc {
96
97         File JavaDoc f = new File JavaDoc(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 JavaDoc 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 JavaDoc {
123
124         File JavaDoc f = new File JavaDoc(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 JavaDoc 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 JavaDoc {
144
145         File JavaDoc f = new File JavaDoc(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 JavaDoc imports = clazz.getImportedPackages();
157         assertEquals(1, imports.size());
158
159         assertTrue(imports.contains(new JavaPackage("java.lang")));
160
161     }
162 }
Popular Tags