18
18
19
19
import static org .hamcrest .CoreMatchers .is ;
20
20
import static org .junit .Assert .assertThat ;
21
+ import static org .junit .Assert .assertTrue ;
21
22
22
23
import java .io .File ;
23
24
import java .io .IOException ;
25
+ import java .lang .reflect .Field ;
24
26
import java .util .ArrayList ;
25
- import java .util .List ;
27
+ import java .util .Map ;
26
28
27
29
import org .junit .Rule ;
28
30
import org .junit .Test ;
29
31
import org .junit .rules .TemporaryFolder ;
30
32
31
33
import org .springframework .integration .file .filters .FileListFilter ;
34
+ import org .springframework .integration .test .util .TestUtils ;
32
35
33
36
/**
34
37
* @author Iwein Fuld
38
+ * @author Gary Russell
35
39
*/
36
40
public class NioFileLockerTests {
37
41
@@ -48,13 +52,18 @@ public void create() throws IOException {
48
52
};
49
53
50
54
@ Test
51
- public void fileListedByFirstFilter () throws IOException {
55
+ public void fileListedByFirstFilter () throws Exception {
52
56
NioFileLocker filter = new NioFileLocker ();
53
57
File testFile = new File (workdir , "test0" );
54
58
testFile .createNewFile ();
55
59
assertThat (filter .filterFiles (workdir .listFiles ()).get (0 ), is (testFile ));
56
60
filter .lock (testFile );
57
61
assertThat (filter .filterFiles (workdir .listFiles ()).get (0 ), is (testFile ));
62
+ filter .unlock (testFile );
63
+ Field channelCache = FileChannelCache .class .getDeclaredField ("channelCache" );
64
+ channelCache .setAccessible (true );
65
+ assertTrue (((Map <?, ?>) channelCache .get (null )).isEmpty ());
66
+ assertTrue (TestUtils .getPropertyValue (filter , "lockCache" , Map .class ).isEmpty ());
58
67
}
59
68
60
69
@ Test
@@ -65,7 +74,8 @@ public void fileNotListedWhenLockedByOtherFilter() throws IOException {
65
74
testFile .createNewFile ();
66
75
assertThat (filter1 .filterFiles (workdir .listFiles ()).get (0 ), is (testFile ));
67
76
filter1 .lock (testFile );
68
- assertThat (filter2 .filterFiles (workdir .listFiles ()), is ((List <File >) new ArrayList <File >()));
77
+ assertThat (filter2 .filterFiles (workdir .listFiles ()), is (new ArrayList <File >()));
78
+ filter1 .unlock (testFile );
69
79
}
70
80
71
81
}
0 commit comments