public Multipart newMultipart(MultipartBuilder source) { return newMultipart(source.build()); }
public AbstractEntityBuilder setBody(MultipartBuilder multipart) { return this.setBody(multipart.build()); }
private Multipart createMultipartAlternativeBody(CreationMessage newMessage) throws IOException { MultipartBuilder bodyBuilder = MultipartBuilder.create(ALTERNATIVE_SUB_TYPE); addText(bodyBuilder, newMessage.getTextBody()); addHtml(bodyBuilder, newMessage.getHtmlBody()); return bodyBuilder.build(); }
@Test public void extractReportShouldRejectMultipartWithSinglePart() throws Exception { ExtractMDNOriginalJMAPMessageId testee = new ExtractMDNOriginalJMAPMessageId(mock(MailboxManager.class)); Message message = Message.Builder.of() .setBody( MultipartBuilder.create() .setSubType("report") .addTextPart("content", StandardCharsets.UTF_8) .build()) .build(); assertThat(testee.extractReport(message)).isEmpty(); }
@Test void extractShouldReturnHtmlWhenMultipartAlternativeWithoutPlainPart() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnEmptyWhenMultipartMixedAndFirstPartIsATextAttachment() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(textAttachment) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).isEmpty(); }
@Test void extractShouldReturnHtmlWhenMultipartRelated() throws IOException { Multipart multipart = MultipartBuilder.create("related") .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnHtmlWhenMultipartRelated() throws IOException { Multipart multipart = MultipartBuilder.create("related") .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractReportShouldRejectSecondPartWithBadContentType() throws IOException { ExtractMDNOriginalJMAPMessageId testee = new ExtractMDNOriginalJMAPMessageId(mock(MailboxManager.class)); Message message = Message.Builder.of() .setBody(MultipartBuilder.create() .setSubType("report") .addTextPart("first", StandardCharsets.UTF_8) .addTextPart("second", StandardCharsets.UTF_8) .build()) .build(); assertThat(testee.extractReport(message)).isEmpty(); }
@Test void extractShouldReturnTextWhenMultipartAlternativeWithoutHtmlPart() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).contains(TEXT_CONTENT); assertThat(actual.getHtmlBody()).isEmpty(); }
@Test void extractShouldReturnEmptyWhenMultipartMixedAndFirstPartIsATextAttachment() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(textAttachment) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).isEmpty(); }
@Test public void extractShouldReturnHtmlWhenMultipartAlternativeWithoutPlainPart() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnTextWhenMultipartAlternativeWithoutHtmlPart() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).contains(TEXT_CONTENT); assertThat(actual.getHtmlBody()).isEmpty(); }
@Test void extractShouldReturnHtmlAndTextWhenMultipartAlternative() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(textPart) .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).contains(TEXT_CONTENT); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnFirstPartOnlyWhenMultipartMixedAndFirstPartIsHtml() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(htmlPart) .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test void extractShouldReturnFirstPartOnlyWhenMultipartMixedAndFirstPartIsHtml() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(htmlPart) .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).isEmpty(); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnHtmlAndTextWhenMultipartAlternative() throws IOException { Multipart multipart = MultipartBuilder.create("alternative") .addBodyPart(textPart) .addBodyPart(htmlPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getTextBody()).contains(TEXT_CONTENT); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); }
@Test public void extractShouldReturnFirstNonAttachmentPartWhenMultipartMixed() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(textAttachment) .addBodyPart(htmlPart) .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); assertThat(actual.getTextBody()).isEmpty(); }
private Multipart asMime4JMultipart() throws IOException { MultipartBuilder builder = MultipartBuilder.create(REPORT_SUB_TYPE); builder.addContentTypeParameter(new NameValuePair("report-type", DISPOSITION_NOTIFICATION_REPORT_TYPE)); builder.addBodyPart(BodyPartBuilder.create() .use(new BasicBodyFactory()) .setBody(humanReadableText, Charsets.UTF_8) .setContentType("text/plain", UTF_8_CHARSET)); builder.addBodyPart(BodyPartBuilder.create() .use(new BasicBodyFactory()) .setBody(report.formattedValue(), Charsets.UTF_8) .setContentType(DISPOSITION_CONTENT_TYPE, UTF_8_CHARSET)); return builder.build(); }
@Test void extractShouldReturnFirstNonAttachmentPartWhenMultipartMixed() throws IOException { Multipart multipart = MultipartBuilder.create("mixed") .addBodyPart(textAttachment) .addBodyPart(htmlPart) .addBodyPart(textPart) .build(); Message message = Message.Builder.of() .setBody(multipart) .build(); MessageContent actual = testee.extract(message); assertThat(actual.getHtmlBody()).contains(HTML_CONTENT); assertThat(actual.getTextBody()).isEmpty(); }