package com.fsck.k9.mail.helpers; import java.io.IOException; import java.io.OutputStream; import com.fsck.k9.mail.Address; import com.fsck.k9.mail.MessagingException; import com.fsck.k9.mail.internet.MimeMessage; import okio.BufferedSink; import okio.Okio; class TestMessage extends MimeMessage { private final long messageSize; private final Address[] from; private final Address[] to; private final boolean hasAttachments; TestMessage(TestMessageBuilder builder) { from = toAddressArray(builder.from); to = toAddressArray(builder.to); hasAttachments = builder.hasAttachments; messageSize = builder.messageSize; } @Override public Address[] getFrom() { return from; } @Override public Address[] getRecipients(RecipientType type) { switch (type) { case TO: return to; case CC: return new Address[0]; case BCC: return new Address[0]; } throw new AssertionError("Missing switch case: " + type); } @Override public boolean hasAttachments() { return hasAttachments; } @Override public long calculateSize() { return messageSize; } @Override public void writeTo(OutputStream out) throws IOException, MessagingException { BufferedSink bufferedSink = Okio.buffer(Okio.sink(out)); bufferedSink.writeUtf8("[message data]"); bufferedSink.emit(); } private static Address[] toAddressArray(String email) { return email == null ? new Address[0] : new Address[] { new Address(email) }; } }