Author: rombert
Date: Thu Jun 15 16:12:33 2017
New Revision: 1798852

URL: http://svn.apache.org/viewvc?rev=1798852&view=rev
Log:
SLING-6964 - SlingEmailClient does not allow accessing email headers

Modified:
    
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
    
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
    
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java

Modified: 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
--- 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
 (original)
+++ 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
 Thu Jun 15 16:12:33 2017
@@ -18,18 +18,62 @@
  */
 package org.apache.sling.testing.clients.email;
 
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 /**
  * Holds information retrieved from the mock SMTP server deployed in Sling
  *
  */
 public final class EmailMessage {
        
+       public static final String HEADER_FROM = "From";
+       public static final String HEADER_TO = "To";
+       public static final String HEADER_SUBJECT = "Subject";
+       
+       private Map<String, String> headers = new LinkedHashMap<>();
+       
        private String content;
 
        public EmailMessage(String content) {
                this.content = content;
        }
        
+       /**
+        * Adds a new header to this email message
+        * 
+        * @param key the header name
+        * @param value the header value
+        */
+       public void addHeader(String key, String value) {
+               headers.put(key, value);
+       }
+       
+       /**
+        * Returns the value of one of the headers of this email
+        * 
+        * @param key the header name
+        * @return the value of the header, possibly <code>null</code>
+        */
+       public String getHeader(String key) {
+               return headers.get(key);
+       }
+       
+       /**
+        * Returns an unmodifiable view over the email headers
+        * 
+        * @return the headers
+        */
+       public Map<String, String> getHeaders() {
+               return Collections.unmodifiableMap(headers);
+       }
+       
+       /**
+        * Returns the contents of the email
+        * 
+        * @return the email content
+        */
        public String getContent() {
                return content;
        }

Modified: 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
--- 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
 (original)
+++ 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
 Thu Jun 15 16:12:33 2017
@@ -24,6 +24,7 @@ import static org.apache.http.HttpStatus
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.http.Header;
@@ -91,6 +92,15 @@ public final class SlingEmailClient exte
                        JsonNode messages = 
mapper.readTree(response.getContent());
                        for ( JsonNode emailNode : messages.get("messages") ) {
                                EmailMessage msg = new 
EmailMessage(emailNode.get(PN_CONTENT).getTextValue());
+                               Iterator<String> fieldNames = 
emailNode.getFieldNames();
+                               while ( fieldNames.hasNext() ) {
+                                       String fieldName = fieldNames.next();
+                                       if ( fieldName.equals(PN_CONTENT) ) {
+                                               continue;
+                                       }
+                                       msg.addHeader(fieldName, 
emailNode.get(fieldName).getTextValue());
+                               }
+                                       
                                emails.add(msg);
                        }
                } catch (IOException e) {

Modified: 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java?rev=1798852&r1=1798851&r2=1798852&view=diff
==============================================================================
--- 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
 (original)
+++ 
sling/trunk/testing/http/clients/src/main/java/org/apache/sling/testing/clients/email/package-info.java
 Thu Jun 15 16:12:33 2017
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("1.0.0")
+@Version("1.1.0")
 package org.apache.sling.testing.clients.email;
 
 import org.osgi.annotation.versioning.Version;


Reply via email to