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.util.ArrayList;
21 import java.util.List;
22
23 import org.apache.commons.vfs2.FileFilter;
24 import org.apache.commons.vfs2.FileSelectInfo;
25 import org.apache.commons.vfs2.FileSystemException;
26 import org.junit.Assert;
27 import org.junit.Test;
28
29
30 public class AndFileFilterTest extends BaseFilterTest {
31
32
33
34
35 private static class DummyFilter implements FileFilter {
36
37 @Override
38 public boolean accept(final FileSelectInfo fileSelectInfo) {
39 return false;
40 }
41
42 }
43
44
45
46
47 private static class False implements FileFilter {
48
49 @Override
50 public boolean accept(final FileSelectInfo fileSelectInfo) {
51 return false;
52 }
53
54 }
55
56
57
58
59 private static class True implements FileFilter {
60
61 @Override
62 public boolean accept(final FileSelectInfo fileSelectInfo) {
63 return true;
64 }
65
66 }
67
68 @SuppressWarnings("deprecation")
69 @Test
70 public void testAccept() throws FileSystemException {
71
72 final FileSelectInfo any = createFileSelectInfo(new File("anyfile"));
73
74
75 Assert.assertFalse(new AndFileFilter().accept(any));
76
77
78 Assert.assertTrue(new AndFileFilter(new True()).accept(any));
79 Assert.assertTrue(new AndFileFilter(new True(), new True()).accept(any));
80
81
82 Assert.assertFalse(new AndFileFilter(new False()).accept(any));
83 Assert.assertFalse(new AndFileFilter(new False(), new False()).accept(any));
84 Assert.assertFalse(new AndFileFilter(new False(), new True()).accept(any));
85 Assert.assertFalse(new AndFileFilter(new True(), new False()).accept(any));
86
87 }
88
89 @Test
90 public void testAcceptChecked() throws FileSystemException {
91
92 final FileSelectInfo any = createFileSelectInfo(new File("anyfile"));
93
94
95 Assert.assertFalse(new AndFileFilter().accept(any));
96
97
98 Assert.assertTrue(new AndFileFilter(new True()).accept(any));
99 Assert.assertTrue(new AndFileFilter(new True(), new True()).accept(any));
100
101
102 Assert.assertFalse(new AndFileFilter(new False()).accept(any));
103 Assert.assertFalse(new AndFileFilter(new False(), new False()).accept(any));
104 Assert.assertFalse(new AndFileFilter(new False(), new True()).accept(any));
105 Assert.assertFalse(new AndFileFilter(new True(), new False()).accept(any));
106
107 }
108
109 @Test
110 public void testAddFileFilter() {
111
112
113 final FileFilter filter1 = new DummyFilter();
114 final FileFilter filter2 = new DummyFilter();
115 final FileFilter filter3 = new DummyFilter();
116
117
118 final AndFileFilter testee = new AndFileFilter();
119 testee.addFileFilter(filter1);
120 testee.addFileFilter(filter2);
121 testee.addFileFilter(filter3);
122
123
124 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
125
126 }
127
128 @Test
129 public void testAndFileFilterFileFilter() {
130
131
132 final FileFilter filter1 = new DummyFilter();
133 final FileFilter filter2 = new DummyFilter();
134 final FileFilter filter3 = new DummyFilter();
135
136
137 final AndFileFilter testee = new AndFileFilter(filter1, filter2, filter3);
138
139
140 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
141
142 }
143
144 @Test
145 public void testAndFileFilterList() {
146
147
148 final FileFilter filter1 = new DummyFilter();
149 final FileFilter filter2 = new DummyFilter();
150 final FileFilter filter3 = new DummyFilter();
151 final List<FileFilter> list = new ArrayList<>();
152 list.add(filter1);
153 list.add(filter2);
154 list.add(filter3);
155
156
157 final AndFileFilter testee = new AndFileFilter(list);
158
159
160 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
161
162 }
163
164 @Test
165 public void testRemoveFileFilter() {
166
167
168 final FileFilter filter1 = new DummyFilter();
169 final FileFilter filter2 = new DummyFilter();
170 final FileFilter filter3 = new DummyFilter();
171 final AndFileFilter testee = new AndFileFilter(filter1, filter2, filter3);
172
173
174 testee.removeFileFilter(filter2);
175
176
177 assertContainsOnly(testee.getFileFilters(), filter1, filter3);
178
179 }
180
181 @Test
182 public void testSetFileFilters() {
183
184
185 final FileFilter filter1 = new DummyFilter();
186 final FileFilter filter2 = new DummyFilter();
187 final FileFilter filter3 = new DummyFilter();
188 final List<FileFilter> list = new ArrayList<>();
189 list.add(filter1);
190 list.add(filter2);
191 list.add(filter3);
192 final AndFileFilter testee = new AndFileFilter();
193
194
195 testee.setFileFilters(list);
196
197
198 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
199
200 }
201
202 }
203