package com.agiletec.plugins.jpmail.mock.messages;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.subethamail.smtp.MessageContext;
import org.subethamail.smtp.MessageHandler;
import org.subethamail.smtp.RejectException;
public class MockMessageHandler implements MessageHandler {
public MockMessageHandler(MessageContext ctx) {
this._ctx = ctx;
if (null == _messages) {
_messages = new ArrayList<MockMailMessage>();
}
}
public void from(String from) throws RejectException {
this.setFrom(from);
System.out.println("MockMessageHandler - FROM:"+from);
}
public void recipient(String recipient) throws RejectException {
this.setTo(recipient);
System.out.println("MockMessageHandler - RECIPIENT:"+recipient);
}
public void data(InputStream data) throws IOException {
String dataStr = this.convertStreamToString(data);
this.setData(dataStr);
System.out.println("MockMessageHandler - MAIL DATA");
System.out.println("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =");
System.out.println(dataStr);
System.out.println("= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =");
MockMailMessage message = new MockMailMessage(this.getFrom(), this.getTo(), this._data);
this.getMessages().add(message);
System.out.println(" MockMessageHandler - size " + this.getMessages().size());
}
public void done() {
System.out.println("MockMessageHandler - Finished");
}
public String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
public String getFrom() {
return _from;
}
public void setFrom(String from) {
this._from = from;
}
public String getTo() {
return _to;
}
public void setTo(String to) {
this._to = to;
}
public String getData() {
return _data;
}
public void setData(String data) {
this._data = data;
}
public List<MockMailMessage> getMessages() {
return _messages;
}
private void setMessages(List<MockMailMessage> messages) {
this._messages = messages;
}
private String _from;
private String _to;
private String _data;
private MessageContext _ctx;
private List<MockMailMessage> _messages;
}