1 package net.jaekl.squelch.util;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.InputStream;
7 import java.util.HashMap;
9 public class FileUtilMock extends FileUtil {
10 private HashMap<String, Boolean> m_readable;
11 private HashMap<String, FileMock> m_files;
13 private FileUtilMock() {
14 m_readable = new HashMap<String, Boolean>();
15 m_files = new HashMap<String, FileMock>();
18 public static void mock_setInst() {
19 synchronized(FileUtil.class) {
20 m_inst = new FileUtilMock();
24 public static FileUtilMock mock_getInst() {
25 FileUtil result = m_inst;
26 if (result instanceof FileUtilMock) {
27 return (FileUtilMock) m_inst;
29 throw new AssertionError("Mock not initialized?");
33 public File newFile(String filename) {
34 return mock_newFile(filename);
38 public InputStream openStream(File file) throws FileNotFoundException {
39 if (file instanceof FileMock) {
40 return ((FileMock)file).mock_openStream();
42 return new FileInputStream(file);
45 public FileMock mock_newFile(String filename) {
46 File file = new File(filename);
47 String absFilename = file.getAbsolutePath();
48 FileMock fileMock = m_files.get(absFilename);
49 if (null == fileMock) {
50 fileMock = new FileMock(filename);
51 m_files.put(fileMock.getAbsolutePath(), fileMock);
56 public void mock_setReadable(File file, boolean readable) {
57 m_readable.put(file.getAbsolutePath(), Boolean.valueOf(readable));
60 public boolean mock_canRead(FileMock fileMock) {
61 Boolean readable = m_readable.get(fileMock.getAbsolutePath());
62 if (null == readable) {
66 return readable.booleanValue();