KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > groboutils > util > io > v1 > ExtensionFilenameFilterUTest


1 /*
2  * @(#)ExtensionFilenameFilterUTest.java
3  *
4  * Copyright (C) 2001,,2003 2002 Matt Albrecht
5  * groboclown@users.sourceforge.net
6  * http://groboutils.sourceforge.net
7  *
8  * Permission is hereby granted, free of charge, to any person obtaining a
9  * copy of this software and associated documentation files (the "Software"),
10  * to deal in the Software without restriction, including without limitation
11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12  * and/or sell copies of the Software, and to permit persons to whom the
13  * Software is furnished to do so, subject to the following conditions:
14  *
15  * The above copyright notice and this permission notice shall be included in
16  * all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24  * DEALINGS IN THE SOFTWARE.
25  */

26
27 package net.sourceforge.groboutils.util.io.v1;
28
29 import java.io.File JavaDoc;
30
31 import junit.framework.Test;
32 import junit.framework.TestCase;
33 import junit.framework.TestSuite;
34
35 /**
36  *
37  *
38  * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
39  * @since 0.9.1d Alpha (sometime in 2001)
40  * @version $Date: 2003/02/10 22:52:45 $
41  */

42 public class ExtensionFilenameFilterUTest extends TestCase
43 {
44     //-------------------------------------------------------------------------
45
// Global constructs that only depend upon the class name
46
private static final Class JavaDoc THIS_CLASS = ExtensionFilenameFilterUTest.class;
47     
48     public ExtensionFilenameFilterUTest( String JavaDoc name )
49     {
50         super( name );
51     }
52     
53     
54     //-------------------------------------------------------------------------
55
// Test methods
56

57     public void testInstantiate()
58     {
59         createFilter();
60         createFilter( "" );
61         createFilter( "a" );
62         createFilter( ".a" );
63         createFilter( ".A" );
64         createFilter( true );
65         createFilter( false );
66         createFilter( new String JavaDoc[] { "" } );
67         createFilter( new String JavaDoc[] { "B", "A" } );
68         createFilter( "", true );
69         createFilter( "", false );
70         createFilter( "A", true );
71         createFilter( "A", false );
72         createFilter( new String JavaDoc[] { "A", "a" }, true );
73         createFilter( new String JavaDoc[] { "A", "a" }, false );
74     }
75
76     public void testInstantiateBad1()
77     {
78         try
79         {
80             createFilter( (String JavaDoc)null );
81             fail("did not throw an IllegalArgumentException." );
82         }
83         catch (IllegalArgumentException JavaDoc iae)
84         { }
85     }
86     
87     public void testInstantiateBad2()
88     {
89         try
90         {
91             createFilter( (String JavaDoc[])null );
92             fail("did not throw an IllegalArgumentException." );
93         }
94         catch (IllegalArgumentException JavaDoc iae)
95         { }
96     }
97     
98     public void testInstantiateBad3()
99     {
100         try
101         {
102             createFilter( new String JavaDoc[] { null } );
103             fail("did not throw an IllegalArgumentException." );
104         }
105         catch (IllegalArgumentException JavaDoc iae)
106         { }
107     }
108     
109     public void testInstantiateBad4()
110     {
111         try
112         {
113             createFilter( new String JavaDoc[] { "", null } );
114             fail("did not throw an IllegalArgumentException." );
115         }
116         catch (IllegalArgumentException JavaDoc iae)
117         { }
118     }
119     
120     public void testInstantiateBad5()
121     {
122         try
123         {
124             createFilter( new String JavaDoc[] { "a", null } );
125             fail("did not throw an IllegalArgumentException." );
126         }
127         catch (IllegalArgumentException JavaDoc iae)
128         { }
129     }
130     
131     public void testInstantiateBad6()
132     {
133         try
134         {
135             createFilter( (String JavaDoc)null, true );
136             fail("did not throw an IllegalArgumentException." );
137         }
138         catch (IllegalArgumentException JavaDoc iae)
139         { }
140     }
141     
142     public void testInstantiateBad7()
143     {
144         try
145         {
146             createFilter( (String JavaDoc[])null, false );
147             fail("did not throw an IllegalArgumentException." );
148         }
149         catch (IllegalArgumentException JavaDoc iae)
150         { }
151     }
152     
153     public void testDefaultDirectorySetting()
154     {
155         assertTrue(
156             "Must allow directories by default.",
157             createFilter().allowsDirectories() );
158     }
159     
160     public void testNullAccept1()
161     {
162         try
163         {
164             createFilter( "a" ).accept( null, null );
165             fail( "Did not throw IllegalArgumentException." );
166         }
167         catch (IllegalArgumentException JavaDoc e)
168         { }
169     }
170     
171     public void testNullAccept2()
172     {
173         try
174         {
175             createFilter( "a" ).accept( new File JavaDoc( "b" ), null );
176             fail( "Did not throw IllegalArgumentException." );
177         }
178         catch (IllegalArgumentException JavaDoc e)
179         { }
180     }
181     
182     
183     public void testEmptyAccept()
184     {
185         noMatchFile( createFilter(), new File JavaDoc( "a" ) );
186     }
187     
188     
189     public void testAcceptCaseSensitive()
190     {
191         matchFile( createFilter( "A", false ), new File JavaDoc( "2/A" ) );
192         matchFile( createFilter( "A", false ), new File JavaDoc( "2/.A" ) );
193         matchFile( createFilter( "A", false ), new File JavaDoc( "2/asdfA" ) );
194         matchFile( createFilter( "A", false ), new File JavaDoc( "2/asdf.A" ) );
195         matchFile( createFilter( ".a", false ), new File JavaDoc( "2/b.a" ) );
196         matchFile( createFilter( ".a", false ), new File JavaDoc( "2/.a" ) );
197         matchFile( createFilter( ".a", false ), new File JavaDoc( "2/asdf.a" ) );
198         matchFile( createFilter( ".a", false ), new File JavaDoc( "2/asdf.a.a" ) );
199         matchFile( createFilter( ".abc", false ), new File JavaDoc( "2/asdf.a.abc" ) );
200         
201         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "" ) );
202         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/asdf" ) );
203         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/asdf.A" ) );
204         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/.A" ) );
205         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/.a.A" ) );
206         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/asdf.a.A" ) );
207         noMatchFile( createFilter( ".a", false ), new File JavaDoc( "4/asdf.a." ) );
208         noMatchFile( createFilter( ".ABC", false ), new File JavaDoc( "4/asdf.a.A" ) );
209         noMatchFile( createFilter( ".ABC", false ), new File JavaDoc( "4/asdf.a.AB" ) );
210         noMatchFile( createFilter( ".ABC", false ), new File JavaDoc( "4/asdf.a.AC" ) );
211     }
212     
213     
214     
215     public void testAcceptCaseInsensitive()
216     {
217         matchFile( createFilter( "A" ), new File JavaDoc( "A" ) );
218         matchFile( createFilter( "A" ), new File JavaDoc( "asdfA" ) );
219         matchFile( createFilter( "A" ), new File JavaDoc( "asdf.A" ) );
220         matchFile( createFilter( ".a" ), new File JavaDoc( "b.a" ) );
221         matchFile( createFilter( ".a" ), new File JavaDoc( ".a" ) );
222         matchFile( createFilter( ".a" ), new File JavaDoc( "asdf.a" ) );
223         matchFile( createFilter( ".a" ), new File JavaDoc( "asdf.a.a" ) );
224         matchFile( createFilter( ".a" ), new File JavaDoc( "asdf.A" ) );
225         matchFile( createFilter( ".a" ), new File JavaDoc( ".A" ) );
226         matchFile( createFilter( ".a" ), new File JavaDoc( ".a.A" ) );
227         matchFile( createFilter( ".a" ), new File JavaDoc( "asdf.a.A" ) );
228
229         matchFile( createFilter( "A" ), new File JavaDoc( "B", "A" ) );
230         matchFile( createFilter( "A" ), new File JavaDoc( "B", "asdfA" ) );
231         matchFile( createFilter( "A" ), new File JavaDoc( "B", "asdf.A" ) );
232         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", "b.a" ) );
233         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", ".a" ) );
234         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", "asdf.a" ) );
235         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", "asdf.a.a" ) );
236         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", "asdf.A" ) );
237         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", ".A" ) );
238         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", ".a.A" ) );
239         matchFile( createFilter( ".a" ), new File JavaDoc( "a.b", "asdf.a.A" ) );
240         
241         matchFile( createFilter( "A", true ), new File JavaDoc( "A" ) );
242         matchFile( createFilter( "A", true ), new File JavaDoc( "asdfA" ) );
243         matchFile( createFilter( "A", true ), new File JavaDoc( "asdf.A" ) );
244         matchFile( createFilter( ".a", true ), new File JavaDoc( "b.a" ) );
245         matchFile( createFilter( ".a", true ), new File JavaDoc( ".a" ) );
246         matchFile( createFilter( ".a", true ), new File JavaDoc( "asdf.a" ) );
247         matchFile( createFilter( ".a", true ), new File JavaDoc( "asdf.a.a" ) );
248         matchFile( createFilter( ".a", true ), new File JavaDoc( "asdf.A" ) );
249         matchFile( createFilter( ".a", true ), new File JavaDoc( ".A" ) );
250         matchFile( createFilter( ".a", true ), new File JavaDoc( ".a.A" ) );
251         matchFile( createFilter( ".a", true ), new File JavaDoc( "asdf.a.A" ) );
252         
253         noMatchFile( createFilter( ".a" ), new File JavaDoc( "" ) );
254         noMatchFile( createFilter( ".a" ), new File JavaDoc( "asdf" ) );
255         noMatchFile( createFilter( ".a" ), new File JavaDoc( "asdf.a." ) );
256         noMatchFile( createFilter( ".a" ), new File JavaDoc( "asdf.aa" ) );
257         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "asdf.a.A" ) );
258         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "asdf.a.AB" ) );
259         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "asdf.a.AC" ) );
260         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "asdf.a.ACB" ) );
261         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "asdf.a.ABCD" ) );
262         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "" ) );
263         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "asdf" ) );
264         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "asdf.a." ) );
265         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "asdf.a.A" ) );
266         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "asdf.a.AB" ) );
267         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "asdf.a.AC" ) );
268         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "asdf.a.ACB" ) );
269         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "asdf.a.ABCD" ) );
270         
271         noMatchFile( createFilter( ".a" ), new File JavaDoc( "a.a", "asdf" ) );
272         noMatchFile( createFilter( ".a" ), new File JavaDoc( "a.a", "asdf.a." ) );
273         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "a.a", "asdf.a.A" ) );
274         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "a.a", "asdf.a.AB" ) );
275         noMatchFile( createFilter( ".ABC" ), new File JavaDoc( "a.a", "asdf.a.AC" ) );
276         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "" ) );
277         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "a.a", "asdf" ) );
278         noMatchFile( createFilter( ".a", true ), new File JavaDoc( "a.a", "asdf.a." ) );
279         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "a.ABC", "asdf.a.A" ) );
280         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "a.ABC", "asdf.a.AB" ) );
281         noMatchFile( createFilter( ".ABC", true ), new File JavaDoc( "a.ABC", "asdf.a.AC" ) );
282     }
283     
284     
285     public void testAcceptDirectories()
286     {
287         matchFile( createFilter( "A" ), new File JavaDoc( "." ) );
288         matchFile( createFilter( "A", false ), new File JavaDoc( "." ) );
289         matchFile( createFilter( "A", true ), new File JavaDoc( "." ) );
290     }
291     
292     
293     public void testDontAcceptDirectories()
294     {
295         ExtensionFilenameFilter eff = createFilter( "A" );
296         eff.allowsDirectories( false );
297         noMatchFile( eff, new File JavaDoc( "." ) );
298         
299         eff = createFilter( "A", true );
300         eff.allowsDirectories( false );
301         noMatchFile( eff, new File JavaDoc( "." ) );
302
303         eff = createFilter( "A", false );
304         eff.allowsDirectories( false );
305         noMatchFile( eff, new File JavaDoc( "." ) );
306     }
307     
308     
309     
310     protected void matchFile( ExtensionFilenameFilter eff, File JavaDoc f )
311     {
312         File JavaDoc parent = getParentFile( f );
313         String JavaDoc name = f.getName();
314         assertTrue(
315             "Filter must accept parent '"+parent+"' and name '"+name+"'.",
316             eff.accept( parent, name ) );
317     }
318     
319     
320     protected void noMatchFile( ExtensionFilenameFilter eff, File JavaDoc f )
321     {
322         File JavaDoc parent = getParentFile( f );
323         String JavaDoc name = f.getName();
324         assertTrue(
325             "Filter must not accept parent '"+parent+"' and name '"+name+"'.",
326             !eff.accept( parent, name ) );
327     }
328     
329     
330     protected ExtensionFilenameFilter createFilter()
331     {
332         return new ExtensionFilenameFilter();
333     }
334     protected ExtensionFilenameFilter createFilter( String JavaDoc s )
335     {
336         return new ExtensionFilenameFilter( s );
337     }
338     protected ExtensionFilenameFilter createFilter( String JavaDoc s[] )
339     {
340         return new ExtensionFilenameFilter( s );
341     }
342     protected ExtensionFilenameFilter createFilter( boolean b )
343     {
344         return new ExtensionFilenameFilter( b );
345     }
346     protected ExtensionFilenameFilter createFilter( String JavaDoc s, boolean b )
347     {
348         return new ExtensionFilenameFilter( s, b );
349     }
350     protected ExtensionFilenameFilter createFilter( String JavaDoc s[], boolean b )
351     {
352         return new ExtensionFilenameFilter( s, b );
353     }
354     
355     
356     protected File JavaDoc getParentFile( File JavaDoc f )
357     {
358         String JavaDoc pname = f.getParent();
359         if (pname == null)
360         {
361             // no parent
362
return null;
363         }
364         return new File JavaDoc( pname );
365     }
366     
367     
368     //-------------------------------------------------------------------------
369
// Global static methods that don't change.
370

371     public static Test suite()
372     {
373         TestSuite suite = new TestSuite( THIS_CLASS );
374         
375         return suite;
376     }
377     
378     public static void main( String JavaDoc[] args )
379     {
380         String JavaDoc[] name = { THIS_CLASS.getName() };
381         
382         // junit.textui.TestRunner.main( name );
383
// junit.swingui.TestRunner.main( name );
384

385         junit.textui.TestRunner.main( name );
386     }
387     
388     protected void setUp() throws Exception JavaDoc
389     {
390         super.setUp();
391         
392         // set ourself up
393
}
394     
395     
396     protected void tearDown() throws Exception JavaDoc
397     {
398         // tear ourself down
399

400         
401         super.tearDown();
402     }
403
404 }
405
Popular Tags