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

Reply via email to