1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.cache;
18
19 import org.apache.commons.vfs2.AbstractProviderTestCase;
20 import org.apache.commons.vfs2.CacheTestSuite;
21 import org.apache.commons.vfs2.FileName;
22 import org.apache.commons.vfs2.FileObject;
23 import org.apache.commons.vfs2.FileSystem;
24 import org.apache.commons.vfs2.FileSystemException;
25 import org.apache.commons.vfs2.FilesCache;
26 import org.junit.Test;
27
28
29
30
31
32
33 public abstract class AbstractFilesCacheTestsBase extends AbstractProviderTestCase {
34
35
36 protected int getFileHashCode() throws FileSystemException {
37 final FileObject fo = getWriteFolder().resolveFile("file2");
38 if (!fo.exists()) {
39 fo.createFile();
40 }
41
42 return fo.hashCode();
43 }
44
45
46
47
48 @Test
49 public void testBasicCacheOps() throws Exception {
50 final FilesCache cache = getManager().getFilesCache();
51 final FileObject fo = getWriteFolder().resolveFile("dir1");
52 final FileName fn = fo.getName();
53 final FileSystem fs = fo.getFileSystem();
54
55 cache.clear(fs);
56 assertNull(cache.getFile(fs, fn));
57
58 cache.putFile(fo);
59 assertSame(fo, cache.getFile(fs, fn));
60
61 assertFalse(cache.putFileIfAbsent(fo));
62 cache.clear(fs);
63 assertNull(cache.getFile(fs, fn));
64 assertTrue(cache.putFileIfAbsent(fo));
65
66 cache.removeFile(fs, fn);
67 assertNull(cache.getFile(fs, fn));
68 assertTrue(cache.putFileIfAbsent(fo));
69 }
70
71
72
73
74
75 @Test
76 public void testClearFiles() throws Exception {
77 final FilesCache cache = getManager().getFilesCache();
78
79 final FileObject fo1 = getWriteFolder().resolveFile("dir1");
80
81
82 cache.clear(fo1.getFileSystem());
83
84 cache.clear(fo1.getFileSystem());
85
86 final FileObject fo2 = getWriteFolder().resolveFile("dir1");
87
88 assertNotSame("Objects after cache clear should be different", fo1, fo2);
89 }
90 }