You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2018/06/27 14:44:31 UTC

[09/17] james-project git commit: JAMES-2436 Simply handle folder hierarchy

JAMES-2436 Simply handle folder hierarchy


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

Branch: refs/heads/master
Commit: 7f945d34fb0f48bb40eea9edef843eeb51dfdd35
Parents: 9e0202a
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Wed Jun 20 15:31:59 2018 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Wed Jun 27 16:36:12 2018 +0200

----------------------------------------------------------------------
 .../mailbox/backup/MailboxMessageFixture.java   |  5 ++++
 .../apache/james/mailbox/backup/ZipperTest.java | 31 ++++++++++++++++++++
 2 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7f945d34/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
index e313de5..ea4b027 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/MailboxMessageFixture.java
@@ -27,6 +27,8 @@ import java.util.Date;
 import javax.mail.Flags;
 import javax.mail.util.SharedByteArrayInputStream;
 
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.TestId;
@@ -52,7 +54,10 @@ public interface MailboxMessageFixture {
     long SIZE_1 = 1000;
     long SIZE_2 = 2000;
 
+    MailboxSession MAILBOX_SESSION = new MockMailboxSession("user");
+    
     Mailbox MAILBOX_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1"), 42, TestId.of(1L));
+    Mailbox MAILBOX_1_SUB_1 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox1" + MAILBOX_SESSION.getPathDelimiter() + "sub1"), 420, TestId.of(11L));
     Mailbox MAILBOX_2 = new SimpleMailbox(MailboxPath.forUser("user", "mailbox2"), 43, TestId.of(2L));
 
     SimpleMailboxMessage MESSAGE_1 = SimpleMailboxMessage.builder()

http://git-wip-us.apache.org/repos/asf/james-project/blob/7f945d34/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java
index accd629..d11c8c5 100644
--- a/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/ZipperTest.java
@@ -19,6 +19,7 @@
 package org.apache.james.mailbox.backup;
 
 import static org.apache.james.mailbox.backup.MailboxMessageFixture.MAILBOX_1;
+import static org.apache.james.mailbox.backup.MailboxMessageFixture.MAILBOX_1_SUB_1;
 import static org.apache.james.mailbox.backup.MailboxMessageFixture.MAILBOX_2;
 import static org.apache.james.mailbox.backup.MailboxMessageFixture.MESSAGE_1;
 import static org.apache.james.mailbox.backup.MailboxMessageFixture.MESSAGE_2;
@@ -125,6 +126,36 @@ class ZipperTest {
         }
     }
 
+    @Test
+    void archiveShouldWriteMailboxHierarchyWhenPresent() throws Exception {
+        testee.archive(ImmutableList.of(MAILBOX_1, MAILBOX_1_SUB_1, MAILBOX_2), Stream.of(), output);
+
+        try (ZipFile zipFile = new ZipFile(toSeekableByteChannel(output))) {
+            assertThatZip(zipFile)
+                .containsOnlyEntriesMatching(
+                    hasName(MAILBOX_1.getName() + "/")
+                        .isDirectory(),
+                    hasName(MAILBOX_1_SUB_1.getName() + "/")
+                        .isDirectory(),
+                    hasName(MAILBOX_2.getName() + "/")
+                        .isDirectory());
+        }
+    }
+
+    @Test
+    void archiveShouldWriteMailboxHierarchyWhenMissingParent() throws Exception {
+        testee.archive(ImmutableList.of(MAILBOX_1_SUB_1, MAILBOX_2), Stream.of(), output);
+
+        try (ZipFile zipFile = new ZipFile(toSeekableByteChannel(output))) {
+            assertThatZip(zipFile)
+                .containsOnlyEntriesMatching(
+                    hasName(MAILBOX_1_SUB_1.getName() + "/")
+                        .isDirectory(),
+                    hasName(MAILBOX_2.getName() + "/")
+                        .isDirectory());
+        }
+    }
+
     private SeekableInMemoryByteChannel toSeekableByteChannel(ByteArrayOutputStream output) {
         return new SeekableInMemoryByteChannel(output.toByteArray());
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org