Skip to content

Commit

Permalink
MAILET-121 MailAddressColectionReader should consider coma, space and…
Browse files Browse the repository at this point in the history
… tabulation as delimiters
  • Loading branch information
chibenwa committed Sep 15, 2016
1 parent ee6589d commit 3a8592d
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 15 deletions.
Expand Up @@ -27,6 +27,7 @@


import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.base.Predicate;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
Expand All @@ -38,16 +39,24 @@ public class MailAddressCollectionReader {


public static Set<MailAddress> read(String condition) { public static Set<MailAddress> read(String condition) {
Preconditions.checkArgument(!Strings.isNullOrEmpty(condition)); Preconditions.checkArgument(!Strings.isNullOrEmpty(condition));
return FluentIterable.from(Splitter.onPattern(",( |\t)").split(condition)).transform(new Function<String, MailAddress>() { return FluentIterable.from(Splitter.onPattern("(,| |\t)")
@Override .split(condition))
public MailAddress apply(String s) { .filter(new Predicate<String>() {
try { @Override
return new MailAddress(s); public boolean apply(String s) {
} catch (AddressException e) { return !Strings.isNullOrEmpty(s);
throw Throwables.propagate(e);
} }
} })
}).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();
} }


} }
Expand Up @@ -65,30 +65,39 @@ public void readShouldParseOneEmail() throws Exception {
} }


@Test @Test
public void readShouldParseTwoEmail() throws Exception { public void readShouldParseTwoEmailSeparatedByComaOnly() throws Exception {
MailAddress mailAddress1 = new MailAddress("valid@apache.org"); MailAddress mailAddress1 = new MailAddress("valid@apache.org");
MailAddress mailAddress2 = new MailAddress("bis@apache.org"); MailAddress mailAddress2 = new MailAddress("bis@apache.org");


assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + ", " + mailAddress2.toString())) assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + "," + mailAddress2.toString()))
.containsExactly(mailAddress1, mailAddress2); .containsExactly(mailAddress1, mailAddress2);
} }


@Test @Test
public void readShouldParseTwoEmailTabSeparated() throws Exception { public void readShouldParseTwoEmailSeparatedBySpaceOnly() throws Exception {
MailAddress mailAddress1 = new MailAddress("valid@apache.org"); MailAddress mailAddress1 = new MailAddress("valid@apache.org");
MailAddress mailAddress2 = new MailAddress("bis@apache.org"); MailAddress mailAddress2 = new MailAddress("bis@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("valid@apache.org");
MailAddress mailAddress2 = new MailAddress("bis@apache.org");

assertThat(MailAddressCollectionReader.read(mailAddress1.toString() + "\t" + mailAddress2.toString()))
.containsExactly(mailAddress1, mailAddress2); .containsExactly(mailAddress1, mailAddress2);
} }




@Test @Test
public void readShouldParseTwoEmailTabAndSpaceCombinaison() throws Exception { public void readShouldParseTwoEmailSeparatorsCombination() throws Exception {
MailAddress mailAddress1 = new MailAddress("valid@apache.org"); MailAddress mailAddress1 = new MailAddress("valid@apache.org");
MailAddress mailAddress2 = new MailAddress("bis@apache.org"); MailAddress mailAddress2 = new MailAddress("bis@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); .containsExactly(mailAddress1, mailAddress2);
} }


Expand Down

0 comments on commit 3a8592d

Please sign in to comment.