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

COVERAGE SUMMARY FOR SOURCE FILE [CreateComicTaskTest.java]

nameclass, %method, %block, %line, %
CreateComicTaskTest.java100% (1/1)100% (8/8)89%  (174/196)98%  (40.3/41)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CreateComicTaskTest100% (1/1)100% (8/8)89%  (174/196)98%  (40.3/41)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
testCreate (Conversion): void 100% (1/1)86%  (113/132)98%  (24.5/25)
CreateComicTaskTest (): void 100% (1/1)100% (3/3)100% (1/1)
progressChanged (Task): void 100% (1/1)100% (6/6)100% (2/2)
setUp (): void 100% (1/1)100% (20/20)100% (6/6)
tearDown (): void 100% (1/1)100% (6/6)100% (3/3)
testCreateCbz (): void 100% (1/1)100% (7/7)100% (2/2)
testCreatePdf (): void 100% (1/1)100% (7/7)100% (2/2)

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.comic;
17 
18import java.io.File;
19import java.util.Arrays;
20 
21import net.sf.jomic.tools.FileTools;
22import net.sf.jomic.tools.ProgressChangeListener;
23import net.sf.jomic.tools.ProgressFrame;
24import net.sf.jomic.tools.RegExFileFilter;
25import net.sf.jomic.tools.StringTools;
26import net.sf.jomic.tools.Task;
27import net.sf.jomic.tools.TestTools;
28import junit.framework.TestCase;
29 
30/**
31 *  TestCase for ConvertComicTask.
32 *
33 * @author    Thomas Aglassinger
34 */
35public class CreateComicTaskTest extends TestCase implements ProgressChangeListener
36{
37    private ProgressFrame progressFrame;
38    private StringTools stringTools;
39    private TestTools testTools;
40 
41    protected void setUp()
42        throws Exception {
43        super.setUp();
44        testTools = TestTools.instance();
45        stringTools = StringTools.instance();
46        progressFrame = new ProgressFrame();
47        progressFrame.setTitle(getClass().getName());
48    }
49 
50    public void progressChanged(Task source) {
51        progressFrame.setProgress(source.getProgress());
52    }
53 
54    public void testCreateCbz()
55        throws Exception {
56        testCreate(new Conversion(Conversion.COMIC_FORMAT_CBZ));
57    }
58 
59    public void testCreatePdf()
60        throws Exception {
61        testCreate(new Conversion(Conversion.COMIC_FORMAT_PDF));
62    }
63 
64    protected void tearDown()
65        throws Exception {
66        progressFrame.dispose();
67        super.tearDown();
68    }
69 
70    private void testCreate(Conversion conversion)
71        throws Exception {
72 
73        String comicSuffix = conversion.getComicFormat();
74        String method = "testCreate" + stringTools.titled(comicSuffix);
75        String targetComicName = testTools.getTestFileName(
76                CreateComicTaskTest.class, method, null, comicSuffix);
77        File targetComicFile = testTools.getTestOutputFile(targetComicName);
78        File testImageDir = testTools.getTestImageFile().getParentFile();
79        File[] allTestImageFiles = testImageDir.listFiles(new RegExFileFilter("\\d\\d(\\+\\d\\d)?\\.png"));
80        File[] testImageFiles;
81 
82        assert allTestImageFiles.length > 0;
83        Arrays.sort(allTestImageFiles);
84 
85        // Use only the first few images to save time.
86        testImageFiles = new File[Math.min(8, allTestImageFiles.length)];
87        System.arraycopy(allTestImageFiles, 0, testImageFiles, 0, testImageFiles.length);
88 
89        FileTools fileTools = FileTools.instance();
90        String[] sourceNames = fileTools.getRelativePaths(testImageDir, testImageFiles);
91 
92        Task createComicTask = new CreateComicTask(testImageDir, sourceNames, targetComicFile, conversion);
93 
94        progressFrame.setMaximum(createComicTask.getMaxProgress());
95        createComicTask.addProgressChangeListener(this);
96        try {
97            progressFrame.setNote(method);
98            progressFrame.setVisible(true);
99            targetComicFile.delete();
100            assertFalse(targetComicFile.exists());
101            createComicTask.start();
102            assertTrue(targetComicFile.exists());
103        } finally {
104            createComicTask.removeProgressChangeListener(this);
105            progressFrame.setVisible(false);
106        }
107    }
108}

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