Clover Coverage Report
Coverage timestamp: Fri May 24 2013 13:47:27 UTC
157   292   8   26.17
0   230   0.05   6
6     1.33  
1    
 
  PathTest       Line # 25 157 8 98.8% 0.9877301
 
  (6)
 
1    /* This file is part of the project "Hilbert II" - http://www.qedeq.org
2    *
3    * Copyright 2000-2013, Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
10    * This program is distributed in the hope that it will be useful,
11    * but WITHOUT ANY WARRANTY; without even the implied warranty of
12    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13    * GNU General Public License for more details.
14    */
15   
16    package org.qedeq.base.io;
17   
18    import org.qedeq.base.test.QedeqTestCase;
19   
20    /**
21    * Test {@link Path}.
22    *
23    * @author Michael Meyling
24    */
 
25    public class PathTest extends QedeqTestCase {
26   
27    /**
28    * Test constructor and getters.
29    *
30    * @throws Exception Test failure.
31    */
 
32  1 toggle public void testConstructor1() throws Exception {
33    {
34  1 final Path p1 = new Path("a/b/c");
35  1 assertEquals("a/b/", p1.getDirectory());
36  1 assertEquals("c", p1.getFileName());
37  1 assertEquals(false, p1.isAbsolute());
38  1 assertEquals(true, p1.isRelative());
39  1 assertEquals("a/b/c", p1.toString());
40  1 assertEquals(false, p1.isDirectory());
41    }
42    {
43  1 final Path p1 = new Path("a/b/./c");
44  1 assertEquals("a/b/", p1.getDirectory());
45  1 assertEquals("c", p1.getFileName());
46  1 assertEquals(false, p1.isAbsolute());
47  1 assertEquals(true, p1.isRelative());
48  1 assertEquals("a/b/c", p1.toString());
49  1 assertEquals(false, p1.isDirectory());
50    }
51    {
52  1 final Path p1 = new Path("/a/b/c/");
53  1 assertEquals("/a/b/c/", p1.getDirectory());
54  1 assertEquals("", p1.getFileName());
55  1 assertEquals(true, p1.isAbsolute());
56  1 assertEquals(false, p1.isRelative());
57  1 assertEquals("/a/b/c/", p1.toString());
58  1 assertEquals(true, p1.isDirectory());
59    }
60    {
61  1 final Path p1 = new Path("");
62  1 assertEquals("", p1.getDirectory());
63  1 assertEquals("", p1.getFileName());
64  1 assertEquals(false, p1.isAbsolute());
65  1 assertEquals(true, p1.isRelative());
66  1 assertEquals("", p1.toString());
67  1 assertEquals(true, p1.isDirectory());
68    }
69  1 try {
70  1 new Path(null);
71  0 fail("RuntimeException expected");
72    } catch (RuntimeException e) {
73    // ok
74    }
75    {
76  1 final Path p1 = new Path("a/b/c/../../d/e");
77  1 assertEquals("a/d/", p1.getDirectory());
78  1 assertEquals("e", p1.getFileName());
79  1 assertEquals(false, p1.isAbsolute());
80  1 assertEquals(true, p1.isRelative());
81  1 assertEquals("a/d/e", p1.toString());
82  1 assertEquals(false, p1.isDirectory());
83    }
84    {
85  1 final Path p1 = new Path("a/b/c/../../../d/e/");
86  1 assertEquals("d/e/", p1.getDirectory());
87  1 assertEquals("", p1.getFileName());
88  1 assertEquals(false, p1.isAbsolute());
89  1 assertEquals(true, p1.isRelative());
90  1 assertEquals("d/e/", p1.toString());
91  1 assertEquals(true, p1.isDirectory());
92    }
93    {
94  1 final Path p1 = new Path("a/b/./c/../../../d/e/");
95  1 assertEquals("d/e/", p1.getDirectory());
96  1 assertEquals("", p1.getFileName());
97  1 assertEquals(false, p1.isAbsolute());
98  1 assertEquals(true, p1.isRelative());
99  1 assertEquals("d/e/", p1.toString());
100  1 assertEquals(true, p1.isDirectory());
101    }
102    }
103   
104    /**
105    * Test constructor and getters.
106    *
107    * @throws Exception Test failure.
108    */
 
109  1 toggle public void testConstructor2() throws Exception {
110    {
111  1 final Path p1 = new Path("a/b/c/", "");
112  1 assertEquals("a/b/c/", p1.getDirectory());
113  1 assertEquals("", p1.getFileName());
114  1 assertEquals(false, p1.isAbsolute());
115  1 assertEquals(true, p1.isRelative());
116  1 assertEquals("a/b/c/", p1.toString());
117  1 assertEquals(true, p1.isDirectory());
118    }
119    {
120  1 final Path p1 = new Path("a/b/c", "");
121  1 assertEquals("a/b/c/", p1.getDirectory());
122  1 assertEquals("", p1.getFileName());
123  1 assertEquals(false, p1.isAbsolute());
124  1 assertEquals(true, p1.isRelative());
125  1 assertEquals("a/b/c/", p1.toString());
126  1 assertEquals(true, p1.isDirectory());
127    }
128    {
129  1 final Path p1 = new Path("a/b/c", null);
130  1 assertEquals("a/b/c/", p1.getDirectory());
131  1 assertEquals("", p1.getFileName());
132  1 assertEquals(false, p1.isAbsolute());
133  1 assertEquals(true, p1.isRelative());
134  1 assertEquals("a/b/c/", p1.toString());
135  1 assertEquals(true, p1.isDirectory());
136    }
137    {
138  1 final Path p1 = new Path("a/b/c", "d");
139  1 assertEquals("a/b/c/", p1.getDirectory());
140  1 assertEquals("d", p1.getFileName());
141  1 assertEquals(false, p1.isAbsolute());
142  1 assertEquals(true, p1.isRelative());
143  1 assertEquals("a/b/c/d", p1.toString());
144  1 assertEquals(false, p1.isDirectory());
145    }
146  1 try {
147  1 new Path((String[]) null, "");
148  0 fail("RuntimeException expected");
149    } catch (RuntimeException e) {
150    // ok
151    }
152    }
153   
154    /**
155    * Test constructor and getters.
156    *
157    * @throws Exception Test failure.
158    */
 
159  1 toggle public void testConstructor3() throws Exception {
160    {
161  1 final Path p1 = new Path(new String[] {"a", "b", "c"}, "");
162  1 assertEquals("a/b/c/", p1.getDirectory());
163  1 assertEquals("", p1.getFileName());
164  1 assertEquals(false, p1.isAbsolute());
165  1 assertEquals(true, p1.isRelative());
166  1 assertEquals("a/b/c/", p1.toString());
167  1 assertEquals(true, p1.isDirectory());
168    }
169    {
170  1 final Path p1 = new Path(new String[] {"", "a", "b", "c"}, "");
171  1 assertEquals("/a/b/c/", p1.getDirectory());
172  1 assertEquals("", p1.getFileName());
173  1 assertEquals(true, p1.isAbsolute());
174  1 assertEquals(false, p1.isRelative());
175  1 assertEquals("/a/b/c/", p1.toString());
176  1 assertEquals(true, p1.isDirectory());
177    }
178    {
179  1 final Path p1 = new Path(new String[] {"a", "b", "c"}, null);
180  1 assertEquals("a/b/c/", p1.getDirectory());
181  1 assertEquals("", p1.getFileName());
182  1 assertEquals(false, p1.isAbsolute());
183  1 assertEquals(true, p1.isRelative());
184  1 assertEquals("a/b/c/", p1.toString());
185  1 assertEquals(true, p1.isDirectory());
186  1 assertEquals(false, p1.isFile());
187    }
188    {
189  1 final Path p1 = new Path(new String[] {"a", "b", "c"}, "d");
190  1 assertEquals("a/b/c/", p1.getDirectory());
191  1 assertEquals("d", p1.getFileName());
192  1 assertEquals(false, p1.isAbsolute());
193  1 assertEquals(true, p1.isRelative());
194  1 assertEquals("a/b/c/d", p1.toString());
195  1 assertEquals(false, p1.isDirectory());
196  1 assertEquals(true, p1.isFile());
197    }
198    }
199   
200    /**
201    * Test createRelative.
202    *
203    */
 
204  1 toggle public void testCreateRelative() throws Exception {
205    {
206  1 final Path p1 = new Path("/a/b/c");
207  1 assertEquals("d", p1.createRelative("/a/b/d").toString());
208    }
209    {
210  1 final Path p1 = new Path("/a/b/c/");
211  1 assertEquals("d/e", p1.createRelative("d/e").toString());
212    }
213    {
214  1 final Path p1 = new Path("/a/b/c/");
215  1 assertEquals("d/", p1.createRelative("d/").toString());
216    }
217    {
218  1 final Path p1 = new Path("/a/b/c/");
219  1 assertEquals("../../../d/", p1.createRelative("/d/").toString());
220    }
221    {
222  1 final Path p1 = new Path("a/b/c/");
223  1 assertEquals("/d", p1.createRelative("/d").toString());
224    }
225    {
226  1 final Path p1 = new Path("a/b/c/");
227  1 assertEquals("/d/e", p1.createRelative("/d/e").toString());
228    }
229    {
230  1 final Path p1 = new Path("a/b/c/");
231  1 assertEquals("a/b/d", p1.createRelative("a/b/d").toString());
232    }
233    {
234  1 final Path p1 = new Path("/a/b/c/");
235  1 assertEquals("", p1.createRelative("/a/b/c/").toString());
236    }
237    {
238  1 final Path p1 = new Path("/a/b/c/");
239  1 assertEquals("../d/e", p1.createRelative("/a/b/d/e").toString());
240    }
241    }
242   
243    /**
244    * Test equals.
245    *
246    * @throws Exception Test failure.
247    */
 
248  1 toggle public void testEquals1() throws Exception {
249    {
250  1 final Path p1 = new Path("a/b/c");
251  1 final Path p2 = new Path("a/b/c");
252  1 final Path p3 = new Path("a/d/c");
253  1 assertEquals(p1, p2);
254  1 assertFalse(p1.equals(null));
255  1 assertFalse(p1.equals(p3));
256  1 assertFalse(p3.equals(p1));
257    }
258    {
259  1 final Path p1 = new Path("a/b/c/");
260  1 final Path p2 = new Path("a/b/c/");
261  1 final Path p3 = new Path("a/d/c/");
262  1 assertEquals(p1, p2);
263  1 assertFalse(p1.equals(null));
264  1 assertFalse(p1.equals(p3));
265  1 assertFalse(p3.equals(p1));
266    }
267    {
268  1 final Path p1 = new Path("/a/b/c/");
269  1 final Path p2 = new Path("/a/b/c/");
270  1 final Path p3 = new Path("/a/d/c/");
271  1 assertEquals(p1, p2);
272  1 assertFalse(p1.equals(null));
273  1 assertFalse(p1.equals(p3));
274  1 assertFalse(p3.equals(p1));
275    }
276    }
277   
278    /**
279    * Test hashCode.
280    *
281    * @throws Exception Test failure.
282    */
 
283  1 toggle public void testHashCode() throws Exception {
284  1 final Path p1 = new Path("a/b/c");
285  1 final Path p2 = new Path("a/b/c");
286  1 final Path p3 = new Path("a/d/c");
287  1 assertEquals(p1.hashCode(), p2.hashCode());
288  1 assertFalse(p1.hashCode() == p3.hashCode());
289    }
290   
291   
292    }