13
13
14
14
public final class FileMatchers {
15
15
16
- public static Matcher <File > anExistingDirectory () {
17
- return fileChecker (IS_DIRECTORY , "an existing directory" , "is not a directory" );
18
- }
16
+ public static Matcher <File > anExistingDirectory () { return AN_EXISTING_DIRECTORY ; }
19
17
20
- public static Matcher <File > anExistingFileOrDirectory () {
21
- return fileChecker (EXISTS , "an existing file or directory" , "does not exist" );
22
- }
18
+ public static Matcher <File > anExistingFileOrDirectory () { return EXISTING_FILE_OR_DIRECTORY ; }
23
19
24
20
public static Matcher <File > anExistingFile () {
25
- return fileChecker ( IS_FILE , "an existing File" , "is not a file" ) ;
21
+ return EXISTING_FILE ;
26
22
}
27
23
28
24
public static Matcher <File > aReadableFile () {
29
- return fileChecker ( CAN_READ , "a readable File" , "cannot be read" ) ;
25
+ return READABLE_FILE ;
30
26
}
31
27
32
- public static Matcher <File > aWritableFile () {
33
- return fileChecker (CAN_WRITE , "a writable File" , "cannot be written to" );
34
- }
28
+ public static Matcher <File > aWritableFile () { return WRITEABLE_FILE ; }
35
29
36
30
public static Matcher <File > aFileWithSize (long size ) {
37
31
return aFileWithSize (equalTo (size ));
@@ -49,38 +43,32 @@ public static Matcher<File> aFileWithCanonicalPath(final Matcher<String> expecte
49
43
return new FunctionMatcher <>("A file with canonical path" , "path" , expected , CANONICAL_PATH );
50
44
}
51
45
52
-
53
46
public static Matcher <File > aFileWithAbsolutePath (final Matcher <String > expected ) {
54
47
return new FunctionMatcher <>("A file with absolute path" , "path" , expected , ABSOLUTE_PATH );
55
48
}
56
49
57
- public static interface FileStatus {
58
- boolean check (File actual );
59
- }
50
+ private static final Matcher <File > AN_EXISTING_DIRECTORY = fileChecker ("an existing directory" , "is not a directory" ,
51
+ new FileStatus () { @ Override public Boolean from (File actual ) { return actual .isDirectory (); } });
60
52
61
- public static final FileStatus CAN_WRITE = new FileStatus () {
62
- @ Override public boolean check (File actual ) { return actual .canWrite (); }
63
- };
64
- public static final FileStatus CAN_READ = new FileStatus () {
65
- @ Override public boolean check (File actual ) { return actual .canRead (); }
66
- };
53
+ private static final Matcher <File > EXISTING_FILE_OR_DIRECTORY = fileChecker ("an existing file or directory" , "does not exist" ,
54
+ new FileStatus () { @ Override public Boolean from (File actual ) { return actual .exists (); } });
67
55
68
- public static final FileStatus IS_FILE = new FileStatus () {
69
- @ Override public boolean check (File actual ) { return actual .isFile (); }
70
- };
56
+ public static final Matcher <File > EXISTING_FILE = fileChecker ("an existing File" , "is not a file" ,
57
+ new FileStatus () { @ Override public Boolean from (File actual ) { return actual .isFile (); } });
71
58
72
- public static final FileStatus IS_DIRECTORY = new FileStatus () {
73
- @ Override public boolean check (File actual ) { return actual .isDirectory (); }
74
- };
59
+ public static final Matcher <File > READABLE_FILE = fileChecker ("a readable File" , "cannot be read" ,
60
+ new FileStatus () { @ Override public Boolean from (File actual ) { return actual .canRead (); } });
75
61
76
- public static final FileStatus EXISTS = new FileStatus () {
77
- @ Override public boolean check (File actual ) { return actual .exists (); }
78
- };
62
+ public static final Matcher <File > WRITEABLE_FILE = fileChecker ("a writable File" , "cannot be written to" ,
63
+ new FileStatus () { @ Override public Boolean from (File actual ) { return actual .canWrite (); } });
64
+
65
+
66
+ public static interface FileStatus extends Feature <File , Boolean > { }
79
67
80
- private static Matcher <File > fileChecker (final FileStatus fileStatus , final String successDescription , final String failureDescription ) {
68
+ public static Matcher <File > fileChecker (final String successDescription , final String failureDescription , final FileStatus fileStatus ) {
81
69
return new TypeSafeDiagnosingMatcher <File >() {
82
70
public boolean matchesSafely (File actual , Description mismatchDescription ) {
83
- final boolean result = fileStatus .check (actual );
71
+ final boolean result = fileStatus .from (actual );
84
72
if (!result ) {
85
73
mismatchDescription .appendText (failureDescription );
86
74
}
0 commit comments