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 76ada25ca96a1bf73ee7e5535b8f6bfc74e55034
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Thu Jul 11 15:52:25 2019 +0200

    JAMES-2810 Inconsistencies testing upon retention
---
 .../CassandraDeletedMessageMetadataVaultTest.java  | 60 ++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git 
a/mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVaultTest.java
 
b/mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVaultTest.java
index 0779d49..b823d75 100644
--- 
a/mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVaultTest.java
+++ 
b/mailbox/plugin/deleted-messages-vault-cassandra/src/test/java/org/apache/james/vault/metadata/CassandraDeletedMessageMetadataVaultTest.java
@@ -258,4 +258,64 @@ public class CassandraDeletedMessageMetadataVaultTest 
implements DeletedMessageM
             .blockOptional();
         assertThat(maybeInfo).isEmpty();
     }
+
+    @Test
+    void retentionShouldBeRetriableWhenUserPerBucketDAOFails() {
+        Mono.from(testee.store(DELETED_MESSAGE)).block();
+
+        when(userPerBucketDAO.deleteBucket(BUCKET_NAME))
+            .thenReturn(Mono.error(new RuntimeException()));
+
+        try {
+            
Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+        } catch (Exception e) {
+            // ignored
+        }
+
+        reset(userPerBucketDAO);
+        Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+
+        Stream<DeletedMessageWithStorageInformation> messages = 
Flux.from(metadataVault().listMessages(BUCKET_NAME, USER)).toStream();
+        assertThat(messages).isEmpty();
+    }
+
+    @Test
+    void retentionShouldBeRetriableWhenMetadataDAOFails() {
+        Mono.from(testee.store(DELETED_MESSAGE)).block();
+
+        when(metadataDAO.deleteInBucket(BUCKET_NAME, USER))
+            .thenReturn(Mono.error(new RuntimeException()));
+
+        try {
+            
Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+        } catch (Exception e) {
+            // ignored
+        }
+
+        reset(metadataDAO);
+        Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+
+        Stream<DeletedMessageWithStorageInformation> messages = 
Flux.from(metadataVault().listMessages(BUCKET_NAME, USER)).toStream();
+        assertThat(messages).isEmpty();
+    }
+
+    @Test
+    void retentionShouldBeRetriableWhenStorageInformationDAOFails() {
+        Mono.from(testee.store(DELETED_MESSAGE)).block();
+
+        when(storageInformationDAO.deleteStorageInformation(USER, MESSAGE_ID))
+            .thenReturn(Mono.error(new RuntimeException()));
+
+        try {
+            
Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+        } catch (Exception e) {
+            // ignored
+        }
+
+        reset(storageInformationDAO);
+        Mono.from(testee.removeMetadataRelatedToBucket(BUCKET_NAME)).block();
+
+        Stream<DeletedMessageWithStorageInformation> messages = 
Flux.from(metadataVault().listMessages(BUCKET_NAME, USER)).toStream();
+        assertThat(messages).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