+package net.jaekl.qd.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.nio.charset.Charset;
+
+public class FileMock extends File {
+ private static final long serialVersionUID = 1L;
+ public static final String UTF_8 = "UTF-8";
+
+ private ByteArrayInputStream m_bais;
+ private ByteArrayOutputStream m_baos;
+ private byte[] m_content;
+
+ public FileMock(String fileName) {
+ super(fileName);
+
+ m_bais = null;
+ m_baos = null;
+ m_content = new byte[0];
+ }
+
+ public ByteArrayInputStream mock_openInput() {
+ m_bais = new ByteArrayInputStream(mock_getContent());
+ return m_bais;
+ }
+
+ public ByteArrayOutputStream mock_openOutput() {
+ m_baos = new ByteArrayOutputStream();
+ return m_baos;
+ }
+
+ public void mock_setContent(byte[] content) {
+ m_content = content.clone();
+ }
+
+ public void mock_setContent(String content, Charset charset) {
+ m_content = content.getBytes(charset);
+ }
+
+ public void mock_setContent(String content) {
+ mock_setContent(content, Charset.forName(UTF_8));
+ }
+
+ public byte[] mock_getContent() {
+ if (null != m_baos) {
+ m_content = m_baos.toByteArray();
+ }
+ return m_content.clone();
+ }
+}