This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit c394009bfe449f7218b01b5a77593a097c411736 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Thu Mar 21 15:28:20 2019 +0700 MAILBOX-388 MailRepositoryPath::parts --- .../mailrepository/api/MailRepositoryPath.java | 8 ++++++ .../mailrepository/api/MailRepositoryPathTest.java | 30 ++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryPath.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryPath.java index f2d8686..e64ce9c 100644 --- a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryPath.java +++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepositoryPath.java @@ -23,12 +23,14 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; +import java.util.List; import java.util.Objects; import org.apache.commons.lang3.StringUtils; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; public class MailRepositoryPath implements Comparable<MailRepositoryPath> { @@ -74,6 +76,12 @@ public class MailRepositoryPath implements Comparable<MailRepositoryPath> { return value.startsWith(other.value + PATH_DELIMITER); } + public List<String> parts() { + return Splitter.on(PATH_DELIMITER) + .omitEmptyStrings() + .splitToList(value); + } + public String asString() { return value; } diff --git a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryPathTest.java b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryPathTest.java index 31201e7..51dc6b6 100644 --- a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryPathTest.java +++ b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryPathTest.java @@ -158,4 +158,34 @@ class MailRepositoryPathTest { assertThat(MailRepositoryPath.from("abcghi").hasPrefix(MailRepositoryPath.from("abc"))) .isFalse(); } + + @Test + void partsShouldSplitValue() { + assertThat(MailRepositoryPath.from("abc/ghi/klm").parts()) + .containsExactly("abc", "ghi", "klm"); + } + + @Test + void partsShouldOmmitEmptyPart() { + assertThat(MailRepositoryPath.from("abc/ghi//klm").parts()) + .containsExactly("abc", "ghi", "klm"); + } + + @Test + void partsShouldOmmitEmptyFirstPart() { + assertThat(MailRepositoryPath.from("/ghi/klm").parts()) + .containsExactly("ghi", "klm"); + } + + @Test + void partsShouldreturnValueWhenNoSeparator() { + assertThat(MailRepositoryPath.from("abc").parts()) + .containsExactly("abc"); + } + + @Test + void partsShouldEmptyWhenEmpty() { + assertThat(MailRepositoryPath.from("").parts()) + .isEmpty(); + } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org