Switch from javax.mail to net.jaekl.qd.SendMail.
[cfb.git] / test / net / jaekl / qd / util / OutputStreamMock.java
1 package net.jaekl.qd.util;
2
3 import java.io.ByteArrayOutputStream;
4 import java.io.IOException;
5 import java.io.OutputStream;
6 import java.io.UnsupportedEncodingException;
7 import java.nio.charset.Charset;
8
9 public class OutputStreamMock extends OutputStream {
10         public interface Listener {
11                 public void onWrite(int b);
12         }
13         
14         ByteArrayOutputStream m_baos;
15         Listener m_listener;
16
17         public OutputStreamMock() {
18                 m_baos = new ByteArrayOutputStream();
19                 m_listener = null;
20         }
21         
22         @Override
23         public void write(int b) throws IOException {
24                 m_baos.write(b);
25                 if (null != m_listener) {
26                         m_listener.onWrite(b);
27                 }
28         }
29         
30         public byte[] mock_getContent() {
31                 return m_baos.toByteArray();
32         }
33         
34         public String mock_getContent(Charset charset) 
35         {
36                 try {
37                         return m_baos.toString(charset.name());
38                 }
39                 catch (UnsupportedEncodingException exc) {
40                         // Really, this should not happen
41                         throw new RuntimeException(exc);
42                 }
43         }
44         
45         public void mock_setListener(Listener listener) {
46                 m_listener = listener;
47         }
48 }