KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > framework > JarFileParserTest


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

11
12 public class JarFileParserTest extends JDependTestCase {
13
14     private File JavaDoc jarFile;
15     private File JavaDoc zipFile;
16
17     public JarFileParserTest(String JavaDoc name) {
18         super(name);
19     }
20
21     protected void setUp() {
22         super.setUp();
23
24         jarFile = new File JavaDoc(getTestDataDir() + "test.jar");
25         zipFile = new File JavaDoc(getTestDataDir() + "test.zip");
26     }
27
28     protected void tearDown() {
29         super.tearDown();
30     }
31
32     public void testInvalidJarFile() throws IOException JavaDoc {
33
34         JavaClassBuilder builder = new JavaClassBuilder();
35         File JavaDoc bogusFile = new File JavaDoc(getTestDataDir() + "bogus.jar");
36
37         try {
38
39             builder.buildClasses(bogusFile);
40             fail("Should raise IOException");
41
42         } catch (IOException JavaDoc expected) {
43             assertTrue(true);
44         }
45     }
46
47     public void testInvalidZipFile() throws IOException JavaDoc {
48
49         JavaClassBuilder builder = new JavaClassBuilder();
50         File JavaDoc bogusFile = new File JavaDoc(getTestDataDir() + "bogus.zip");
51
52         try {
53
54             builder.buildClasses(bogusFile);
55             fail("Should raise IOException");
56
57         } catch (IOException JavaDoc expected) {
58             assertTrue(true);
59         }
60     }
61
62     public void testJarFile() throws IOException JavaDoc {
63
64         JavaClassBuilder builder = new JavaClassBuilder();
65
66         Collection JavaDoc classes = builder.buildClasses(jarFile);
67         assertEquals(5, classes.size());
68
69         assertClassesExist(classes);
70         assertInnerClassesExist(classes);
71     }
72
73     public void testJarFileWithoutInnerClasses() throws IOException JavaDoc {
74
75         FileManager fm = new FileManager();
76         fm.acceptInnerClasses(false);
77
78         JavaClassBuilder builder = new JavaClassBuilder(fm);
79
80         Collection JavaDoc classes = builder.buildClasses(jarFile);
81         assertEquals(4, classes.size());
82
83         assertClassesExist(classes);
84     }
85
86     public void testZipFile() throws IOException JavaDoc {
87
88         JavaClassBuilder builder = new JavaClassBuilder();
89
90         Collection JavaDoc classes = builder.buildClasses(zipFile);
91         assertEquals(5, classes.size());
92
93         assertClassesExist(classes);
94         assertInnerClassesExist(classes);
95     }
96
97     public void testZipFileWithoutInnerClasses() throws IOException JavaDoc {
98
99         FileManager fm = new FileManager();
100         fm.acceptInnerClasses(false);
101
102         JavaClassBuilder builder = new JavaClassBuilder(fm);
103
104         Collection JavaDoc classes = builder.buildClasses(zipFile);
105         assertEquals(4, classes.size());
106
107         assertClassesExist(classes);
108     }
109     
110     public void testCountClasses() throws IOException JavaDoc {
111
112         JDepend jdepend = new JDepend();
113         jdepend.addDirectory(getTestDataDir());
114
115         jdepend.analyzeInnerClasses(true);
116         assertEquals(10, jdepend.countClasses());
117
118         jdepend.analyzeInnerClasses(false);
119         assertEquals(8, jdepend.countClasses());
120     }
121
122     private void assertClassesExist(Collection JavaDoc classes) {
123         assertTrue(classes.contains(new JavaClass(
124                 "jdepend.framework.ExampleAbstractClass")));
125         assertTrue(classes.contains(new JavaClass(
126                 "jdepend.framework.ExampleInterface")));
127         assertTrue(classes.contains(new JavaClass(
128                 "jdepend.framework.ExampleConcreteClass")));
129     }
130     
131     private void assertInnerClassesExist(Collection JavaDoc classes) {
132         assertTrue(classes.contains(new JavaClass(
133                 "jdepend.framework.ExampleConcreteClass$ExampleInnerClass")));
134     }
135 }
Popular Tags