Repository: james-project Updated Branches: refs/heads/master 4c3e0403c -> 8c4606360
JAMES-2159 Support String in AmqpForwardAttribute Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4c5cc6a4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4c5cc6a4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4c5cc6a4 Branch: refs/heads/master Commit: 4c5cc6a485a0b9904dfccafae70a1b1492bb7584 Parents: c5bf071 Author: Matthieu Baechler <matth...@apache.org> Authored: Wed Sep 13 14:51:29 2017 +0200 Committer: Antoine Duprat <adup...@linagora.com> Committed: Wed Sep 27 16:07:08 2017 +0200 ---------------------------------------------------------------------- .../transport/mailets/AmqpForwardAttribute.java | 6 +++++- .../mailets/AmqpForwardAttributeTest.java | 22 ++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/4c5cc6a4/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java ---------------------------------------------------------------------- diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java index e0cb8f1..0c6fb7d 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java @@ -21,6 +21,7 @@ package org.apache.james.transport.mailets; import java.io.IOException; import java.io.Serializable; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; import java.util.concurrent.TimeoutException; @@ -126,8 +127,11 @@ public class AmqpForwardAttribute extends GenericMailet { if (attributeContent instanceof List) { return ((List<byte[]>) attributeContent).stream(); } + if (attributeContent instanceof String) { + return Stream.of(((String) attributeContent).getBytes(StandardCharsets.UTF_8)); + } throw new MailetException("Invalid attribute found into attribute " - + attribute + "class Map or List expected but " + + attribute + "class Map or List or String expected but " + attributeContent.getClass() + " found."); } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c5cc6a4/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java ---------------------------------------------------------------------- diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java index c8f201e..27ce10b 100644 --- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java +++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java @@ -27,6 +27,7 @@ import static org.mockito.Mockito.verifyZeroInteractions; import static org.mockito.Mockito.when; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.concurrent.TimeoutException; import javax.mail.MessagingException; @@ -245,4 +246,25 @@ public class AmqpForwardAttributeTest { verify(channel).basicPublish(eq(EXCHANGE_NAME), eq(ROUTING_KEY), basicPropertiesCaptor.capture(), eq(ATTACHMENT_CONTENT)); assertThat(basicPropertiesCaptor.getValue()).isEqualToComparingFieldByField(expectedProperties); } + + @Test + public void serviceShouldPublishAttributeContentWhenAttributeInMailAndIsAString() throws Exception { + mailet.init(mailetConfig); + Channel channel = mock(Channel.class); + Connection connection = mock(Connection.class); + when(connection.createChannel()).thenReturn(channel); + ConnectionFactory connectionFactory = mock(ConnectionFactory.class); + when(connectionFactory.newConnection()).thenReturn(connection); + mailet.setConnectionFactory(connectionFactory); + Mail mail = mock(Mail.class); + String content = "Attachment content"; + when(mail.getAttribute(MAIL_ATTRIBUTE)).thenReturn(content); + BasicProperties expectedProperties = new AMQP.BasicProperties(); + + mailet.service(mail); + + ArgumentCaptor<BasicProperties> basicPropertiesCaptor = ArgumentCaptor.forClass(BasicProperties.class); + verify(channel).basicPublish(eq(EXCHANGE_NAME), eq(ROUTING_KEY), basicPropertiesCaptor.capture(), eq(content.getBytes(StandardCharsets.UTF_8))); + assertThat(basicPropertiesCaptor.getValue()).isEqualToComparingFieldByField(expectedProperties); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org