1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.test;
18
19 import org.apache.commons.vfs.FileObject;
20 import org.apache.commons.vfs.FileSystem;
21 import org.apache.commons.vfs.FileSystemManager;
22 import org.apache.commons.vfs.FilesCache;
23 import org.apache.commons.vfs.impl.DefaultFileSystemManager;
24 import org.apache.commons.vfs.test.ProviderTestConfig;
25
26 /***
27 * A provider config that wraps another provider, to run the tests via
28 * junctions.
29 *
30 * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
31 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
32 */
33 public class JunctionProviderConfig
34 implements ProviderTestConfig
35 {
36 private final ProviderTestConfig config;
37
38 public JunctionProviderConfig(final ProviderTestConfig config)
39 {
40 this.config = config;
41 }
42
43 public FilesCache getFilesCache()
44 {
45 return config.getFilesCache();
46 }
47
48 /***
49 * Prepares the file system manager.
50 */
51 public void prepare(final DefaultFileSystemManager manager) throws Exception
52 {
53 config.prepare(manager);
54 }
55
56 /***
57 * Returns the base folder for tests.
58 */
59 public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception
60 {
61 final FileObject baseFolder = config.getBaseTestFolder(manager);
62
63
64 final FileSystem newFs = manager.createVirtualFileSystem("vfs:").getFileSystem();
65 final String junctionPoint = "/some/dir";
66 newFs.addJunction(junctionPoint, baseFolder);
67
68 return newFs.resolveFile(junctionPoint);
69 }
70 }