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 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.util.Arrays;
24 import java.util.Collection;
25 import java.util.HashSet;
26 import java.util.Set;
27
28 import org.junit.jupiter.api.AfterAll;
29 import org.junit.jupiter.api.BeforeAll;
30 import org.junit.jupiter.api.Test;
31
32
33
34
35 public class FileExtensionSelectorTest {
36
37 private static FileObject baseFolder;
38
39 private static final int FILE_COUNT = 9;
40
41 private static final int EXTENSION_COUNT = 3;
42
43 private static final int FILES_PER_EXTENSION_COUNT = 3;
44
45
46
47
48
49
50 @BeforeAll
51 public static void setUpClass() throws Exception {
52 baseFolder = VFS.getManager().resolveFile("ram://" + FileExtensionSelectorTest.class.getName());
53 baseFolder.deleteAll();
54 baseFolder.createFolder();
55 baseFolder.resolveFile("a.htm").createFile();
56 baseFolder.resolveFile("a.html").createFile();
57 baseFolder.resolveFile("a.xhtml").createFile();
58 baseFolder.resolveFile("b.htm").createFile();
59 baseFolder.resolveFile("b.html").createFile();
60 baseFolder.resolveFile("b.xhtml").createFile();
61 baseFolder.resolveFile("c.htm").createFile();
62 baseFolder.resolveFile("c.html").createFile();
63 baseFolder.resolveFile("c.xhtml").createFile();
64 }
65
66
67
68
69
70
71 @AfterAll
72 public static void tearDownClass() throws Exception {
73 if (baseFolder != null) {
74 baseFolder.deleteAll();
75 }
76 }
77
78
79
80
81
82
83 @Test
84 public void testEmpty() throws Exception {
85 final FileSelector selector = new FileExtensionSelector();
86 final FileObject[] foList = baseFolder.findFiles(selector);
87 assertEquals(0, foList.length);
88 }
89
90
91
92
93
94
95 @Test
96 public void testManyExtensions() throws Exception {
97 final FileObject[] foArray = baseFolder.findFiles(Selectors.SELECT_FILES);
98 assertTrue(foArray.length > 0);
99
100 final Set<String> extensionSet = new HashSet<>();
101 for (final FileObject fo : foArray) {
102 extensionSet.add(fo.getName().getExtension());
103 }
104 final String message = String.format("Extensions: %s; files: %s", extensionSet.toString(),
105 Arrays.asList(foArray).toString());
106 assertFalse(extensionSet.isEmpty(), message);
107 assertEquals(EXTENSION_COUNT, extensionSet.size(), message);
108
109 final FileSelector selector = new FileExtensionSelector(extensionSet);
110 final FileObject[] list = baseFolder.findFiles(selector);
111 assertEquals(FILE_COUNT, list.length);
112 }
113
114
115
116
117
118
119 @Test
120 public void testNullCollection() throws Exception {
121 final FileSelector selector0 = new FileExtensionSelector((Collection<String>) null);
122 final FileObject[] foList = baseFolder.findFiles(selector0);
123 assertEquals(0, foList.length);
124 }
125
126
127
128
129
130
131 @Test
132 public void testNullString() throws Exception {
133 final FileSelector selector0 = new FileExtensionSelector((String) null);
134 final FileObject[] foList = baseFolder.findFiles(selector0);
135 assertEquals(0, foList.length);
136 }
137
138
139
140
141
142
143 @Test
144 public void testOneExtension() throws Exception {
145 final FileObject[] foArray = baseFolder.findFiles(Selectors.SELECT_FILES);
146 assertTrue(foArray.length > 0);
147
148 final Set<String> extensionSet = new HashSet<>();
149 for (final FileObject fo : foArray) {
150 extensionSet.add(fo.getName().getExtension());
151 }
152 final String message = String.format("Extensions: %s; files: %s", extensionSet.toString(),
153 Arrays.asList(foArray).toString());
154 assertEquals(EXTENSION_COUNT, extensionSet.size(), message);
155
156 for (final String extension : extensionSet) {
157 final FileSelector selector = new FileExtensionSelector(extension);
158 final FileObject[] list = baseFolder.findFiles(selector);
159 assertEquals(FILES_PER_EXTENSION_COUNT, list.length);
160 }
161
162 for (final FileObject fo : foArray) {
163 final FileSelector selector = new FileExtensionSelector(fo.getName().getExtension());
164 final FileObject[] list = baseFolder.findFiles(selector);
165 assertEquals(FILES_PER_EXTENSION_COUNT, list.length);
166 }
167 }
168
169 }