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

Reply via email to