96 lines
4.1 KiB
Diff
96 lines
4.1 KiB
Diff
From 9d0a79dd2382440a2c2c1ceee660eb996643f972 Mon Sep 17 00:00:00 2001
|
|
From: benwa <btellier@linagora.com>
|
|
Date: Fri, 9 Mar 2018 14:29:07 +0700
|
|
Subject: [PATCH] MIME4J-268 DefaultMessageWriter should expose a convenient
|
|
*asBytes* method
|
|
|
|
---
|
|
.../mime4j/message/DefaultMessageWriter.java | 8 +++
|
|
.../message/DefaultMessageWriterTest.java | 50 +++++++++++++++++++
|
|
2 files changed, 58 insertions(+)
|
|
create mode 100644 dom/src/test/java/org/apache/james/mime4j/message/DefaultMessageWriterTest.java
|
|
|
|
diff --git a/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageWriter.java b/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageWriter.java
|
|
index 34890a72..4ce7f7b9 100644
|
|
--- a/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageWriter.java
|
|
+++ b/dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageWriter.java
|
|
@@ -19,6 +19,7 @@
|
|
|
|
package org.apache.james.mime4j.message;
|
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.OutputStream;
|
|
|
|
@@ -48,6 +49,13 @@ public class DefaultMessageWriter implements MessageWriter {
|
|
private static final byte[] CRLF = { '\r', '\n' };
|
|
private static final byte[] DASHES = { '-', '-' };
|
|
|
|
+ public static byte[] asBytes(Message message) throws IOException {
|
|
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
|
+ DefaultMessageWriter writer = new DefaultMessageWriter();
|
|
+ writer.writeMessage(message, buffer);
|
|
+ return buffer.toByteArray();
|
|
+ }
|
|
+
|
|
/**
|
|
* Protected constructor prevents direct instantiation.
|
|
*/
|
|
diff --git a/dom/src/test/java/org/apache/james/mime4j/message/DefaultMessageWriterTest.java b/dom/src/test/java/org/apache/james/mime4j/message/DefaultMessageWriterTest.java
|
|
new file mode 100644
|
|
index 00000000..dece2b50
|
|
--- /dev/null
|
|
+++ b/dom/src/test/java/org/apache/james/mime4j/message/DefaultMessageWriterTest.java
|
|
@@ -0,0 +1,50 @@
|
|
+/****************************************************************
|
|
+ * Licensed to the Apache Software Foundation (ASF) under one *
|
|
+ * or more contributor license agreements. See the NOTICE file *
|
|
+ * distributed with this work for additional information *
|
|
+ * regarding copyright ownership. The ASF licenses this file *
|
|
+ * to you under the Apache License, Version 2.0 (the *
|
|
+ * "License"); you may not use this file except in compliance *
|
|
+ * with the License. You may obtain a copy of the License at *
|
|
+ * *
|
|
+ * http://www.apache.org/licenses/LICENSE-2.0 *
|
|
+ * *
|
|
+ * Unless required by applicable law or agreed to in writing, *
|
|
+ * software distributed under the License is distributed on an *
|
|
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
|
|
+ * KIND, either express or implied. See the License for the *
|
|
+ * specific language governing permissions and limitations *
|
|
+ * under the License. *
|
|
+ ****************************************************************/
|
|
+
|
|
+package org.apache.james.mime4j.message;
|
|
+
|
|
+import static org.assertj.core.api.Assertions.assertThat;
|
|
+
|
|
+import org.apache.james.mime4j.Charsets;
|
|
+import org.apache.james.mime4j.dom.Message;
|
|
+import org.junit.Test;
|
|
+
|
|
+public class DefaultMessageWriterTest {
|
|
+
|
|
+ @Test
|
|
+ public void asBytesShouldSerializeTheMessage() throws Exception {
|
|
+ byte[] bytes = DefaultMessageWriter.asBytes(
|
|
+ Message.Builder.of()
|
|
+ .setBody("this is the body", Charsets.UTF_8)
|
|
+ .setFrom("sender@localhost")
|
|
+ .setTo("receiver@localhost")
|
|
+ .setSubject("Cool subject")
|
|
+ .build());
|
|
+
|
|
+ assertThat(new String(bytes, Charsets.UTF_8.name()))
|
|
+ .isEqualTo("MIME-Version: 1.0\r\n" +
|
|
+ "Content-Type: text/plain; charset=UTF-8\r\n" +
|
|
+ "From: sender@localhost\r\n" +
|
|
+ "To: receiver@localhost\r\n" +
|
|
+ "Subject: Cool subject\r\n" +
|
|
+ "\r\n" +
|
|
+ "this is the body");
|
|
+ }
|
|
+
|
|
+}
|
|
\ No newline at end of file
|