EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.classreader]

COVERAGE SUMMARY FOR SOURCE FILE [TestMonitor.java]

nameclass, %method, %block, %line, %
TestMonitor.java100% (1/1)100% (19/19)100% (2195/2195)100% (265/265)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestMonitor100% (1/1)100% (19/19)100% (2195/2195)100% (265/265)
<static initializer> 100% (1/1)100% (12/12)100% (1/1)
TestMonitor (): void 100% (1/1)100% (3/3)100% (1/1)
assertAddedClasses (int): void 100% (1/1)100% (26/26)100% (4/4)
assertAdditionsAndRemovals (int, int): void 100% (1/1)100% (7/7)100% (3/3)
assertRemovedClasses (int): void 100% (1/1)100% (25/25)100% (4/4)
setUp (): void 100% (1/1)100% (34/34)100% (8/8)
testExtractAgainInOpenSession (): void 100% (1/1)100% (177/177)100% (21/21)
testFileTracking (): void 100% (1/1)100% (138/138)100% (18/18)
testFileTrackingAcrossSessions (): void 100% (1/1)100% (282/282)100% (34/34)
testFileTrackingWithMissingFile (): void 100% (1/1)100% (178/178)100% (21/21)
testFileTrackingWithSkippedFile (): void 100% (1/1)100% (233/233)100% (28/28)
testNewClassfile (): void 100% (1/1)100% (56/56)100% (7/7)
testOpenSession (): void 100% (1/1)100% (130/130)100% (15/15)
testReloadAfterClosingSessionSession (): void 100% (1/1)100% (181/181)100% (22/22)
testRemoval (): void 100% (1/1)100% (126/126)100% (14/14)
testRepeatAcrossSessions (): void 100% (1/1)100% (167/167)100% (18/18)
testRepeatInGroup (): void 100% (1/1)100% (127/127)100% (14/14)
testRepeatInSession (): void 100% (1/1)100% (147/147)100% (16/16)
testSkip (): void 100% (1/1)100% (146/146)100% (16/16)

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 
33package com.jeantessier.classreader;
34 
35import java.io.*;
36 
37import junit.framework.*;
38 
39public class TestMonitor extends TestCase {
40    public static final String TEST_CLASS = "test";
41    public static final String TEST_FILENAME = "classes" + File.separator + "test.class";
42    
43    private MockVisitor       addVisitor;
44    private MockRemoveVisitor removeVisitor;
45 
46    private Monitor monitor;
47 
48    private Classfile testClassfile;
49    
50    protected void setUp() throws Exception {
51        super.setUp();
52 
53        addVisitor    = new MockVisitor();
54        removeVisitor = new MockRemoveVisitor();
55 
56        monitor = new Monitor(addVisitor, removeVisitor);
57 
58        ClassfileLoader loader = new AggregatingClassfileLoader();
59        loader.load(TEST_FILENAME);
60        testClassfile = loader.getClassfile(TEST_CLASS);
61    }
62 
63    public void testFileTracking() {
64        monitor.beginSession(new LoadEvent(this, null, null, null));
65        monitor.beginGroup(new LoadEvent(this, null, null, null));
66 
67        assertEquals("previous", 0, monitor.previousFiles.size());
68        assertEquals("current", 0, monitor.currentFiles.size());
69        
70        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
71        
72        assertEquals("previous", 0, monitor.previousFiles.size());
73        assertEquals("current", 1, monitor.currentFiles.size());
74        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
75        
76        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
77        
78        assertEquals("previous", 0, monitor.previousFiles.size());
79        assertEquals("current", 1, monitor.currentFiles.size());
80        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
81        
82        monitor.endGroup(new LoadEvent(this, null, null, null));
83        monitor.endSession(new LoadEvent(this, null, null, null));
84        
85        assertEquals("previous", 1, monitor.previousFiles.size());
86        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
87        assertEquals("current", 0, monitor.currentFiles.size());
88    }
89 
90    public void testFileTrackingAcrossSessions() {
91        monitor.beginSession(new LoadEvent(this, null, null, null));
92        monitor.beginGroup(new LoadEvent(this, null, null, null));
93        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
94        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
95        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
96        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
97        monitor.endGroup(new LoadEvent(this, null, null, null));
98        monitor.endSession(new LoadEvent(this, null, null, null));
99        
100        assertEquals("previous", 1, monitor.previousFiles.size());
101        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
102        assertEquals("current", 0, monitor.currentFiles.size());
103        
104        monitor.beginSession(new LoadEvent(this, null, null, null));
105        monitor.beginGroup(new LoadEvent(this, null, null, null));
106        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
107        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
108 
109        assertEquals("previous", 1, monitor.previousFiles.size());
110        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
111        assertEquals("current", 1, monitor.currentFiles.size());
112        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
113 
114        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
115 
116        assertEquals("previous", 1, monitor.previousFiles.size());
117        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
118        assertEquals("current", 1, monitor.currentFiles.size());
119        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
120 
121        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
122 
123        assertEquals("previous", 0, monitor.previousFiles.size());
124        assertEquals("current", 1, monitor.currentFiles.size());
125        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
126 
127        monitor.endGroup(new LoadEvent(this, null, null, null));
128        monitor.endSession(new LoadEvent(this, null, null, null));
129        
130        assertEquals("previous", 1, monitor.previousFiles.size());
131        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
132        assertEquals("current", 0, monitor.currentFiles.size());
133    }
134 
135    public void testFileTrackingWithSkippedFile() {
136        monitor.beginSession(new LoadEvent(this, null, null, null));
137        monitor.beginGroup(new LoadEvent(this, null, null, null));
138        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
139        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
140        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
141        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
142        monitor.endGroup(new LoadEvent(this, null, null, null));
143        monitor.endSession(new LoadEvent(this, null, null, null));
144        
145        assertEquals("previous", 1, monitor.previousFiles.size());
146        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
147        assertEquals("current", 0, monitor.currentFiles.size());
148        
149        monitor.beginSession(new LoadEvent(this, null, null, null));
150        monitor.beginGroup(new LoadEvent(this, null, null, null));
151        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
152 
153        assertEquals("previous", 1, monitor.previousFiles.size());
154        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
155        assertEquals("current", 1, monitor.currentFiles.size());
156        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
157 
158        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
159 
160        assertEquals("previous", 0, monitor.previousFiles.size());
161        assertEquals("current", 1, monitor.currentFiles.size());
162        assertTrue("TEST_FILENAME not in current", monitor.currentFiles.contains(TEST_FILENAME));
163 
164        monitor.endGroup(new LoadEvent(this, null, null, null));
165        monitor.endSession(new LoadEvent(this, null, null, null));
166        
167        assertEquals("previous", 1, monitor.previousFiles.size());
168        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
169        assertEquals("current", 0, monitor.currentFiles.size());
170    }
171 
172    public void testFileTrackingWithMissingFile() {
173        monitor.beginSession(new LoadEvent(this, null, null, null));
174        monitor.beginGroup(new LoadEvent(this, null, null, null));
175        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
176        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
177        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
178        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
179        monitor.endGroup(new LoadEvent(this, null, null, null));
180        monitor.endSession(new LoadEvent(this, null, null, null));
181        
182        assertEquals("previous", 1, monitor.previousFiles.size());
183        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
184        assertEquals("current", 0, monitor.currentFiles.size());
185        
186        monitor.beginSession(new LoadEvent(this, null, null, null));
187        monitor.beginGroup(new LoadEvent(this, null, null, null));
188        
189        assertEquals("previous", 1, monitor.previousFiles.size());
190        assertTrue("TEST_FILENAME not in previous", monitor.previousFiles.contains(TEST_FILENAME));
191        assertEquals("current", 0, monitor.currentFiles.size());
192 
193        monitor.endGroup(new LoadEvent(this, null, null, null));
194        monitor.endSession(new LoadEvent(this, null, null, null));
195        
196        assertEquals("previous", 0, monitor.previousFiles.size());
197        assertEquals("current", 0, monitor.currentFiles.size());
198    }
199    
200    public void testNewClassfile() {
201        monitor.beginSession(new LoadEvent(this, null, null, null));
202        monitor.beginGroup(new LoadEvent(this, null, null, null));
203        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
204        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
205        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
206 
207        assertAdditionsAndRemovals(1, 0);
208    }
209 
210    public void testRepeatInSession() {
211        // Begin session
212        monitor.beginSession(new LoadEvent(this, null, null, null));
213 
214        // See file for the first time
215        monitor.beginGroup(new LoadEvent(this, null, null, null));
216        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
217        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
218        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
219        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
220        monitor.endGroup(new LoadEvent(this, null, null, null));
221 
222        // See file for the second time
223        monitor.beginGroup(new LoadEvent(this, null, null, null));
224        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
225        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
226        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
227        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
228        monitor.endGroup(new LoadEvent(this, null, null, null));
229 
230        // Finish session
231        monitor.endSession(new LoadEvent(this, null, null, null));
232 
233        assertAdditionsAndRemovals(2, 0);
234    }
235 
236    public void testRepeatInGroup() {
237        // Begin session
238        monitor.beginSession(new LoadEvent(this, null, null, null));
239        monitor.beginGroup(new LoadEvent(this, null, null, null));
240 
241        // See file for the first time
242        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
243        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
244        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
245        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
246 
247        // See file for the second time
248        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
249        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
250        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
251        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
252 
253        // Finish session
254        monitor.endGroup(new LoadEvent(this, null, null, null));
255        monitor.endSession(new LoadEvent(this, null, null, null));
256 
257        assertAdditionsAndRemovals(2, 0);
258    }
259 
260    public void testRepeatAcrossSessions() {
261        monitor.beginSession(new LoadEvent(this, null, null, null));
262        monitor.beginGroup(new LoadEvent(this, null, null, null));
263        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
264        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
265        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
266        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
267        monitor.endGroup(new LoadEvent(this, null, null, null));
268        monitor.endSession(new LoadEvent(this, null, null, null));
269        
270        monitor.beginSession(new LoadEvent(this, null, null, null));
271        monitor.beginGroup(new LoadEvent(this, null, null, null));
272        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
273        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
274        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
275        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
276        monitor.endGroup(new LoadEvent(this, null, null, null));
277        monitor.endSession(new LoadEvent(this, null, null, null));
278 
279        assertAdditionsAndRemovals(2, 1);
280    }
281 
282    public void testRemoval() {
283        monitor.beginSession(new LoadEvent(this, null, null, null));
284        monitor.beginGroup(new LoadEvent(this, null, null, null));
285        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
286        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
287        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
288        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
289        monitor.endGroup(new LoadEvent(this, null, null, null));
290        monitor.endSession(new LoadEvent(this, null, null, null));
291 
292        monitor.beginSession(new LoadEvent(this, null, null, null));
293        monitor.beginGroup(new LoadEvent(this, null, null, null));
294        monitor.endGroup(new LoadEvent(this, null, null, null));
295        monitor.endSession(new LoadEvent(this, null, null, null));
296 
297        assertAdditionsAndRemovals(1, 1);
298    }
299 
300    public void testSkip() {
301        monitor.beginSession(new LoadEvent(this, null, null, null));
302        monitor.beginGroup(new LoadEvent(this, null, null, null));
303        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
304        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
305        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
306        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
307        monitor.endGroup(new LoadEvent(this, null, null, null));
308        monitor.endSession(new LoadEvent(this, null, null, null));
309 
310        monitor.beginSession(new LoadEvent(this, null, null, null));
311        monitor.beginGroup(new LoadEvent(this, null, null, null));
312        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
313        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
314        monitor.endGroup(new LoadEvent(this, null, null, null));
315        monitor.endSession(new LoadEvent(this, null, null, null));
316 
317        assertAdditionsAndRemovals(1, 0);
318    }
319 
320    public void testOpenSession() {
321        monitor.setClosedSession(false);
322 
323        monitor.beginSession(new LoadEvent(this, null, null, null));
324        monitor.beginGroup(new LoadEvent(this, null, null, null));
325        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
326        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
327        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
328        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
329        monitor.endGroup(new LoadEvent(this, null, null, null));
330        monitor.endSession(new LoadEvent(this, null, null, null));
331 
332        monitor.beginSession(new LoadEvent(this, null, null, null));
333        monitor.beginGroup(new LoadEvent(this, null, null, null));
334        monitor.endGroup(new LoadEvent(this, null, null, null));
335        monitor.endSession(new LoadEvent(this, null, null, null));
336 
337        assertAdditionsAndRemovals(1, 0);
338    }
339 
340    public void testExtractAgainInOpenSession() {
341        monitor.setClosedSession(false);
342 
343        monitor.beginSession(new LoadEvent(this, null, null, null));
344        monitor.beginGroup(new LoadEvent(this, null, null, null));
345        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
346        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
347        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
348        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
349        monitor.endGroup(new LoadEvent(this, null, null, null));
350        monitor.endSession(new LoadEvent(this, null, null, null));
351 
352        addVisitor.reset();
353        removeVisitor.reset();
354 
355        monitor.beginSession(new LoadEvent(this, null, null, null));
356        monitor.beginGroup(new LoadEvent(this, null, null, null));
357        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
358        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
359        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
360        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
361        monitor.endGroup(new LoadEvent(this, null, null, null));
362        monitor.endSession(new LoadEvent(this, null, null, null));
363 
364        assertAdditionsAndRemovals(1, 0);
365    }
366 
367    public void testReloadAfterClosingSessionSession() {
368        monitor.setClosedSession(false);
369 
370        monitor.beginSession(new LoadEvent(this, null, null, null));
371        monitor.beginGroup(new LoadEvent(this, null, null, null));
372        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
373        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
374        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
375        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
376        monitor.endGroup(new LoadEvent(this, null, null, null));
377        monitor.endSession(new LoadEvent(this, null, null, null));
378 
379        monitor.setClosedSession(true);
380 
381        addVisitor.reset();
382        removeVisitor.reset();
383 
384        monitor.beginSession(new LoadEvent(this, null, null, null));
385        monitor.beginGroup(new LoadEvent(this, null, null, null));
386        monitor.beginFile(new LoadEvent(this, null, TEST_FILENAME, null));
387        monitor.beginClassfile(new LoadEvent(this, null, TEST_FILENAME, null));
388        monitor.endClassfile(new LoadEvent(this, null, TEST_FILENAME, testClassfile));
389        monitor.endFile(new LoadEvent(this, null, TEST_FILENAME, null));
390        monitor.endGroup(new LoadEvent(this, null, null, null));
391        monitor.endSession(new LoadEvent(this, null, null, null));
392 
393        assertAdditionsAndRemovals(1, 1);
394    }
395 
396    private void assertAdditionsAndRemovals(int expectedAdded, int expectedRemoved) {
397        assertAddedClasses(expectedAdded);
398        assertRemovedClasses(expectedRemoved);
399    }
400 
401    private void assertAddedClasses(int expectedSize) {
402        assertEquals("added", expectedSize, addVisitor.getVisitedClassfiles().size());
403        for (Classfile addedClassfile : addVisitor.getVisitedClassfiles()) {
404            assertEquals("added", testClassfile, addedClassfile);
405        }
406    }
407 
408    private void assertRemovedClasses(int expectedSize) {
409        assertEquals("removed", expectedSize, removeVisitor.getVisitedClasses().size());
410        for (String removedClassName : removeVisitor.getVisitedClasses()) {
411            assertEquals("removed", TEST_CLASS, removedClassName);
412        }
413    }
414}

[all classes][com.jeantessier.classreader]
EMMA 2.0.5312 (C) Vladimir Roubtsov