1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.filter;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertTrue;
22
23 import java.io.File;
24 import java.io.IOException;
25
26 import org.apache.commons.io.FileUtils;
27 import org.apache.commons.io.IOUtils;
28 import org.apache.commons.vfs2.FileFilterSelector;
29 import org.apache.commons.vfs2.FileObject;
30 import org.apache.commons.vfs2.FileSelectInfo;
31 import org.apache.commons.vfs2.FileSystemException;
32 import org.junit.jupiter.api.AfterAll;
33 import org.junit.jupiter.api.BeforeAll;
34 import org.junit.jupiter.api.Test;
35
36
37
38
39
40 public class SizeFileFilterTest extends BaseFilterTest {
41
42 private static File testDir;
43
44 private static File minFile;
45
46 private static FileSelectInfo minFileInfo;
47
48 private static File optFile;
49
50 private static FileSelectInfo optFileInfo;
51
52 private static File maxFile;
53
54 private static FileSelectInfo maxFileInfo;
55
56 private static File zipFile;
57
58 private static FileObject zipFileObj;
59
60 @AfterAll
61 public static void afterClass() throws IOException {
62
63 minFileInfo = null;
64 minFile = null;
65
66 optFileInfo = null;
67 optFile = null;
68
69 maxFileInfo = null;
70 maxFile = null;
71
72 IOUtils.close(zipFileObj);
73 FileUtils.deleteQuietly(zipFile);
74 zipFile = null;
75
76 FileUtils.deleteDirectory(testDir);
77 testDir = null;
78 }
79
80 @BeforeAll
81 public static void beforeClass() throws IOException {
82 testDir = getTestDir(SizeFileFilterTest.class.getName());
83
84
85 minFile = new File(testDir, "min.txt");
86 FileUtils.write(minFile, "12");
87 minFileInfo = createFileSelectInfo(minFile);
88
89
90 optFile = new File(testDir, "opt.txt");
91 FileUtils.write(optFile, "1234");
92 optFileInfo = createFileSelectInfo(optFile);
93
94
95 maxFile = new File(testDir, "max.txt");
96 FileUtils.write(maxFile, "123456");
97 maxFileInfo = createFileSelectInfo(maxFile);
98
99
100 zipFile = new File(getTempDir(), SizeFileFilterTest.class.getName() + ".zip");
101 zipDir(testDir, "", zipFile);
102 zipFileObj = getZipFileObject(zipFile);
103 }
104
105 @Test
106 public void testSizeFileFilterLong() throws FileSystemException {
107
108 final SizeFileFilter testee = new SizeFileFilter(4);
109 assertFalse(testee.accept(minFileInfo));
110 assertTrue(testee.accept(optFileInfo));
111 assertTrue(testee.accept(maxFileInfo));
112 }
113
114 @Test
115 public void testSizeFileFilterLongBoolean() throws FileSystemException {
116
117 SizeFileFilter testee;
118
119 testee = new SizeFileFilter(4, true);
120 assertFalse(testee.accept(minFileInfo));
121 assertTrue(testee.accept(optFileInfo));
122 assertTrue(testee.accept(maxFileInfo));
123
124 testee = new SizeFileFilter(4, false);
125 assertTrue(testee.accept(minFileInfo));
126 assertFalse(testee.accept(optFileInfo));
127 assertFalse(testee.accept(maxFileInfo));
128 }
129
130 @Test
131 public void testSizeFileFilterZipDir() throws FileSystemException {
132
133
134 FileObject[] files;
135
136 files = zipFileObj.findFiles(new FileFilterSelector(new SizeFileFilter(4, true)));
137 assertContains(files, optFile.getName(), maxFile.getName());
138 assertEquals(2, files.length);
139
140 files = zipFileObj.findFiles(new FileFilterSelector(new SizeFileFilter(4, false)));
141 assertContains(files, minFile.getName());
142 assertEquals(1, files.length);
143
144 files = zipFileObj.findFiles(new FileFilterSelector(new SizeRangeFileFilter(2, 6)));
145 assertContains(files, minFile.getName(), optFile.getName(), maxFile.getName());
146 assertEquals(3, files.length);
147
148 files = zipFileObj.findFiles(new FileFilterSelector(new SizeRangeFileFilter(3, 6)));
149 assertContains(files, optFile.getName(), maxFile.getName());
150 assertEquals(2, files.length);
151
152 files = zipFileObj.findFiles(new FileFilterSelector(new SizeRangeFileFilter(2, 5)));
153 assertContains(files, minFile.getName(), optFile.getName());
154 assertEquals(2, files.length);
155
156 files = zipFileObj.findFiles(new FileFilterSelector(new SizeRangeFileFilter(3, 5)));
157 assertContains(files, optFile.getName());
158 assertEquals(1, files.length);
159
160 files = zipFileObj.findFiles(new FileFilterSelector(new SizeRangeFileFilter(4, 4)));
161 assertContains(files, optFile.getName());
162 assertEquals(1, files.length);
163 }
164
165 @Test
166 public void testSizeRangeFileFilter() throws FileSystemException {
167
168 SizeRangeFileFilter testee;
169
170 testee = new SizeRangeFileFilter(2, 6);
171 assertTrue(testee.accept(minFileInfo));
172 assertTrue(testee.accept(optFileInfo));
173 assertTrue(testee.accept(maxFileInfo));
174
175 testee = new SizeRangeFileFilter(3, 6);
176 assertFalse(testee.accept(minFileInfo));
177 assertTrue(testee.accept(optFileInfo));
178 assertTrue(testee.accept(maxFileInfo));
179
180 testee = new SizeRangeFileFilter(2, 5);
181 assertTrue(testee.accept(minFileInfo));
182 assertTrue(testee.accept(optFileInfo));
183 assertFalse(testee.accept(maxFileInfo));
184
185 testee = new SizeRangeFileFilter(3, 5);
186 assertFalse(testee.accept(minFileInfo));
187 assertTrue(testee.accept(optFileInfo));
188 assertFalse(testee.accept(maxFileInfo));
189
190 testee = new SizeRangeFileFilter(4, 4);
191 assertFalse(testee.accept(minFileInfo));
192 assertTrue(testee.accept(optFileInfo));
193 assertFalse(testee.accept(maxFileInfo));
194 }
195
196 }
197