1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.sf.statcvs.renderer;
24
25 import java.util.ArrayList;
26 import java.util.List;
27 import java.util.NoSuchElementException;
28
29 import junit.framework.TestCase;
30
31 /**
32 * @author Anja Jentzsch
33 * @author Richard Cyganiak
34 * @version $Id: FileCollectionFormatterTest.java,v 1.4 2002/08/23 02:04:12 cyganiak Exp $
35 */
36 public class FileCollectionFormatterTest extends TestCase {
37
38 private FileCollectionFormatter fcf;
39 private final List files = new ArrayList();
40
41 /**
42 * Constructor for FileCollectionFormatterTest.
43 * @param arg0 filename
44 */
45 public FileCollectionFormatterTest(final String arg0) {
46 super(arg0);
47 }
48
49 /**
50 * @see TestCase#setUp()
51 */
52 protected void setUp() throws Exception {
53 super.setUp();
54 }
55
56 /**
57 * Method testHelperMethods.
58 */
59 public void testHelperMethods() {
60 assertEquals(0, FileCollectionFormatter.getDepth(""));
61 assertEquals(1, FileCollectionFormatter.getDepth("test/"));
62 assertEquals(2, FileCollectionFormatter.getDepth("test/foo/"));
63 assertEquals("", FileCollectionFormatter.getParent(""));
64 assertEquals("", FileCollectionFormatter.getParent("test/"));
65 assertEquals("dir/", FileCollectionFormatter.getParent("dir/test/"));
66 assertEquals("", FileCollectionFormatter.getDirectory("test.file"));
67 assertEquals("dir/", FileCollectionFormatter.getDirectory("dir/test.file"));
68 assertEquals("dir/subdir/", FileCollectionFormatter.getDirectory("dir/subdir/test.file"));
69 assertEquals("file.name", FileCollectionFormatter.getRelativeFilename("file.name", ""));
70 assertEquals("subdir/file.name", FileCollectionFormatter.getRelativeFilename("subdir/file.name", ""));
71 assertEquals("subdir/", FileCollectionFormatter.getRelativeFilename("subdir/", ""));
72 assertEquals("", FileCollectionFormatter.getRelativeFilename("", ""));
73 assertEquals("file.name", FileCollectionFormatter.getRelativeFilename("subdir/file.name", "subdir/"));
74 assertEquals("", FileCollectionFormatter.getRelativeFilename("subdir/", "subdir/"));
75 assertEquals("dir/", FileCollectionFormatter.getRelativeFilename("subdir/dir/", "subdir/"));
76 }
77
78 /**
79 * Method testCreation.
80 */
81 public void testCreation() {
82 new FileCollectionFormatter(new ArrayList());
83 }
84
85 /**
86 * Method testEmpty.
87 */
88 public void testEmpty() {
89 fcf = new FileCollectionFormatter(files);
90 final List dirs = fcf.getDirectories();
91 assertNotNull(dirs);
92 assertTrue(dirs.isEmpty());
93 }
94
95 /**
96 * Method testOneFile.
97 */
98 public void testOneFile() {
99 files.add("directory/file.txt");
100 fcf = new FileCollectionFormatter(files);
101 final List dirs = fcf.getDirectories();
102 assertEquals(1, dirs.size());
103 assertEquals("directory/", dirs.get(0));
104 final List names = fcf.getFiles("directory/");
105 assertEquals(1, names.size());
106 assertEquals("file.txt", names.get(0));
107 }
108
109 /**
110 * Method testOneFileDeep.
111 */
112 public void testOneFileDeep() {
113 files.add("sub1/sub2/sub3/file.txt");
114 fcf = new FileCollectionFormatter(files);
115 final List dirs = fcf.getDirectories();
116 assertEquals(1, dirs.size());
117 assertEquals("sub1/sub2/sub3/", dirs.get(0));
118 final List names = fcf.getFiles("sub1/sub2/sub3/");
119 assertEquals(1, names.size());
120 assertEquals("file.txt", names.get(0));
121 }
122
123 /**
124 * Method testTwoFilesDifferentDir.
125 */
126 public void testTwoFilesDifferentDir() {
127 files.add("directory/file.txt");
128 files.add("inRoot.txt");
129 fcf = new FileCollectionFormatter(files);
130 final List dirs = fcf.getDirectories();
131 assertEquals(2, dirs.size());
132 assertEquals("", dirs.get(0));
133 assertEquals("directory/", dirs.get(1));
134 List names = fcf.getFiles("");
135 assertEquals(1, names.size());
136 assertEquals("inRoot.txt", names.get(0));
137 names = fcf.getFiles("directory/");
138 assertEquals(1, names.size());
139 assertEquals("file.txt", names.get(0));
140 }
141
142 /**
143 * Method testTwoFilesSameDir.
144 */
145 public void testTwoFilesSameDir() {
146 files.add("directory/file2.txt");
147 files.add("directory/file1.txt");
148 fcf = new FileCollectionFormatter(files);
149 final List dirs = fcf.getDirectories();
150 assertEquals(1, dirs.size());
151 assertEquals("directory/", dirs.get(0));
152 final List names = fcf.getFiles("directory/");
153 assertEquals(2, names.size());
154 assertEquals("file1.txt", names.get(0));
155 assertEquals("file2.txt", names.get(1));
156 }
157
158 /**
159 * Method testUnknownDirectory.
160 */
161 public void testUnknownDirectory() {
162 files.add("directory/foo.txt");
163 fcf = new FileCollectionFormatter(files);
164 try {
165 fcf.getFiles("nonexistingDirectory/");
166 fail("should have thrown exception");
167 } catch (final NoSuchElementException e) {
168
169 }
170 }
171
172 /**
173 * Method testExcludeSubdir.
174 */
175 public void testExcludeSubdir() {
176 files.add("directory/file2.txt");
177 files.add("directory/file1.txt");
178 files.add("fileInRoot");
179 fcf = new FileCollectionFormatter(files);
180 final List dirs = fcf.getDirectories();
181 assertEquals(2, dirs.size());
182 assertEquals("", dirs.get(0));
183 assertEquals("directory/", dirs.get(1));
184 List names = fcf.getFiles("directory/");
185 assertEquals(2, names.size());
186 assertEquals("file1.txt", names.get(0));
187 assertEquals("file2.txt", names.get(1));
188 names = fcf.getFiles("");
189 assertEquals(1, names.size());
190 assertEquals("fileInRoot", names.get(0));
191 }
192 }