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 OrFileFilterTest extends BaseFilterTest {
31
32
33
34
35 private static class DummyFilter implements FileFilter {
36
37 @Override
38 public boolean accept(final FileSelectInfo fileInfo) {
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 fileInfo) {
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 fileInfo) {
63 return true;
64 }
65
66 }
67
68 @Test
69 public void testAccept() throws FileSystemException {
70
71 final FileSelectInfo any = createFileSelectInfo(new File("anyfile"));
72
73
74 Assert.assertFalse(new OrFileFilter().accept(any));
75
76
77 Assert.assertTrue(new OrFileFilter(new True()).accept(any));
78 Assert.assertTrue(new OrFileFilter(new True(), new True()).accept(any));
79 Assert.assertTrue(new OrFileFilter(new False(), new True()).accept(any));
80 Assert.assertTrue(new OrFileFilter(new True(), new False()).accept(any));
81
82
83 Assert.assertFalse(new OrFileFilter(new False()).accept(any));
84 Assert.assertFalse(new OrFileFilter(new False(), new False()).accept(any));
85
86 }
87
88 @Test
89 public void testAddFileFilter() {
90
91
92 final FileFilter filter1 = new DummyFilter();
93 final FileFilter filter2 = new DummyFilter();
94 final FileFilter filter3 = new DummyFilter();
95
96
97 final OrFileFilter testee = new OrFileFilter();
98 testee.addFileFilter(filter1);
99 testee.addFileFilter(filter2);
100 testee.addFileFilter(filter3);
101
102
103 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
104
105 }
106
107 @Test
108 public void testOrFileFilterFileFilter() {
109
110
111 final FileFilter filter1 = new DummyFilter();
112 final FileFilter filter2 = new DummyFilter();
113 final FileFilter filter3 = new DummyFilter();
114
115
116 final OrFileFilter testee = new OrFileFilter(filter1, filter2, filter3);
117
118
119 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
120
121 }
122
123 @Test
124 public void testOrFileFilterList() {
125
126
127 final FileFilter filter1 = new DummyFilter();
128 final FileFilter filter2 = new DummyFilter();
129 final FileFilter filter3 = new DummyFilter();
130 final List<FileFilter> list = new ArrayList<>();
131 list.add(filter1);
132 list.add(filter2);
133 list.add(filter3);
134
135
136 final OrFileFilter testee = new OrFileFilter(list);
137
138
139 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
140
141 }
142
143 @Test
144 public void testRemoveFileFilter() {
145
146
147 final FileFilter filter1 = new DummyFilter();
148 final FileFilter filter2 = new DummyFilter();
149 final FileFilter filter3 = new DummyFilter();
150 final OrFileFilter testee = new OrFileFilter(filter1, filter2, filter3);
151
152
153 testee.removeFileFilter(filter2);
154
155
156 assertContainsOnly(testee.getFileFilters(), filter1, filter3);
157
158 }
159
160 @Test
161 public void testSetFileFilters() {
162
163
164 final FileFilter filter1 = new DummyFilter();
165 final FileFilter filter2 = new DummyFilter();
166 final FileFilter filter3 = new DummyFilter();
167 final List<FileFilter> list = new ArrayList<>();
168 list.add(filter1);
169 list.add(filter2);
170 list.add(filter3);
171 final OrFileFilter testee = new OrFileFilter();
172
173
174 testee.setFileFilters(list);
175
176
177 assertContainsOnly(testee.getFileFilters(), filter1, filter2, filter3);
178
179 }
180
181 }
182