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/07/31 09:24:30 UTC
[james-project] 09/28: JAMES-3350 Decrease backoff for
RabbitMQEventBusTest
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 0c57b6987178bcdbe745272527f35f20ab91b3a6
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jul 27 11:41:17 2020 +0700
JAMES-3350 Decrease backoff for RabbitMQEventBusTest
Use lower backoff values for testing instead of production ones
---
.../james/mailbox/events/ErrorHandlingContract.java | 21 ++++++++++-----------
.../james/mailbox/events/EventBusContract.java | 8 ++++++--
.../james/mailbox/events/EventBusTestFixture.java | 5 ++---
.../james/mailbox/events/RabbitMQEventBusTest.java | 2 +-
4 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
index b598ac1..96642cb 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
@@ -65,6 +65,10 @@ interface ErrorHandlingContract extends EventBusContract {
timeElapsed.add(Instant.now());
throw new RuntimeException("throw to trigger reactor retry");
}
+
+ public int executionCount() {
+ return timeElapsed.size();
+ }
}
EventDeadLetters deadLetter();
@@ -114,11 +118,6 @@ interface ErrorHandlingContract extends EventBusContract {
doThrow(new RuntimeException())
.doThrow(new RuntimeException())
.doThrow(new RuntimeException())
- .doThrow(new RuntimeException())
- .doThrow(new RuntimeException())
- .doThrow(new RuntimeException())
- .doThrow(new RuntimeException())
- .doThrow(new RuntimeException())
.doCallRealMethod()
.when(eventCollector).event(EVENT);
@@ -161,12 +160,12 @@ interface ErrorHandlingContract extends EventBusContract {
eventBus().register(throwingListener, GROUP_A);
eventBus().dispatch(EVENT, NO_KEYS).block();
- Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
- int numberOfCallsAfterExceedMaxRetries = throwingListener.timeElapsed.size();
- Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
+ getSpeedProfile().shortWaitCondition()
+ .untilAsserted(() -> assertThat(throwingListener.executionCount()).isEqualTo(4));
+ Thread.sleep(getSpeedProfile().getShortWaitTime().toMillis());
- assertThat(throwingListener.timeElapsed.size())
- .isEqualTo(numberOfCallsAfterExceedMaxRetries);
+ assertThat(throwingListener.executionCount())
+ .isEqualTo(4);
}
@Test
@@ -176,7 +175,7 @@ interface ErrorHandlingContract extends EventBusContract {
eventBus().register(throwingListener, GROUP_A);
eventBus().dispatch(EVENT, NO_KEYS).block();
- Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
+ Thread.sleep(getSpeedProfile().getShortWaitTime().toMillis());
SoftAssertions.assertSoftly(softly -> {
List<Instant> timeElapsed = throwingListener.timeElapsed;
softly.assertThat(timeElapsed).hasSize(RETRY_BACKOFF_CONFIGURATION.getMaxRetries() + 1);
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
index 055eea3..e21644f 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
@@ -49,11 +49,15 @@ public interface EventBusContract {
}
public ConditionFactory shortWaitCondition() {
- return await().timeout(new org.awaitility.Duration(this.getShortWaitTime().toMillis(), TimeUnit.MILLISECONDS));
+ return await().pollDelay(org.awaitility.Duration.ZERO)
+ .pollInterval(org.awaitility.Duration.ONE_HUNDRED_MILLISECONDS)
+ .timeout(new org.awaitility.Duration(this.getShortWaitTime().toMillis(), TimeUnit.MILLISECONDS));
}
public ConditionFactory longWaitCondition() {
- return await().timeout(new org.awaitility.Duration(this.getLongWaitTime().toMillis(), TimeUnit.MILLISECONDS));
+ return await().pollDelay(org.awaitility.Duration.ZERO)
+ .pollInterval(org.awaitility.Duration.ONE_HUNDRED_MILLISECONDS)
+ .timeout(new org.awaitility.Duration(this.getLongWaitTime().toMillis(), TimeUnit.MILLISECONDS));
}
}
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
index 440ba39..b0bd987 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
@@ -20,7 +20,6 @@
package org.apache.james.mailbox.events;
import static org.apache.james.mailbox.events.RetryBackoffConfiguration.DEFAULT_JITTER_FACTOR;
-import static org.apache.james.mailbox.events.RetryBackoffConfiguration.DEFAULT_MAX_RETRIES;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -115,10 +114,10 @@ public interface EventBusTestFixture {
GroupC GROUP_C = new GroupC();
List<Group> ALL_GROUPS = ImmutableList.of(GROUP_A, GROUP_B, GROUP_C);
- java.time.Duration DEFAULT_FIRST_BACKOFF = java.time.Duration.ofMillis(20);
+ java.time.Duration DEFAULT_FIRST_BACKOFF = java.time.Duration.ofMillis(5);
//Retry backoff configuration for testing with a shorter first backoff to accommodate the shorter retry interval in tests
RetryBackoffConfiguration RETRY_BACKOFF_CONFIGURATION = RetryBackoffConfiguration.builder()
- .maxRetries(DEFAULT_MAX_RETRIES)
+ .maxRetries(3)
.firstBackoff(DEFAULT_FIRST_BACKOFF)
.jitterFactor(DEFAULT_JITTER_FACTOR)
.build();
diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index 1fab4cc..feb188e 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -153,7 +153,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
}
private RabbitMQEventBus newEventBus(Sender sender, ReceiverProvider receiverProvider) {
- return new RabbitMQEventBus(sender, receiverProvider, eventSerializer, RetryBackoffConfiguration.DEFAULT, routingKeyConverter, memoryEventDeadLetters, new RecordingMetricFactory());
+ return new RabbitMQEventBus(sender, receiverProvider, eventSerializer, EventBusTestFixture.RETRY_BACKOFF_CONFIGURATION, routingKeyConverter, memoryEventDeadLetters, new RecordingMetricFactory());
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org