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