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