1 package net.sourceforge.jpotpourri.util;
2
3 import java.io.BufferedWriter;
4 import java.io.File;
5 import java.io.FileWriter;
6
7 import net.sourceforge.jpotpourri.TestProperties;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11
12
13
14
15 public class FileUtilTest extends AbstractUtilTestCase {
16
17 private static final Log LOG = LogFactory.getLog(FileUtilTest.class);
18
19 public final void testExtractExtensionFile() {
20 assertEquals("xml", FileUtil.extractExtension(new File("asdf.xml")));
21 assertEquals("xml", FileUtil.extractExtension(new File("/somewhere/asdf.xml")));
22
23 assertEquals("asd", FileUtil.extractExtension(new File("asdf.xml.asd")));
24 assertEquals("asd", FileUtil.extractExtension(new File("/somewhere/asdf.xml.asd")));
25
26 assertNull(FileUtil.extractExtension(new File("asdf")));
27 assertNull(FileUtil.extractExtension(new File("/somewhere/asdf")));
28 }
29
30 public final void testExtractExtensionString() {
31 assertEquals("xml", FileUtil.extractExtension("asdf.xml"));
32 assertEquals("xml", FileUtil.extractExtension("/somewhere/asdf.xml"));
33
34 assertEquals("asd", FileUtil.extractExtension("asdf.xml.asd"));
35 assertEquals("asd", FileUtil.extractExtension("/somewhere/asdf.xml.asd"));
36
37 assertNull(FileUtil.extractExtension("asdf"));
38 assertNull(FileUtil.extractExtension("/somewhere/asdf"));
39 }
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 public final void testDeleteDirectoryRecursive() throws Exception {
62 final String testRootPath = TestProperties.getInstance().getTestRootPath();
63 final File testRootFile = new File(testRootPath);
64 if(testRootFile.exists() == false) {
65 LOG.debug("Creating test rootfolder: " + testRootPath);
66 final boolean created = testRootFile.mkdirs();
67 if(created == false) {
68 throw new RuntimeException("Could not create test rootfolder [" + testRootPath + "]!");
69 }
70 }
71 final int expectedFileCount = testRootFile.listFiles().length;
72
73 final File dir2DeleteParent = new File(testRootFile, "dir2DeleteParent");
74 final File dir2DeleteSub = new File(dir2DeleteParent, "dir2DeleteSub");
75 if(dir2DeleteSub.mkdirs() == false) {
76 throw new RuntimeException("Could not create directory [" + dir2DeleteSub.getAbsolutePath() + "]!");
77 }
78
79 final BufferedWriter writer1 = new BufferedWriter(new FileWriter(new File(dir2DeleteParent, "file1_delme")));
80 try {
81 writer1.write("abcd");
82 } finally {
83 CloseUtil.close(writer1);
84 }
85
86 final BufferedWriter writer2 = new BufferedWriter(new FileWriter(new File(dir2DeleteSub, "file2_delme")));
87 try {
88 writer2.write("efgh");
89 } finally {
90 CloseUtil.close(writer2);
91 }
92
93 FileUtil.deleteDirectoryRecursive(dir2DeleteParent);
94
95 assertEquals(expectedFileCount, testRootFile.listFiles().length);
96
97 try {
98 FileUtil.deleteDirectoryRecursive(dir2DeleteParent);
99 fail("Should have thrown exception");
100 } catch (IllegalArgumentException e) {
101
102 assertTrue(true);
103 }
104 }
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125 }