Add unit tests for Config.java.
[cfb.git] / test / net / jaekl / qd / util / FileMock.java
1 package net.jaekl.qd.util;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.File;
6 import java.nio.charset.Charset;
7
8 public class FileMock extends File {
9         private static final long serialVersionUID = 1L;
10         public static final String UTF_8 = "UTF-8";
11         
12         private ByteArrayInputStream m_bais;
13         private ByteArrayOutputStream m_baos;
14         private byte[] m_content;
15
16         public FileMock(String fileName) {
17                 super(fileName);
18                 
19                 m_bais = null;
20                 m_baos = null;
21                 m_content = new byte[0];
22         }
23         
24         public ByteArrayInputStream mock_openInput() {
25                 m_bais = new ByteArrayInputStream(mock_getContent());
26                 return m_bais;
27         }
28         
29         public ByteArrayOutputStream mock_openOutput() {
30                 m_baos = new ByteArrayOutputStream();
31                 return m_baos;
32         }
33         
34         public void mock_setContent(byte[] content) {
35                 m_content = content.clone();
36         }
37         
38         public void mock_setContent(String content, Charset charset) {
39                 m_content = content.getBytes(charset);
40         }
41         
42         public void mock_setContent(String content) {
43                 mock_setContent(content, Charset.forName(UTF_8));
44         }
45         
46         public byte[] mock_getContent() {
47                 if (null != m_baos) {
48                         m_content = m_baos.toByteArray();
49                 }
50                 return m_content.clone();
51         }
52 }