Commit | Line | Data |
---|---|---|
fbcc2a2a | 1 | package be.nikiroo.utils.test_code; |
59864f77 NR |
2 | |
3 | import java.io.File; | |
4 | import java.io.IOException; | |
5 | ||
6 | import be.nikiroo.utils.TempFiles; | |
fbcc2a2a NR |
7 | import be.nikiroo.utils.test.TestCase; |
8 | import be.nikiroo.utils.test.TestLauncher; | |
59864f77 NR |
9 | |
10 | class TempFilesTest extends TestLauncher { | |
11 | public TempFilesTest(String[] args) { | |
12 | super("TempFiles", args); | |
13 | ||
14 | addTest(new TestCase("Name is correct") { | |
15 | @Override | |
16 | public void test() throws Exception { | |
17 | RootTempFiles files = new RootTempFiles("testy"); | |
18 | try { | |
19 | assertEquals("The root was not created", true, files | |
20 | .getRoot().exists()); | |
21 | assertEquals( | |
22 | "The root is not prefixed with the expected name", | |
23 | true, files.getRoot().getName().startsWith("testy")); | |
24 | ||
25 | } finally { | |
26 | files.close(); | |
27 | } | |
28 | } | |
29 | }); | |
30 | ||
31 | addTest(new TestCase("Clean after itself no use") { | |
32 | @Override | |
33 | public void test() throws Exception { | |
34 | RootTempFiles files = new RootTempFiles("testy2"); | |
35 | try { | |
36 | assertEquals("The root was not created", true, files | |
37 | .getRoot().exists()); | |
38 | } finally { | |
39 | files.close(); | |
40 | assertEquals("The root was not deleted", false, files | |
41 | .getRoot().exists()); | |
42 | } | |
43 | } | |
44 | }); | |
45 | ||
46 | addTest(new TestCase("Clean after itself after usage") { | |
47 | @Override | |
48 | public void test() throws Exception { | |
49 | RootTempFiles files = new RootTempFiles("testy3"); | |
50 | try { | |
51 | assertEquals("The root was not created", true, files | |
52 | .getRoot().exists()); | |
53 | files.createTempFile("test"); | |
54 | } finally { | |
55 | files.close(); | |
56 | assertEquals("The root was not deleted", false, files | |
57 | .getRoot().exists()); | |
58 | assertEquals("The main root in /tmp was not deleted", | |
59 | false, files.getRoot().getParentFile().exists()); | |
60 | } | |
61 | } | |
62 | }); | |
63 | ||
64 | addTest(new TestCase("Temporary directories") { | |
65 | @Override | |
66 | public void test() throws Exception { | |
67 | RootTempFiles files = new RootTempFiles("testy4"); | |
68 | File file = null; | |
69 | try { | |
70 | File dir = files.createTempDir("test"); | |
71 | file = new File(dir, "fanfan"); | |
72 | file.createNewFile(); | |
73 | assertEquals( | |
74 | "Cannot create a file in a temporary directory", | |
75 | true, file.exists()); | |
76 | } finally { | |
77 | files.close(); | |
78 | if (file != null) { | |
79 | assertEquals( | |
80 | "A file created in a temporary directory should be deleted on close", | |
81 | false, file.exists()); | |
82 | } | |
83 | assertEquals("The root was not deleted", false, files | |
84 | .getRoot().exists()); | |
85 | } | |
86 | } | |
87 | }); | |
88 | } | |
89 | ||
90 | private class RootTempFiles extends TempFiles { | |
0c731102 NR |
91 | private File root = null; |
92 | ||
59864f77 NR |
93 | public RootTempFiles(String name) throws IOException { |
94 | super(name); | |
95 | } | |
96 | ||
97 | public File getRoot() { | |
0c731102 NR |
98 | if (root != null) |
99 | return root; | |
100 | return super.root; | |
101 | } | |
102 | ||
103 | @Override | |
104 | public synchronized void close() throws IOException { | |
105 | root = super.root; | |
106 | super.close(); | |
59864f77 NR |
107 | } |
108 | } | |
109 | } |