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