1 | /* |
2 | * Copyright (c) 2001-2009, Jean Tessier |
3 | * All rights reserved. |
4 | * |
5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions |
7 | * are met: |
8 | * |
9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. |
11 | * |
12 | * * Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. |
15 | * |
16 | * * Neither the name of Jean Tessier nor the names of his contributors |
17 | * may be used to endorse or promote products derived from this software |
18 | * without specific prior written permission. |
19 | * |
20 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
21 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
22 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
23 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR |
24 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
25 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
26 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
27 | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
28 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
29 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
30 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
31 | */ |
32 | |
33 | package com.jeantessier.dependency; |
34 | |
35 | import junit.framework.*; |
36 | import org.apache.log4j.*; |
37 | |
38 | public class TestGraphSummarizer extends TestCase { |
39 | private RegularExpressionSelectionCriteria scopeCriteria; |
40 | private RegularExpressionSelectionCriteria filterCriteria; |
41 | private NodeFactory factory; |
42 | |
43 | private Node a_package; |
44 | private Node a_A_class; |
45 | private Node a_A_a_method; |
46 | private Node a_B_class; |
47 | |
48 | private Node b_package; |
49 | private Node b_B_class; |
50 | private Node b_B_b_method; |
51 | |
52 | private GraphSummarizer summarizer; |
53 | |
54 | protected void setUp() throws Exception { |
55 | Logger.getLogger(getClass()).info("Starting test: " + getName()); |
56 | |
57 | scopeCriteria = new RegularExpressionSelectionCriteria("//"); |
58 | filterCriteria = new RegularExpressionSelectionCriteria("//"); |
59 | factory = new NodeFactory(); |
60 | |
61 | a_package = factory.createPackage("a"); |
62 | a_A_class = factory.createClass("a.A"); |
63 | a_A_a_method = factory.createFeature("a.A.a"); |
64 | a_B_class = factory.createClass("a.B"); |
65 | |
66 | b_package = factory.createPackage("b"); |
67 | b_B_class = factory.createClass("b.B"); |
68 | b_B_b_method = factory.createFeature("b.B.b"); |
69 | |
70 | summarizer = new GraphSummarizer(scopeCriteria, filterCriteria); |
71 | } |
72 | |
73 | protected void tearDown() throws Exception { |
74 | Logger.getLogger(getClass()).info("End of " + getName()); |
75 | } |
76 | |
77 | public void testP2PasP2P() { |
78 | a_package.addDependency(b_package); |
79 | |
80 | scopeCriteria.setMatchingClasses(false); |
81 | scopeCriteria.setMatchingFeatures(false); |
82 | filterCriteria.setMatchingClasses(false); |
83 | filterCriteria.setMatchingFeatures(false); |
84 | |
85 | summarizer.traverseNodes(factory.getPackages().values()); |
86 | |
87 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
88 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
89 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().isEmpty()); |
90 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().isEmpty()); |
91 | |
92 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
93 | assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
94 | assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(summarizer.getScopeFactory().createPackage("b"))); |
95 | assertEquals(1, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
96 | assertTrue(summarizer.getScopeFactory().createPackage("b").getInboundDependencies().contains(summarizer.getScopeFactory().createPackage("a"))); |
97 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
98 | } |
99 | |
100 | public void testP2PasC2C() { |
101 | a_package.addDependency(b_package); |
102 | |
103 | scopeCriteria.setMatchingPackages(false); |
104 | scopeCriteria.setMatchingFeatures(false); |
105 | filterCriteria.setMatchingPackages(false); |
106 | filterCriteria.setMatchingFeatures(false); |
107 | |
108 | summarizer.traverseNodes(factory.getPackages().values()); |
109 | |
110 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
111 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
112 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
113 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
114 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().isEmpty()); |
115 | |
116 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
117 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
118 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
119 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
120 | |
121 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
122 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
123 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
124 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
125 | } |
126 | |
127 | public void testP2PasF2F() { |
128 | a_package.addDependency(b_package); |
129 | |
130 | scopeCriteria.setMatchingPackages(false); |
131 | scopeCriteria.setMatchingClasses(false); |
132 | filterCriteria.setMatchingPackages(false); |
133 | filterCriteria.setMatchingClasses(false); |
134 | |
135 | summarizer.traverseNodes(factory.getPackages().values()); |
136 | |
137 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
138 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
139 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
140 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
141 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
142 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
143 | |
144 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
145 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
146 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
147 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
148 | |
149 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
150 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
151 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
152 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
153 | |
154 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
155 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
156 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
157 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
158 | } |
159 | |
160 | public void testC2CasP2P() { |
161 | a_A_class.addDependency(b_B_class); |
162 | |
163 | scopeCriteria.setMatchingClasses(false); |
164 | scopeCriteria.setMatchingFeatures(false); |
165 | filterCriteria.setMatchingClasses(false); |
166 | filterCriteria.setMatchingFeatures(false); |
167 | |
168 | summarizer.traverseNodes(factory.getPackages().values()); |
169 | |
170 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
171 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
172 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); |
173 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
174 | |
175 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
176 | assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
177 | assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(summarizer.getScopeFactory().createPackage("b"))); |
178 | assertEquals(1, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
179 | assertTrue(summarizer.getScopeFactory().createPackage("b").getInboundDependencies().contains(summarizer.getScopeFactory().createPackage("a"))); |
180 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
181 | } |
182 | |
183 | public void testC2CasP2CSamePackage() { |
184 | a_A_class.addDependency(a_B_class); |
185 | |
186 | scopeCriteria.setMatchingClasses(false); |
187 | scopeCriteria.setMatchingFeatures(false); |
188 | filterCriteria.setMatchingPackages(false); |
189 | filterCriteria.setMatchingFeatures(false); |
190 | |
191 | summarizer.traverseNodes(factory.getPackages().values()); |
192 | |
193 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
194 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
195 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); |
196 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
197 | |
198 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
199 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
200 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
201 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
202 | } |
203 | |
204 | public void testC2CasC2C() { |
205 | a_A_class.addDependency(b_B_class); |
206 | |
207 | scopeCriteria.setMatchingPackages(false); |
208 | scopeCriteria.setMatchingFeatures(false); |
209 | filterCriteria.setMatchingPackages(false); |
210 | filterCriteria.setMatchingFeatures(false); |
211 | |
212 | summarizer.traverseNodes(factory.getPackages().values()); |
213 | |
214 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
215 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
216 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
217 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
218 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
219 | |
220 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
221 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
222 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
223 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
224 | |
225 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
226 | assertEquals(1, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
227 | assertTrue(summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().contains(summarizer.getScopeFactory().createClass("b.B"))); |
228 | assertEquals(1, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
229 | assertTrue(summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().contains(summarizer.getScopeFactory().createClass("a.A"))); |
230 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
231 | } |
232 | |
233 | public void testC2CasF2F() { |
234 | a_A_class.addDependency(b_B_class); |
235 | |
236 | scopeCriteria.setMatchingPackages(false); |
237 | scopeCriteria.setMatchingClasses(false); |
238 | filterCriteria.setMatchingPackages(false); |
239 | filterCriteria.setMatchingClasses(false); |
240 | |
241 | summarizer.traverseNodes(factory.getPackages().values()); |
242 | |
243 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
244 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
245 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
246 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
247 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
248 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
249 | |
250 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
251 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
252 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
253 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
254 | |
255 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
256 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
257 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
258 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
259 | |
260 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
261 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
262 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
263 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
264 | } |
265 | |
266 | public void testF2FasP2P() { |
267 | a_A_a_method.addDependency(b_B_b_method); |
268 | |
269 | scopeCriteria.setMatchingClasses(false); |
270 | scopeCriteria.setMatchingFeatures(false); |
271 | filterCriteria.setMatchingClasses(false); |
272 | filterCriteria.setMatchingFeatures(false); |
273 | |
274 | summarizer.traverseNodes(factory.getPackages().values()); |
275 | |
276 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
277 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
278 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); |
279 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
280 | |
281 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
282 | assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
283 | assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(summarizer.getScopeFactory().createPackage("b"))); |
284 | assertEquals(1, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
285 | assertTrue(summarizer.getScopeFactory().createPackage("b").getInboundDependencies().contains(summarizer.getScopeFactory().createPackage("a"))); |
286 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
287 | } |
288 | |
289 | public void testF2FasC2C() { |
290 | a_A_a_method.addDependency(b_B_b_method); |
291 | |
292 | scopeCriteria.setMatchingPackages(false); |
293 | scopeCriteria.setMatchingFeatures(false); |
294 | filterCriteria.setMatchingPackages(false); |
295 | filterCriteria.setMatchingFeatures(false); |
296 | |
297 | summarizer.traverseNodes(factory.getPackages().values()); |
298 | |
299 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
300 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
301 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
302 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
303 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
304 | |
305 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
306 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
307 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
308 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
309 | |
310 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
311 | assertEquals(1, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
312 | assertTrue(summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().contains(summarizer.getScopeFactory().createClass("b.B"))); |
313 | assertEquals(1, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
314 | assertTrue(summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().contains(summarizer.getScopeFactory().createClass("a.A"))); |
315 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
316 | } |
317 | |
318 | public void testF2FasF2F() { |
319 | a_A_a_method.addDependency(b_B_b_method); |
320 | |
321 | scopeCriteria.setMatchingPackages(false); |
322 | scopeCriteria.setMatchingClasses(false); |
323 | filterCriteria.setMatchingPackages(false); |
324 | filterCriteria.setMatchingClasses(false); |
325 | |
326 | summarizer.traverseNodes(factory.getPackages().values()); |
327 | |
328 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
329 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
330 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
331 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
332 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
333 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
334 | |
335 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
336 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
337 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
338 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
339 | |
340 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
341 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
342 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
343 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
344 | |
345 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
346 | assertEquals(1, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
347 | assertTrue(summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().contains(summarizer.getScopeFactory().createFeature("b.B.b"))); |
348 | assertEquals(1, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
349 | assertTrue(summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().contains(summarizer.getScopeFactory().createFeature("a.A.a"))); |
350 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
351 | } |
352 | |
353 | public void testF2CasP2P() { |
354 | a_A_a_method.addDependency(b_B_class); |
355 | |
356 | scopeCriteria.setMatchingClasses(false); |
357 | scopeCriteria.setMatchingFeatures(false); |
358 | filterCriteria.setMatchingClasses(false); |
359 | filterCriteria.setMatchingFeatures(false); |
360 | |
361 | summarizer.traverseNodes(factory.getPackages().values()); |
362 | |
363 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
364 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
365 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); |
366 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
367 | |
368 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
369 | assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
370 | assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(summarizer.getScopeFactory().createPackage("b"))); |
371 | assertEquals(1, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
372 | assertTrue(summarizer.getScopeFactory().createPackage("b").getInboundDependencies().contains(summarizer.getScopeFactory().createPackage("a"))); |
373 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
374 | } |
375 | |
376 | public void testF2CasC2C() { |
377 | a_A_a_method.addDependency(b_B_class); |
378 | |
379 | scopeCriteria.setMatchingPackages(false); |
380 | scopeCriteria.setMatchingFeatures(false); |
381 | filterCriteria.setMatchingPackages(false); |
382 | filterCriteria.setMatchingFeatures(false); |
383 | |
384 | summarizer.traverseNodes(factory.getPackages().values()); |
385 | |
386 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
387 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
388 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
389 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
390 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); |
391 | |
392 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
393 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
394 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
395 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
396 | |
397 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
398 | assertEquals(1, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
399 | assertTrue(summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().contains(summarizer.getScopeFactory().createClass("b.B"))); |
400 | assertEquals(1, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
401 | assertTrue(summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().contains(summarizer.getScopeFactory().createClass("a.A"))); |
402 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
403 | } |
404 | |
405 | public void testF2CasF2F() { |
406 | a_A_a_method.addDependency(b_B_class); |
407 | |
408 | scopeCriteria.setMatchingPackages(false); |
409 | scopeCriteria.setMatchingClasses(false); |
410 | filterCriteria.setMatchingPackages(false); |
411 | filterCriteria.setMatchingClasses(false); |
412 | |
413 | summarizer.traverseNodes(factory.getPackages().values()); |
414 | |
415 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
416 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
417 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
418 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
419 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
420 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
421 | |
422 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
423 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
424 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
425 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
426 | |
427 | assertEquals(0, summarizer.getScopeFactory().createClass("a").getInboundDependencies().size()); |
428 | assertEquals(0, summarizer.getScopeFactory().createClass("a").getOutboundDependencies().size()); |
429 | assertEquals(0, summarizer.getScopeFactory().createClass("b").getInboundDependencies().size()); |
430 | assertEquals(0, summarizer.getScopeFactory().createClass("b").getOutboundDependencies().size()); |
431 | |
432 | assertEquals(0, summarizer.getScopeFactory().createFeature("a").getInboundDependencies().size()); |
433 | assertEquals(0, summarizer.getScopeFactory().createFeature("a").getOutboundDependencies().size()); |
434 | assertEquals(0, summarizer.getScopeFactory().createFeature("b").getInboundDependencies().size()); |
435 | assertEquals(0, summarizer.getScopeFactory().createFeature("b").getOutboundDependencies().size()); |
436 | } |
437 | |
438 | public void testF2FasPCF2PCF() { |
439 | a_A_a_method.addDependency(b_B_b_method); |
440 | |
441 | summarizer.traverseNodes(factory.getPackages().values()); |
442 | |
443 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
444 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
445 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
446 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
447 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
448 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
449 | |
450 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
451 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
452 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
453 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
454 | |
455 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
456 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
457 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
458 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
459 | |
460 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
461 | assertEquals(1, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
462 | assertTrue(summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().contains(summarizer.getScopeFactory().createFeature("b.B.b"))); |
463 | assertEquals(1, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
464 | assertTrue(summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().contains(summarizer.getScopeFactory().createFeature("a.A.a"))); |
465 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
466 | } |
467 | |
468 | public void testC2CasPCF2PCF() { |
469 | a_A_class.addDependency(b_B_class); |
470 | |
471 | summarizer.traverseNodes(factory.getPackages().values()); |
472 | |
473 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
474 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
475 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
476 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
477 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
478 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
479 | |
480 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
481 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
482 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
483 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
484 | |
485 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
486 | assertEquals(1, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
487 | assertTrue(summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().contains(summarizer.getScopeFactory().createClass("b.B"))); |
488 | assertEquals(1, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
489 | assertTrue(summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().contains(summarizer.getScopeFactory().createClass("a.A"))); |
490 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
491 | |
492 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
493 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
494 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
495 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
496 | } |
497 | |
498 | public void testP2PasPCF2PCF() { |
499 | a_package.addDependency(b_package); |
500 | |
501 | summarizer.traverseNodes(factory.getPackages().values()); |
502 | |
503 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("a")); |
504 | assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().keySet().contains("b")); |
505 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("a.A")); |
506 | assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().keySet().contains("b.B")); |
507 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("a.A.a")); |
508 | assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().keySet().contains("b.B.b")); |
509 | |
510 | assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); |
511 | assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); |
512 | assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(summarizer.getScopeFactory().createPackage("b"))); |
513 | assertEquals(1, summarizer.getScopeFactory().createPackage("b").getInboundDependencies().size()); |
514 | assertTrue(summarizer.getScopeFactory().createPackage("b").getInboundDependencies().contains(summarizer.getScopeFactory().createPackage("a"))); |
515 | assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); |
516 | |
517 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getInboundDependencies().size()); |
518 | assertEquals(0, summarizer.getScopeFactory().createClass("a.A").getOutboundDependencies().size()); |
519 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getInboundDependencies().size()); |
520 | assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); |
521 | |
522 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getInboundDependencies().size()); |
523 | assertEquals(0, summarizer.getScopeFactory().createFeature("a.A.a").getOutboundDependencies().size()); |
524 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getInboundDependencies().size()); |
525 | assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); |
526 | } |
527 | } |