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