KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > framework > CollectAllCyclesTest


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

10  
11 public class CollectAllCyclesTest extends JDependTestCase {
12
13     public CollectAllCyclesTest(String JavaDoc name) {
14         super(name);
15     }
16     
17     public void testNoCycles() {
18     
19         JavaPackage a = new JavaPackage("A");
20         JavaPackage b = new JavaPackage("B");
21                 
22         a.dependsUpon(b);
23                         
24         List JavaDoc aCycles = new ArrayList JavaDoc();
25         assertEquals(false, a.containsCycle());
26         assertEquals(false, a.collectAllCycles(aCycles));
27         assertListEquals(aCycles, new String JavaDoc[] {});
28     
29         List JavaDoc bCycles = new ArrayList JavaDoc();
30         assertEquals(false, b.containsCycle());
31         assertEquals(false, b.collectAllCycles(bCycles));
32         assertListEquals(bCycles, new String JavaDoc[] {});
33     }
34     
35     public void test2Node1BranchCycle() {
36     
37         JavaPackage a = new JavaPackage("A");
38         JavaPackage b = new JavaPackage("B");
39         
40         a.dependsUpon(b);
41         b.dependsUpon(a);
42                         
43         List JavaDoc aCycles = new ArrayList JavaDoc();
44         assertEquals(true, a.containsCycle());
45         assertEquals(true, a.collectAllCycles(aCycles));
46         assertListEquals(aCycles, new String JavaDoc[] {"A", "B", "A"});
47     
48         List JavaDoc bCycles = new ArrayList JavaDoc();
49         assertEquals(true, b.containsCycle());
50         assertEquals(true, b.collectAllCycles(bCycles));
51         assertListEquals(bCycles, new String JavaDoc[] {"B", "A", "B"});
52     }
53     
54     public void test3Node1BranchCycle() {
55     
56         JavaPackage a = new JavaPackage("A");
57         JavaPackage b = new JavaPackage("B");
58         JavaPackage c = new JavaPackage("C");
59                 
60         a.dependsUpon(b);
61         b.dependsUpon(c);
62         c.dependsUpon(a);
63         
64                 
65         List JavaDoc aCycles = new ArrayList JavaDoc();
66         assertEquals(true, a.containsCycle());
67         assertEquals(true, a.collectAllCycles(aCycles));
68         assertListEquals(aCycles, new String JavaDoc[] {"A", "B", "C", "A"});
69         
70         List JavaDoc bCycles = new ArrayList JavaDoc();
71         assertEquals(true, b.containsCycle());
72         assertEquals(true, b.collectAllCycles(bCycles));
73         assertListEquals(bCycles, new String JavaDoc[] {"B", "C", "A", "B"});
74         
75         List JavaDoc cCycles = new ArrayList JavaDoc();
76         assertEquals(true, c.containsCycle());
77         assertEquals(true, c.collectAllCycles(cCycles));
78         assertListEquals(cCycles, new String JavaDoc[] {"C", "A", "B", "C"});
79     }
80     
81     public void test3Node1BranchSubCycle() {
82     
83         JavaPackage a = new JavaPackage("A");
84         JavaPackage b = new JavaPackage("B");
85         JavaPackage c = new JavaPackage("C");
86                 
87         a.dependsUpon(b);
88         b.dependsUpon(c);
89         c.dependsUpon(b);
90         
91         List JavaDoc aCycles = new ArrayList JavaDoc();
92         assertEquals(true, a.containsCycle());
93         assertEquals(true, a.collectAllCycles(aCycles));
94         assertListEquals(aCycles, new String JavaDoc[] {"A", "B", "C", "B"});
95     
96         List JavaDoc bCycles = new ArrayList JavaDoc();
97         assertEquals(true, b.containsCycle());
98         assertEquals(true, b.collectAllCycles(bCycles));
99         assertListEquals(bCycles, new String JavaDoc[] {"B", "C", "B"});
100         
101         List JavaDoc cCycles = new ArrayList JavaDoc();
102         assertEquals(true, c.containsCycle());
103         assertEquals(true, c.collectAllCycles(cCycles));
104         assertListEquals(cCycles, new String JavaDoc[] {"C", "B", "C"});
105     }
106
107     public void test3Node2BranchCycle() {
108     
109         JavaPackage a = new JavaPackage("A");
110         JavaPackage b = new JavaPackage("B");
111         JavaPackage c = new JavaPackage("C");
112         
113         a.dependsUpon(b);
114         b.dependsUpon(a);
115         
116         a.dependsUpon(c);
117         c.dependsUpon(a);
118                         
119         List JavaDoc aCycles = new ArrayList JavaDoc();
120         assertEquals(true, a.containsCycle());
121         assertEquals(true, a.collectAllCycles(aCycles));
122         assertListEquals(aCycles, new String JavaDoc[] {"A", "B", "A", "C", "A"});
123     
124         List JavaDoc bCycles = new ArrayList JavaDoc();
125         assertEquals(true, b.containsCycle());
126         assertEquals(true, b.collectAllCycles(bCycles));
127         assertListEquals(bCycles, new String JavaDoc[] {"B", "A", "B", "C", "A"});
128         
129         List JavaDoc cCycles = new ArrayList JavaDoc();
130         assertEquals(true, c.containsCycle());
131         assertEquals(true, c.collectAllCycles(cCycles));
132         assertListEquals(cCycles, new String JavaDoc[] {"C", "A", "B", "A", "C"});
133     }
134     
135     public void test5Node2BranchCycle() {
136     
137         JavaPackage a = new JavaPackage("A");
138         JavaPackage b = new JavaPackage("B");
139         JavaPackage c = new JavaPackage("C");
140         JavaPackage d = new JavaPackage("D");
141         JavaPackage e = new JavaPackage("E");
142         
143         a.dependsUpon(b);
144         b.dependsUpon(c);
145         c.dependsUpon(a);
146         
147         a.dependsUpon(d);
148         d.dependsUpon(e);
149         e.dependsUpon(a);
150                 
151         List JavaDoc aCycles = new ArrayList JavaDoc();
152         assertEquals(true, a.containsCycle());
153         assertEquals(true, a.collectAllCycles(aCycles));
154         assertListEquals(aCycles, new String JavaDoc[] {"A", "B", "C", "A", "D", "E", "A"});
155         
156         List JavaDoc bCycles = new ArrayList JavaDoc();
157         assertEquals(true, b.containsCycle());
158         assertEquals(true, b.collectAllCycles(bCycles));
159         assertListEquals(bCycles, new String JavaDoc[] {"B", "C", "A", "B", "D", "E", "A"});
160         
161         List JavaDoc cCycles = new ArrayList JavaDoc();
162         assertEquals(true, c.containsCycle());
163         assertEquals(true, c.collectAllCycles(cCycles));
164         assertListEquals(cCycles, new String JavaDoc[] {"C", "A", "B", "C", "D", "E", "A"});
165         
166         List JavaDoc dCycles = new ArrayList JavaDoc();
167         assertEquals(true, d.containsCycle());
168         assertEquals(true, d.collectAllCycles(dCycles));
169         assertListEquals(dCycles, new String JavaDoc[] {"D", "E", "A", "B", "C", "A" , "D"});
170         
171         List JavaDoc eCycles = new ArrayList JavaDoc();
172         assertEquals(true, e.containsCycle());
173         assertEquals(true, e.collectAllCycles(eCycles));
174         assertListEquals(eCycles, new String JavaDoc[] {"E", "A", "B", "C", "A", "D", "E"});
175     }
176     
177     protected void assertListEquals(List JavaDoc list, String JavaDoc names[]) {
178     
179         assertEquals(names.length, list.size());
180         
181         for (int i=0; i < names.length; i++) {
182             assertEquals(names[i], ((JavaPackage)list.get(i)).getName());
183         }
184     }
185 }
186
Popular Tags