1- /**
2- * Copyright 2004 The Apache Software Foundation
1+ /*
2+ * Copyright 2004-2005 The Apache Software Foundation
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
2222
2323import junit .framework .TestCase ;
2424
25+ /**
26+ * JUnit test case for the FileValidator.
27+ *
28+ * @author Rob Oxspring
29+ * @author John Keyes
30+ */
2531public class FileValidatorTest extends TestCase {
26-
32+
2733 public void testValidate () throws InvalidArgumentException {
2834 final Object [] array = new Object [] { "src" , "project.xml" , "veryunlikelyfilename" };
2935 final List list = Arrays .asList (array );
@@ -37,11 +43,16 @@ public void testValidate() throws InvalidArgumentException {
3743 assertEquals (new File ("veryunlikelyfilename" ), i .next ());
3844 assertFalse (i .hasNext ());
3945 }
40-
46+
4147 public void testValidate_Directory () {
4248 final Object [] array = new Object [] { "src" , "project.xml" };
4349 final List list = Arrays .asList (array );
44- final Validator validator = FileValidator .getExistingDirectoryInstance ();
50+ final FileValidator validator = FileValidator .getExistingDirectoryInstance ();
51+
52+ assertTrue ("is a directory validator" , validator .isDirectory ());
53+ assertFalse ("is not a file validator" , validator .isFile ());
54+ assertTrue ("is an existing file validator" , validator .isExisting ());
55+ assertFalse ("is not a hidden file validator" , validator .isHidden ());
4556
4657 try {
4758 validator .validate (list );
@@ -51,11 +62,61 @@ public void testValidate_Directory() {
5162 assertEquals ("project.xml" ,e .getMessage ());
5263 }
5364 }
54-
55- public void testValidate_File () {
56- final Object [] array = new Object [] { "project.xml " , "src" };
65+
66+ public void testValidate_ReadableFile () {
67+ final Object [] array = new Object [] { "src/test/data/readable.txt " , "src/test/data/notreadable.txt " };
5768 final List list = Arrays .asList (array );
58- final Validator validator = FileValidator .getExistingFileInstance ();
69+ final FileValidator validator = FileValidator .getExistingFileInstance ();
70+ validator .setReadable (true );
71+
72+ assertFalse ("is not a directory validator" , validator .isDirectory ());
73+ assertTrue ("is a file validator" , validator .isFile ());
74+ assertTrue ("is an existing file validator" , validator .isExisting ());
75+ assertFalse ("is not a hidden file validator" , validator .isHidden ());
76+ assertTrue ("is a readable file validator" , validator .isReadable ());
77+ assertFalse ("is not a writable file validator" , validator .isWritable ());
78+
79+ try {
80+ validator .validate (list );
81+ fail ("InvalidArgumentException" );
82+ }
83+ catch (InvalidArgumentException e ){
84+ assertEquals ("src/test/data/notreadable.txt" ,e .getMessage ());
85+ }
86+ }
87+
88+ public void testValidate_WritableFile () {
89+ final Object [] array = new Object [] { "src/test/data/writable.txt" , "src/test/data/readable.txt" };
90+ final List list = Arrays .asList (array );
91+ final FileValidator validator = FileValidator .getExistingFileInstance ();
92+ validator .setWritable (true );
93+
94+ assertFalse ("is not a directory validator" , validator .isDirectory ());
95+ assertTrue ("is a file validator" , validator .isFile ());
96+ assertTrue ("is an existing file validator" , validator .isExisting ());
97+ assertFalse ("is not a hidden file validator" , validator .isHidden ());
98+ assertTrue ("is not a readable file validator" , validator .isReadable ());
99+ assertFalse ("is a writable file validator" , validator .isWritable ());
100+
101+ try {
102+ validator .validate (list );
103+ fail ("InvalidArgumentException" );
104+ }
105+ catch (InvalidArgumentException e ){
106+ assertEquals ("src/test/data/readable.txt" ,e .getMessage ());
107+ }
108+ }
109+
110+ public void testValidate_HiddenFile () throws InvalidArgumentException {
111+ final Object [] array = new Object [] { "src/test/data/hidden.txt" , "src" };
112+ final List list = Arrays .asList (array );
113+ final FileValidator validator = FileValidator .getExistingFileInstance ();
114+ validator .setHidden (true );
115+
116+ assertFalse ("is not a directory validator" , validator .isDirectory ());
117+ assertTrue ("is a file validator" , validator .isFile ());
118+ assertTrue ("is an existing file validator" , validator .isExisting ());
119+ assertTrue ("is a hidden file validator" , validator .isHidden ());
59120
60121 try {
61122 validator .validate (list );
@@ -65,11 +126,16 @@ public void testValidate_File() {
65126 assertEquals ("src" ,e .getMessage ());
66127 }
67128 }
68-
129+
69130 public void testValidate_Existing () {
70131 final Object [] array = new Object [] { "project.xml" , "veryunlikelyfilename" };
71132 final List list = Arrays .asList (array );
72- final Validator validator = FileValidator .getExistingInstance ();
133+ final FileValidator validator = FileValidator .getExistingInstance ();
134+
135+ assertFalse ("is not a directory validator" , validator .isDirectory ());
136+ assertFalse ("is not a file validator" , validator .isFile ());
137+ assertTrue ("is an existing file validator" , validator .isExisting ());
138+ assertFalse ("is not a hidden file validator" , validator .isHidden ());
73139
74140 try {
75141 validator .validate (list );
@@ -79,4 +145,18 @@ public void testValidate_Existing() {
79145 assertEquals ("veryunlikelyfilename" ,e .getMessage ());
80146 }
81147 }
148+
149+ public void testValidate_File () {
150+ final Object [] array = new Object [] { "project.xml" , "src" };
151+ final List list = Arrays .asList (array );
152+ final Validator validator = FileValidator .getExistingFileInstance ();
153+
154+ try {
155+ validator .validate (list );
156+ fail ("InvalidArgumentException" );
157+ }
158+ catch (InvalidArgumentException e ){
159+ assertEquals ("src" ,e .getMessage ());
160+ }
161+ }
82162}
0 commit comments