KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > framework > MetricTest


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

10
11 public class MetricTest extends JDependTestCase {
12
13     private JDepend jdepend;
14     private static NumberFormat JavaDoc formatter;
15
16     static {
17         formatter = NumberFormat.getInstance();
18         formatter.setMaximumFractionDigits(2);
19     }
20
21     public MetricTest(String JavaDoc name) {
22         super(name);
23     }
24
25     protected void setUp() {
26         super.setUp();
27
28         PackageFilter filter = new PackageFilter();
29         filter.addPackage("java.*");
30         filter.addPackage("javax.*");
31
32         jdepend = new JDepend(filter);
33         jdepend.analyzeInnerClasses(false);
34     }
35
36     protected void tearDown() {
37         super.tearDown();
38     }
39
40     public void testAnalyzeClassFiles() throws IOException JavaDoc {
41         jdepend.addDirectory(getBuildDir());
42         assertAnalyzePackages();
43     }
44
45     private void assertAnalyzePackages() {
46
47         assertEquals(39, jdepend.countClasses());
48
49         PackageFilter filter = jdepend.getFilter();
50         filter.addPackage("junit.*");
51
52         jdepend.analyze();
53
54         assertFrameworkPackage();
55         assertTextUIPackage();
56         assertSwingUIPackage();
57         assertXmlUIPackage();
58     }
59
60     private void assertFrameworkPackage() {
61
62         JavaPackage p = jdepend.getPackage("jdepend.framework");
63         assertNotNull(p);
64
65         assertEquals(25, p.getConcreteClassCount());
66         assertEquals(4, p.getAbstractClassCount());
67         assertEquals(3, p.afferentCoupling());
68         assertEquals(0, p.efferentCoupling());
69         assertEquals(format(0.14f), format(p.abstractness()));
70         assertEquals(format(0.0f), format(p.instability()));
71         assertEquals(format(0.86f), format(p.distance()));
72         assertEquals(1, p.getVolatility());
73     }
74
75     private void assertTextUIPackage() {
76
77         JavaPackage p = jdepend.getPackage("jdepend.textui");
78         assertNotNull(p);
79
80         assertEquals(1, p.getConcreteClassCount());
81         assertEquals(0, p.getAbstractClassCount());
82         assertEquals(1, p.efferentCoupling());
83         assertEquals("0", format(p.abstractness()));
84         assertEquals(1, p.afferentCoupling());
85         assertEquals(format(0.5f), format(p.instability()));
86         assertEquals(format(0.5f), format(p.distance()));
87         assertEquals(1, p.getVolatility());
88     }
89
90     private void assertSwingUIPackage() {
91
92         JavaPackage p = jdepend.getPackage("jdepend.swingui");
93         assertNotNull(p);
94
95         assertEquals(7, p.getConcreteClassCount());
96         assertEquals(1, p.getAbstractClassCount());
97         assertEquals(0, p.afferentCoupling());
98         assertEquals(1, p.efferentCoupling());
99         assertEquals(format(0.12f), format(p.abstractness()));
100         assertEquals("1", format(p.instability()));
101         assertEquals(format(0.12f), format(p.distance()));
102         assertEquals(1, p.getVolatility());
103     }
104     
105     private void assertXmlUIPackage() {
106
107         JavaPackage p = jdepend.getPackage("jdepend.xmlui");
108         assertNotNull(p);
109
110         assertEquals(1, p.getConcreteClassCount());
111         assertEquals(0, p.getAbstractClassCount());
112         assertEquals(0, p.afferentCoupling());
113         assertEquals(2, p.efferentCoupling());
114         assertEquals(format(0.0f), format(p.abstractness()));
115         assertEquals("1", format(p.instability()));
116         assertEquals(format(0.0f), format(p.distance()));
117         assertEquals(1, p.getVolatility());
118     }
119
120     public void testConfiguredVolatility() throws IOException JavaDoc {
121
122         jdepend.addDirectory(getBuildDir());
123
124         JavaPackage pkg = new JavaPackage("jdepend.swingui");
125         pkg.setVolatility(0);
126
127         jdepend.addPackage(pkg);
128
129         jdepend.analyze();
130
131         JavaPackage analyzedPkg = jdepend.getPackage(pkg.getName());
132         assertEquals(0, analyzedPkg.getVolatility());
133         assertEquals(format(0.0f), format(analyzedPkg.distance()));
134         assertEquals(7, analyzedPkg.getConcreteClassCount());
135     }
136
137     private String JavaDoc format(float f) {
138         return formatter.format(f);
139     }
140 }
Popular Tags