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 bt...@apache.org on 2020/03/02 03:16:17 UTC

[james-project] 20/29: JAMES-3075 prove that CassandraIndexTableHandler don't handle errors gracefully

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 7b3ba54d0389b2496b25ab197546c2dd075fcb68
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Feb 27 14:56:28 2020 +0700

    JAMES-3075 prove that CassandraIndexTableHandler don't handle errors gracefully
---
 .../mail/CassandraIndexTableHandlerTest.java       | 31 ++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
index ad0f2be..6259819 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraIndexTableHandlerTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.mailbox.cassandra.mail;
 
+import static org.apache.james.backends.cassandra.Scenario.Builder.fail;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -46,11 +47,16 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.UidValidity;
 import org.apache.james.mailbox.model.UpdatedFlags;
+import org.apache.james.mailbox.store.MessageBuilder;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import reactor.core.publisher.Mono;
+
 class CassandraIndexTableHandlerTest {
 
     private static final CassandraId MAILBOX_ID = CassandraId.timeBased();
@@ -95,6 +101,31 @@ class CassandraIndexTableHandlerTest {
             MAILBOX_ID);
     }
 
+    @Nested
+    class Failures {
+        @Disabled("JAMES-3075 prove that CassandraIndexTableHandler don't handle errors gracefully")
+        @Test
+        void messageCountShouldBeUpdatedUponDeletedMessageFailure(CassandraCluster cassandra) throws Exception {
+            MailboxMessage message = new MessageBuilder()
+                .flags(FlagsBuilder.builder()
+                    .add(Flags.Flag.DELETED, Flags.Flag.RECENT)
+                    .add("customFlag")
+                    .build())
+                .build();
+
+            cassandra.getConf().registerScenario(fail()
+                .times(1)
+                .whenQueryStartsWith("INSERT INTO messageDeleted (mailboxId,uid) VALUES (:mailboxId,:uid);"));
+
+            testee.updateIndexOnAdd(message, MAILBOX_ID)
+                .onErrorResume(any -> Mono.empty())
+                .block();
+
+            Long actual = mailboxCounterDAO.countMessagesInMailbox(mailbox).block();
+            assertThat(actual).isEqualTo(1);
+        }
+    }
+
     @Test
     void updateIndexOnAddShouldIncrementMessageCount() throws Exception {
         MailboxMessage message = mock(MailboxMessage.class);


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