Repository: james-project
Updated Branches:
  refs/heads/master ee6589d5d -> 3a8592d67


MAILET-121 MailAddressColectionReader should consider coma, space and 
tabulation as delimiters


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3a8592d6
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3a8592d6
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3a8592d6

Branch: refs/heads/master
Commit: 3a8592d67a9478ac679191e1cb6cfc05fac471ca
Parents: ee6589d
Author: Benoit Tellier <btell...@linagora.com>
Authored: Thu Sep 8 16:42:06 2016 +0200
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Thu Sep 15 12:12:52 2016 +0200

----------------------------------------------------------------------
 .../utils/MailAddressCollectionReader.java      | 27 +++++++++++++-------
 .../util/MailAddressCollectionReaderTest.java   | 21 ++++++++++-----
 2 files changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3a8592d6/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
index 17ee09e..3855ed1 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
@@ -27,6 +27,7 @@ import org.apache.mailet.MailAddress;
 
 import com.google.common.base.Function;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
 import com.google.common.base.Throwables;
@@ -38,16 +39,24 @@ public class MailAddressCollectionReader {
 
     public static Set<MailAddress> read(String condition) {
         Preconditions.checkArgument(!Strings.isNullOrEmpty(condition));
-        return FluentIterable.from(Splitter.onPattern(",( 
|\t)").split(condition)).transform(new Function<String, MailAddress>() {
-            @Override
-            public MailAddress apply(String s) {
-                try {
-                    return new MailAddress(s);
-                } catch (AddressException e) {
-                    throw Throwables.propagate(e);
+        return FluentIterable.from(Splitter.onPattern("(,| |\t)")
+            .split(condition))
+            .filter(new Predicate<String>() {
+                @Override
+                public boolean apply(String s) {
+                    return !Strings.isNullOrEmpty(s);
                 }
-            }
-        }).toSet();
+            })
+            .transform(new Function<String, MailAddress>() {
+                @Override
+                public MailAddress apply(String s) {
+                    try {
+                        return new MailAddress(s);
+                    } catch (AddressException e) {
+                        throw Throwables.propagate(e);
+                    }
+                }
+            }).toSet();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3a8592d6/mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
 
b/mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
index 46cc41e..c7c0494 100644
--- 
a/mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
+++ 
b/mailet/standard/src/test/java/org/apache/james/transport/matchers/util/MailAddressCollectionReaderTest.java
@@ -65,30 +65,39 @@ public class MailAddressCollectionReaderTest {
     }
 
     @Test
-    public void readShouldParseTwoEmail() throws Exception {
+    public void readShouldParseTwoEmailSeparatedByComaOnly() throws Exception {
         MailAddress mailAddress1 = new MailAddress("va...@apache.org");
         MailAddress mailAddress2 = new MailAddress("b...@apache.org");
 
-        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
", " + mailAddress2.toString()))
+        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
"," + mailAddress2.toString()))
             .containsExactly(mailAddress1, mailAddress2);
     }
 
     @Test
-    public void readShouldParseTwoEmailTabSeparated() throws Exception {
+    public void readShouldParseTwoEmailSeparatedBySpaceOnly() throws Exception 
{
         MailAddress mailAddress1 = new MailAddress("va...@apache.org");
         MailAddress mailAddress2 = new MailAddress("b...@apache.org");
 
-        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
",\t" + mailAddress2.toString()))
+        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
" " + mailAddress2.toString()))
+            .containsExactly(mailAddress1, mailAddress2);
+    }
+
+    @Test
+    public void readShouldParseTwoEmailSeparatedByTabOnly() throws Exception {
+        MailAddress mailAddress1 = new MailAddress("va...@apache.org");
+        MailAddress mailAddress2 = new MailAddress("b...@apache.org");
+
+        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
"\t" + mailAddress2.toString()))
             .containsExactly(mailAddress1, mailAddress2);
     }
 
 
     @Test
-    public void readShouldParseTwoEmailTabAndSpaceCombinaison() throws 
Exception {
+    public void readShouldParseTwoEmailSeparatorsCombination() throws 
Exception {
         MailAddress mailAddress1 = new MailAddress("va...@apache.org");
         MailAddress mailAddress2 = new MailAddress("b...@apache.org");
 
-        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
",\t  \t\t \t " + mailAddress2.toString()))
+        assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + 
",\t  \t,\t \t " + mailAddress2.toString()))
             .containsExactly(mailAddress1, mailAddress2);
     }
 


---------------------------------------------------------------------
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