You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by af...@apache.org on 2016/10/06 10:35:29 UTC
nifi git commit: NIFI-1912 - PutEmail fixed format when attachment
Repository: nifi
Updated Branches:
refs/heads/master 6f1af31ff -> 3c8545a90
NIFI-1912 - PutEmail fixed format when attachment
Correction as suggested by users in JIRA.
+ adding a unit test to check attachments.
This closes: #1081
Signed-off-by: Andre F de Miranda <tr...@users.noreply.github.com>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/3c8545a9
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/3c8545a9
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/3c8545a9
Branch: refs/heads/master
Commit: 3c8545a90266b8f82a6c541c9a68daad107b0f23
Parents: 6f1af31
Author: Pierre Villard <pi...@gmail.com>
Authored: Thu Sep 29 22:47:04 2016 +0200
Committer: Andre F de Miranda <tr...@users.noreply.github.com>
Committed: Thu Oct 6 21:34:56 2016 +1100
----------------------------------------------------------------------
.../nifi/processors/standard/PutEmail.java | 2 +-
.../nifi/processors/standard/TestPutEmail.java | 49 ++++++++++++++++++++
2 files changed, 50 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/3c8545a9/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
index 27534fe..2965a67 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
@@ -318,7 +318,7 @@ public class PutEmail extends AbstractProcessor {
if (context.getProperty(ATTACH_FILE).asBoolean()) {
final MimeBodyPart mimeText = new PreencodedMimeBodyPart("base64");
mimeText.setDataHandler(new DataHandler(new ByteArrayDataSource(
- Base64.encodeBase64(messageText.getBytes("UTF-8")), "text/plain; charset=\"utf-8\"")));
+ Base64.encodeBase64(messageText.getBytes("UTF-8")), contentType + "; charset=\"utf-8\"")));
final MimeBodyPart mimeFile = new MimeBodyPart();
session.read(flowFile, new InputStreamCallback() {
@Override
http://git-wip-us.apache.org/repos/asf/nifi/blob/3c8545a9/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
index fb11d8f..782f61c 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
@@ -20,15 +20,21 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage.RecipientType;
+import javax.mail.internet.MimeMultipart;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.binary.StringUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.nifi.util.LogMessage;
import org.apache.nifi.util.TestRunner;
import org.apache.nifi.util.TestRunners;
@@ -182,6 +188,7 @@ public class TestPutEmail {
assertEquals("Expected no messages to be sent", 0, processor.getMessages().size());
}
+
@Test
public void testEmptyFrom() throws Exception {
// verifies that if the FROM property evaluates to an empty string at
@@ -204,4 +211,46 @@ public class TestPutEmail {
assertTrue(((String)logMessage.getArgs()[2]).contains("Required property 'From' evaluates to an empty string"));
}
+ @Test
+ public void testOutgoingMessageAttachment() throws Exception {
+ // verifies that are set on the outgoing Message correctly
+ runner.setProperty(PutEmail.SMTP_HOSTNAME, "smtp-host");
+ runner.setProperty(PutEmail.HEADER_XMAILER, "TestingNiFi");
+ runner.setProperty(PutEmail.FROM, "test@apache.org");
+ runner.setProperty(PutEmail.MESSAGE, "Message Body");
+ runner.setProperty(PutEmail.ATTACH_FILE, "true");
+ runner.setProperty(PutEmail.CONTENT_TYPE, "text/html");
+ runner.setProperty(PutEmail.TO, "recipient@apache.org");
+
+ runner.enqueue("Some text".getBytes());
+
+ runner.run();
+
+ runner.assertQueueEmpty();
+ runner.assertAllFlowFilesTransferred(PutEmail.REL_SUCCESS);
+
+ // Verify that the Message was populated correctly
+ assertEquals("Expected a single message to be sent", 1, processor.getMessages().size());
+ Message message = processor.getMessages().get(0);
+ assertEquals("test@apache.org", message.getFrom()[0].toString());
+ assertEquals("X-Mailer Header", "TestingNiFi", message.getHeader("X-Mailer")[0]);
+ assertEquals("recipient@apache.org", message.getRecipients(RecipientType.TO)[0].toString());
+
+ assertTrue(message.getContent() instanceof MimeMultipart);
+
+ final MimeMultipart multipart = (MimeMultipart) message.getContent();
+ final BodyPart part = multipart.getBodyPart(0);
+ final InputStream is = part.getDataHandler().getInputStream();
+ final String decodedText = StringUtils.newStringUtf8(Base64.decodeBase64(IOUtils.toString(is, "UTF-8")));
+ assertEquals("Message Body", decodedText);
+
+ final BodyPart attachPart = multipart.getBodyPart(1);
+ final InputStream attachIs = attachPart.getDataHandler().getInputStream();
+ final String text = IOUtils.toString(attachIs, "UTF-8");
+ assertEquals("Some text", text);
+
+ assertNull(message.getRecipients(RecipientType.BCC));
+ assertNull(message.getRecipients(RecipientType.CC));
+ }
+
}