You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:17:37 UTC

[sling-org-apache-sling-testing-clients] 02/04: SLING-6964 - SlingEmailClient does not allow accessing email headers

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.testing.clients-1.1.4
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-clients.git

commit 0ebb167f3a26d1bfc4d5261179dc448b769806da
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Thu Jun 15 16:12:33 2017 +0000

    SLING-6964 - SlingEmailClient does not allow accessing email headers
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients@1798852 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/testing/clients/email/EmailMessage.java  | 44 ++++++++++++++++++++++
 .../testing/clients/email/SlingEmailClient.java    | 10 +++++
 .../sling/testing/clients/email/package-info.java  |  2 +-
 3 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java b/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
index e013e51..9ca1164 100644
--- a/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
+++ b/src/main/java/org/apache/sling/testing/clients/email/EmailMessage.java
@@ -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;
 	}
diff --git a/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java b/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
index 65bdaa1..86c31b9 100644
--- a/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
+++ b/src/main/java/org/apache/sling/testing/clients/email/SlingEmailClient.java
@@ -24,6 +24,7 @@ import static org.apache.http.HttpStatus.SC_OK;
 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 extends SlingClient {
 			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) {
diff --git a/src/main/java/org/apache/sling/testing/clients/email/package-info.java b/src/main/java/org/apache/sling/testing/clients/email/package-info.java
index 373bccc..1789e2c 100644
--- a/src/main/java/org/apache/sling/testing/clients/email/package-info.java
+++ b/src/main/java/org/apache/sling/testing/clients/email/package-info.java
@@ -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;

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.