Add unit tests for Config.java.
[cfb.git] / test / net / jaekl / qd / util / FileMock.java
diff --git a/test/net/jaekl/qd/util/FileMock.java b/test/net/jaekl/qd/util/FileMock.java
new file mode 100644 (file)
index 0000000..a886f4c
--- /dev/null
@@ -0,0 +1,52 @@
+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();
+       }
+}