/** * Parse a message and return a simple {@link String} representation of some important fields. * * @param messageBytes the message as {@link java.io.InputStream} * @return String * @throws IOException * @throws MimeException */ private static String messageSummary(InputStream messageBytes) throws IOException, MimeException { MessageBuilder builder = new DefaultMessageBuilder(); Message message = builder.parseMessage(messageBytes); return String.format("\nMessage %s \n" + "Sent by:\t%s\n" + "To:\t%s\n", message.getSubject(), message.getSender(), message.getTo()); } }
@Test public void convertToMimeShouldSetBothFromAndSenderHeaders() { // Given MIMEMessageConverter sut = new MIMEMessageConverter(); String joesEmail = "joe@example.com"; CreationMessage testMessage = CreationMessage.builder() .mailboxIds(ImmutableList.of("deadbeef-dead-beef-dead-beef")) .subject("subject") .from(DraftEmailer.builder().email(joesEmail).name("joe").build()) .build(); // When Message result = sut.convertToMime(new ValueWithId.CreationMessageEntry( CreationMessageId.of("user|mailbox|1"), testMessage), ImmutableList.of()); // Then assertThat(result.getFrom()).extracting(Mailbox::getAddress).allMatch(f -> f.equals(joesEmail)); assertThat(result.getSender().getAddress()).isEqualTo(joesEmail); }