EMMA Coverage Report (generated Sat Oct 08 11:41:37 CEST 2011)
[all classes][net.sf.jomic.tools]

COVERAGE SUMMARY FOR SOURCE FILE [NestedTaskTest.java]

nameclass, %method, %block, %line, %
NestedTaskTest.java100% (2/2)100% (6/6)94%  (115/122)98%  (22.6/23)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class NestedTaskTest$CountUpwardsTask100% (1/1)100% (3/3)86%  (44/51)95%  (8.5/9)
NestedTaskTest$CountUpwardsTask (NestedTaskTest, long): void 100% (1/1)79%  (15/19)93%  (3.7/4)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
start (): void 100% (1/1)100% (17/17)100% (4/4)
     
class NestedTaskTest100% (1/1)100% (3/3)100% (71/71)100% (15/15)
NestedTaskTest (): void 100% (1/1)100% (3/3)100% (2/2)
progressChanged (Task): void 100% (1/1)100% (7/7)100% (2/2)
testNestedTask (): void 100% (1/1)100% (61/61)100% (11/11)

1// Jomic - a viewer for comic book archives.
2// Copyright (C) 2004-2011 Thomas Aglassinger
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <http://www.gnu.org/licenses/>.
16package net.sf.jomic.tools;
17 
18import junit.framework.TestCase;
19 
20/**
21 *  TestCase for NestedTask.
22 *
23 * @author    Thomas Aglassinger
24 */
25public class NestedTaskTest extends TestCase implements ProgressChangeListener
26{
27    private long progressChangesCount;
28 
29    public void progressChanged(Task source) {
30        progressChangesCount += 1;
31    }
32 
33    public void testNestedTask()
34        throws Exception {
35        Task analyzeStep = new CountUpwardsTask(100);
36        Task extractStep = new CountUpwardsTask(500);
37        Task sizeStep = new CountUpwardsTask(150);
38        Task[] allSteps = new Task[]{analyzeStep, extractStep, sizeStep};
39        Task multiStep = new NestedTask(allSteps);
40 
41        multiStep.addProgressChangeListener(this);
42        multiStep.start();
43        multiStep.removeProgressChangeListener(this);
44        assertEquals(multiStep.getMaxProgress(), multiStep.getProgress());
45        assertEquals(multiStep.getMaxProgress(), progressChangesCount - allSteps.length);
46    }
47 
48    /**
49     *  Test task that simply increments its progress until it reaches the maximum.
50     *
51     * @author    Thomas Aglassinger
52     */
53    private class CountUpwardsTask extends AbstractTask
54    {
55        public CountUpwardsTask(long newMaximum) {
56            assert newMaximum > 0;
57            setMaxProgress(newMaximum);
58        }
59 
60        public void start() {
61            setProgress(0);
62            while (getProgress() < getMaxProgress()) {
63                setProgress(getProgress() + 1);
64            }
65        }
66    }
67}

[all classes][net.sf.jomic.tools]
EMMA 2.0.4217 (C) Vladimir Roubtsov