1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2;
18
19 import org.junit.Test;
20
21
22
23
24 public class ProviderDeleteTests extends AbstractProviderTestCase {
25
26 private class FileNameSelector implements FileSelector {
27 final String basename;
28
29 private FileNameSelector(final String basename) {
30 this.basename = basename;
31 }
32
33 @Override
34 public boolean includeFile(final FileSelectInfo fileInfo) throws Exception {
35 return this.basename.equals(fileInfo.getFile().getName().getBaseName());
36 }
37
38 @Override
39 public boolean traverseDescendents(final FileSelectInfo fileInfo) throws Exception {
40 return true;
41 }
42 }
43
44
45
46
47 protected FileObject createScratchFolder() throws Exception {
48 final FileObject scratchFolder = getWriteFolder();
49
50
51 scratchFolder.delete(Selectors.EXCLUDE_SELF);
52 scratchFolder.createFolder();
53
54 final FileObject dir1 = scratchFolder.resolveFile("dir1");
55 dir1.createFolder();
56 final FileObject dir1file1 = dir1.resolveFile("a.txt");
57 dir1file1.createFile();
58 final FileObject dir2 = scratchFolder.resolveFile("dir2");
59 dir2.createFolder();
60 final FileObject dir2file1 = dir2.resolveFile("b.txt");
61 dir2file1.createFile();
62
63 return scratchFolder;
64 }
65
66
67
68
69 @Override
70 protected Capability[] getRequiredCapabilities() {
71 return new Capability[] { Capability.CREATE, Capability.DELETE, Capability.GET_TYPE,
72 Capability.LIST_CHILDREN, };
73 }
74
75
76
77
78 @Test
79 public void testDeleteAllFiles() throws Exception {
80 final FileObject scratchFolder = createScratchFolder();
81
82 final int deleteCount = scratchFolder.delete(new FileTypeSelector(FileType.FILE));
83 if (deleteCount < 2) {
84
85 Thread.sleep(500);
86 }
87 assertEquals(2, deleteCount);
88 }
89
90
91
92
93 @Test
94 public void testDeleteFile() throws Exception {
95 final FileObject scratchFolder = createScratchFolder();
96
97 final FileObject file = scratchFolder.resolveFile("dir1/a.txt");
98
99 assertTrue(file.delete());
100 }
101
102
103
104
105 @Test
106 public void testDeleteFiles() throws Exception {
107 final FileObject scratchFolder = createScratchFolder();
108
109 assertEquals(4, scratchFolder.delete(Selectors.EXCLUDE_SELF));
110 }
111
112
113
114
115 @Test
116 public void testDeleteNonExistantFile() throws Exception {
117 final FileObject scratchFolder = createScratchFolder();
118
119 final FileObject file = scratchFolder.resolveFile("dir1/aa.txt");
120
121 assertFalse(file.delete());
122 }
123
124
125
126
127 @Test
128 public void testDeleteOneFiles() throws Exception {
129 final FileObject scratchFolder = createScratchFolder();
130
131 assertEquals(1, scratchFolder.delete(new FileNameSelector("a.txt")));
132 }
133 }