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 rc...@apache.org on 2020/02/24 09:04:55 UTC
[james-project] branch master updated: [Refactoring] changing
EventDeadLetter::store
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new a26903c [Refactoring] changing EventDeadLetter::store
a26903c is described below
commit a26903cb0bfedeee5ca9d5cc6ab97cce268fa693
Author: duc91 <du...@gmail.com>
AuthorDate: Thu Feb 13 15:52:14 2020 +0700
[Refactoring] changing EventDeadLetter::store
That way we ensure InsertionId unicity, disable (untested) upserts, and prevent bugs from happening
---
.../james/mailbox/events/EventDeadLetters.java | 6 +-
.../mailbox/events/EventDeadLettersContract.java | 103 ++++++--------
.../mailbox/events/CassandraEventDeadLetters.java | 7 +-
.../mailbox/events/MemoryEventDeadLetters.java | 6 +-
.../mailbox/events/delivery/EventDelivery.java | 2 +-
.../james/mailbox/events/GroupConsumerRetry.java | 4 +-
...dminServerTaskSerializationIntegrationTest.java | 46 +++----
.../routes/EventDeadLettersRoutesTest.java | 149 ++++++++++++---------
8 files changed, 161 insertions(+), 162 deletions(-)
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLetters.java b/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLetters.java
index 89e373e..0e1c805 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLetters.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/events/EventDeadLetters.java
@@ -75,6 +75,10 @@ public interface EventDeadLetters {
.add("id", id)
.toString();
}
+
+ public String asString() {
+ return id.toString();
+ }
}
@@ -82,7 +86,7 @@ public interface EventDeadLetters {
String FAIL_DELIVERED_EVENT_CANNOT_BE_NULL = "failDeliveredEvent cannot be null";
String FAIL_DELIVERED_ID_INSERTION_CANNOT_BE_NULL = "failDeliveredInsertionId cannot be null";
- Mono<Void> store(Group registeredGroup, Event failDeliveredEvent, InsertionId insertionId);
+ Mono<InsertionId> store(Group registeredGroup, Event failDeliveredEvent);
Mono<Void> remove(Group registeredGroup, InsertionId failDeliveredInsertionId);
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
index d218e8e..74cc2f2 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventDeadLettersContract.java
@@ -138,7 +138,7 @@ interface EventDeadLettersContract {
default void storeShouldThrowWhenNullGroup() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- assertThatThrownBy(() -> eventDeadLetters.store(NULL_GROUP, EVENT_1, INSERTION_ID_1))
+ assertThatThrownBy(() -> eventDeadLetters.store(NULL_GROUP, EVENT_1))
.isInstanceOf(IllegalArgumentException.class);
}
@@ -146,15 +146,7 @@ interface EventDeadLettersContract {
default void storeShouldThrowWhenNullEvent() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- assertThatThrownBy(() -> eventDeadLetters.store(GROUP_A, NULL_EVENT, INSERTION_ID_1))
- .isInstanceOf(IllegalArgumentException.class);
- }
-
- @Test
- default void storeShouldThrowWhenNullInsertionId() {
- EventDeadLetters eventDeadLetters = eventDeadLetters();
-
- assertThatThrownBy(() -> eventDeadLetters.store(GROUP_A, EVENT_1, NULL_INSERTION_ID))
+ assertThatThrownBy(() -> eventDeadLetters.store(GROUP_A, NULL_EVENT))
.isInstanceOf(IllegalArgumentException.class);
}
@@ -162,7 +154,7 @@ interface EventDeadLettersContract {
default void storeShouldThrowWhenBothGroupAndEventAndInsertionIdAreNull() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- assertThatThrownBy(() -> eventDeadLetters.store(NULL_GROUP, NULL_EVENT, NULL_INSERTION_ID))
+ assertThatThrownBy(() -> eventDeadLetters.store(NULL_GROUP, NULL_EVENT))
.isInstanceOf(IllegalArgumentException.class);
}
@@ -170,23 +162,12 @@ interface EventDeadLettersContract {
default void storeShouldStoreGroupWithCorrespondingEvent() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- assertThat(eventDeadLetters.failedEvent(GROUP_A, INSERTION_ID_1).block())
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ assertThat(eventDeadLetters.failedEvent(GROUP_A, insertionId).block())
.isEqualTo(EVENT_1);
}
@Test
- default void storeShouldStoreDuplicatedEventsPerGroupWhenStoreWithDifferentInsertionId() {
- EventDeadLetters eventDeadLetters = eventDeadLetters();
-
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_2).block();
-
- assertThat(eventDeadLetters.failedIds(GROUP_A).toStream())
- .containsOnly(INSERTION_ID_1, INSERTION_ID_2);
- }
-
- @Test
default void storeShouldKeepConsistencyWhenConcurrentStore() throws Exception {
EventDeadLetters eventDeadLetters = eventDeadLetters();
@@ -196,9 +177,8 @@ interface EventDeadLettersContract {
ConcurrentTestRunner.builder()
.operation((threadNumber, step) -> {
Event.EventId eventId = Event.EventId.random();
- EventDeadLetters.InsertionId insertionId = EventDeadLetters.InsertionId.random();
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(groups.get(threadNumber), event(eventId)).block();
storedInsertionIds.put(threadNumber, insertionId);
- eventDeadLetters.store(groups.get(threadNumber), event(eventId), insertionId).block();
})
.threadCount(THREAD_COUNT)
.operationCount(OPERATION_COUNT)
@@ -242,8 +222,8 @@ interface EventDeadLettersContract {
default void removeShouldRemoveMatched() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_2).block();
eventDeadLetters.remove(GROUP_A, INSERTION_ID_1).block();
@@ -255,21 +235,21 @@ interface EventDeadLettersContract {
default void removeShouldKeepNonMatched() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
- eventDeadLetters.store(GROUP_A, EVENT_3, INSERTION_ID_3).block();
+ EventDeadLetters.InsertionId insertionId1 = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ EventDeadLetters.InsertionId insertionId2 = eventDeadLetters.store(GROUP_A, EVENT_2).block();
+ EventDeadLetters.InsertionId insertionId3 = eventDeadLetters.store(GROUP_A, EVENT_3).block();
- eventDeadLetters.remove(GROUP_A, INSERTION_ID_1).block();
+ eventDeadLetters.remove(GROUP_A, insertionId1).block();
assertThat(eventDeadLetters.failedIds(GROUP_A).toStream())
- .containsOnly(INSERTION_ID_2, INSERTION_ID_3);
+ .containsOnly(insertionId2, insertionId3);
}
@Test
default void removeShouldNotThrowWhenNoInsertionIdMatched() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
assertThatCode(() -> eventDeadLetters.remove(GROUP_A, INSERTION_ID_2).block())
.doesNotThrowAnyException();
@@ -279,7 +259,7 @@ interface EventDeadLettersContract {
default void removeShouldNotThrowWhenNoGroupMatched() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
assertThatCode(() -> eventDeadLetters.remove(GROUP_B, INSERTION_ID_1).block())
.doesNotThrowAnyException();
@@ -296,9 +276,8 @@ interface EventDeadLettersContract {
.operation((threadNumber, step) -> {
int operationIndex = threadNumber * OPERATION_COUNT + step;
Event.EventId eventId = Event.EventId.random();
- EventDeadLetters.InsertionId insertionId = EventDeadLetters.InsertionId.random();
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(groups.get(threadNumber), event(eventId)).block();
storedInsertionIds.put(operationIndex, insertionId);
- eventDeadLetters.store(groups.get(threadNumber), event(eventId), insertionId).block();
})
.threadCount(THREAD_COUNT)
.operationCount(OPERATION_COUNT)
@@ -349,8 +328,8 @@ interface EventDeadLettersContract {
default void failedEventShouldReturnEmptyWhenNotFound() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_2).block();
assertThat(eventDeadLetters.failedEvent(GROUP_A, INSERTION_ID_3).block())
.isNull();
@@ -360,10 +339,10 @@ interface EventDeadLettersContract {
default void failedEventShouldReturnEventWhenContains() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_2).block();
- assertThat(eventDeadLetters.failedEvent(GROUP_A, INSERTION_ID_1).block())
+ assertThat(eventDeadLetters.failedEvent(GROUP_A, insertionId).block())
.isEqualTo(EVENT_1);
}
@@ -371,23 +350,23 @@ interface EventDeadLettersContract {
default void failedEventShouldNotRemoveEvent() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
- eventDeadLetters.store(GROUP_A, EVENT_3, INSERTION_ID_3).block();
+ EventDeadLetters.InsertionId insertionId1 = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ EventDeadLetters.InsertionId insertionId2 = eventDeadLetters.store(GROUP_A, EVENT_2).block();
+ EventDeadLetters.InsertionId insertionId3 = eventDeadLetters.store(GROUP_A, EVENT_3).block();
- eventDeadLetters.failedEvent(GROUP_A, INSERTION_ID_1).block();
+ eventDeadLetters.failedEvent(GROUP_A, insertionId1).block();
assertThat(allInsertionIds())
- .containsOnly(INSERTION_ID_1, INSERTION_ID_2, INSERTION_ID_3);
+ .containsOnly(insertionId1, insertionId2, insertionId3);
}
@Test
default void failedEventShouldNotThrowWhenNoGroupMatched() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(GROUP_A, EVENT_1).block();
- assertThatCode(() -> eventDeadLetters.failedEvent(GROUP_B, INSERTION_ID_1).block())
+ assertThatCode(() -> eventDeadLetters.failedEvent(GROUP_B, insertionId).block())
.doesNotThrowAnyException();
}
}
@@ -406,9 +385,9 @@ interface EventDeadLettersContract {
default void failedEventsByGroupShouldReturnEmptyWhenNonMatch() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
- eventDeadLetters.store(GROUP_A, EVENT_3, INSERTION_ID_3).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_A, EVENT_2).block();
+ eventDeadLetters.store(GROUP_A, EVENT_3).block();
assertThat(eventDeadLetters.failedIds(GROUP_B).toStream())
.isEmpty();
@@ -418,26 +397,26 @@ interface EventDeadLettersContract {
default void failedEventsByGroupShouldReturnAllEventsCorrespondingToGivenGroup() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
- eventDeadLetters.store(GROUP_B, EVENT_3, INSERTION_ID_3).block();
+ EventDeadLetters.InsertionId insertionId = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_B, EVENT_2).block();
+ eventDeadLetters.store(GROUP_B, EVENT_3).block();
assertThat(eventDeadLetters.failedIds(GROUP_A).toStream())
- .containsOnly(INSERTION_ID_1, INSERTION_ID_2);
+ .containsOnly(insertionId);
}
@Test
default void failedEventsByGroupShouldNotRemoveEvents() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_A, EVENT_2, INSERTION_ID_2).block();
- eventDeadLetters.store(GROUP_B, EVENT_3, INSERTION_ID_3).block();
+ EventDeadLetters.InsertionId insertionId1 = eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ EventDeadLetters.InsertionId insertionId2 = eventDeadLetters.store(GROUP_A, EVENT_2).block();
+ EventDeadLetters.InsertionId insertionId3 = eventDeadLetters.store(GROUP_B, EVENT_3).block();
eventDeadLetters.failedIds(GROUP_A).toStream();
assertThat(allInsertionIds())
- .containsOnly(INSERTION_ID_1, INSERTION_ID_2, INSERTION_ID_3);
+ .containsOnly(insertionId1, insertionId2, insertionId3);
}
}
@@ -445,8 +424,8 @@ interface EventDeadLettersContract {
@Test
default void groupsWithFailedEventsShouldReturnAllStoredGroups() {
EventDeadLetters eventDeadLetters = eventDeadLetters();
- eventDeadLetters.store(GROUP_A, EVENT_1, INSERTION_ID_1).block();
- eventDeadLetters.store(GROUP_B, EVENT_1, INSERTION_ID_2).block();
+ eventDeadLetters.store(GROUP_A, EVENT_1).block();
+ eventDeadLetters.store(GROUP_B, EVENT_1).block();
assertThat(eventDeadLetters.groupsWithFailedEvents().collectList().block())
.containsOnly(GROUP_A, GROUP_B);
diff --git a/mailbox/event/event-cassandra/src/main/java/org/apache/james/mailbox/events/CassandraEventDeadLetters.java b/mailbox/event/event-cassandra/src/main/java/org/apache/james/mailbox/events/CassandraEventDeadLetters.java
index 7bafea5..920168c 100644
--- a/mailbox/event/event-cassandra/src/main/java/org/apache/james/mailbox/events/CassandraEventDeadLetters.java
+++ b/mailbox/event/event-cassandra/src/main/java/org/apache/james/mailbox/events/CassandraEventDeadLetters.java
@@ -39,13 +39,14 @@ public class CassandraEventDeadLetters implements EventDeadLetters {
}
@Override
- public Mono<Void> store(Group registeredGroup, Event failDeliveredEvent, InsertionId insertionId) {
+ public Mono<InsertionId> store(Group registeredGroup, Event failDeliveredEvent) {
Preconditions.checkArgument(registeredGroup != null, REGISTERED_GROUP_CANNOT_BE_NULL);
Preconditions.checkArgument(failDeliveredEvent != null, FAIL_DELIVERED_EVENT_CANNOT_BE_NULL);
- Preconditions.checkArgument(insertionId != null, FAIL_DELIVERED_ID_INSERTION_CANNOT_BE_NULL);
+ InsertionId insertionId = InsertionId.random();
return cassandraEventDeadLettersDAO.store(registeredGroup, failDeliveredEvent, insertionId)
- .then(cassandraEventDeadLettersGroupDAO.storeGroup(registeredGroup));
+ .then(cassandraEventDeadLettersGroupDAO.storeGroup(registeredGroup))
+ .thenReturn(insertionId);
}
@Override
diff --git a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
index 40d8f86..3c8f423 100644
--- a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
+++ b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/MemoryEventDeadLetters.java
@@ -36,14 +36,14 @@ public class MemoryEventDeadLetters implements EventDeadLetters {
}
@Override
- public Mono<Void> store(Group registeredGroup, Event failDeliveredEvent, InsertionId insertionId) {
+ public Mono<InsertionId> store(Group registeredGroup, Event failDeliveredEvent) {
Preconditions.checkArgument(registeredGroup != null, REGISTERED_GROUP_CANNOT_BE_NULL);
Preconditions.checkArgument(failDeliveredEvent != null, FAIL_DELIVERED_EVENT_CANNOT_BE_NULL);
- Preconditions.checkArgument(insertionId != null, FAIL_DELIVERED_ID_INSERTION_CANNOT_BE_NULL);
+ InsertionId insertionId = InsertionId.random();
synchronized (deadLetters) {
deadLetters.put(registeredGroup, insertionId, failDeliveredEvent);
- return Mono.empty();
+ return Mono.just(insertionId);
}
}
diff --git a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/delivery/EventDelivery.java b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/delivery/EventDelivery.java
index f32d33a..af7fa00 100644
--- a/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/delivery/EventDelivery.java
+++ b/mailbox/event/event-memory/src/main/java/org/apache/james/mailbox/events/delivery/EventDelivery.java
@@ -121,7 +121,7 @@ public interface EventDelivery {
@Override
public Mono<Void> handle(Event event) {
- return eventDeadLetters.store(group, event, EventDeadLetters.InsertionId.random());
+ return eventDeadLetters.store(group, event).then();
}
}
diff --git a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
index bf1145a..f1933ad 100644
--- a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
+++ b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/GroupConsumerRetry.java
@@ -105,7 +105,7 @@ class GroupConsumerRetry {
Mono<Void> retryOrStoreToDeadLetter(Event event, int currentRetryCount) {
if (currentRetryCount >= retryBackoff.getMaxRetries()) {
- return eventDeadLetters.store(group, event, EventDeadLetters.InsertionId.random());
+ return eventDeadLetters.store(group, event).then();
}
return sendRetryMessage(event, currentRetryCount);
}
@@ -124,7 +124,7 @@ class GroupConsumerRetry {
return sender.send(retryMessage)
.doOnError(throwable -> createStructuredLogger(event)
.log(logger -> logger.error("Exception happens when publishing event to retry exchange, this event will be stored in deadLetter", throwable)))
- .onErrorResume(e -> eventDeadLetters.store(group, event, EventDeadLetters.InsertionId.random()));
+ .onErrorResume(e -> eventDeadLetters.store(group, event).then());
}
private StructuredLogger createStructuredLogger(Event event) {
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
index 3d587fc..af117df 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
@@ -82,6 +82,7 @@ import org.apache.james.webadmin.routes.MailRepositoriesRoutes;
import org.apache.james.webadmin.routes.TasksRoutes;
import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultRoutes;
import org.apache.mailet.base.test.FakeMail;
+import org.assertj.core.api.Assertions;
import org.eclipse.jetty.http.HttpStatus;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach;
@@ -461,22 +462,14 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
@Test
void eventDeadLettersRedeliverShouldCreateATask(GuiceJamesServer guiceJamesServer) {
- String uuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b4";
- String insertionUuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b7";
Group group = new GenericGroup("a");
- EventDeadLetters.InsertionId insertionId = EventDeadLetters.InsertionId.of(insertionUuid);
- MailboxListener.MailboxAdded event = EventFactory.mailboxAdded()
- .eventId(Event.EventId.of(uuid))
- .user(Username.of(USERNAME))
- .sessionId(MailboxSession.SessionId.of(452))
- .mailboxId(InMemoryId.of(453))
- .mailboxPath(MailboxPath.forUser(Username.of(USERNAME), "Important-mailbox"))
- .build();
+
+ MailboxListener.MailboxAdded event = createMailboxAdded();
guiceJamesServer
.getProbe(EventDeadLettersProbe.class)
.getEventDeadLetters()
- .store(group, event, insertionId)
+ .store(group, event)
.block();
String taskId = with()
@@ -503,27 +496,19 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
@Test
void postRedeliverSingleEventShouldCreateATask(GuiceJamesServer guiceJamesServer) {
- String uuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b4";
- String insertionUuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b7";
Group group = new GenericGroup("a");
- EventDeadLetters.InsertionId insertionId = EventDeadLetters.InsertionId.of(insertionUuid);
- MailboxListener.MailboxAdded event = EventFactory.mailboxAdded()
- .eventId(Event.EventId.of(uuid))
- .user(Username.of(USERNAME))
- .sessionId(MailboxSession.SessionId.of(452))
- .mailboxId(InMemoryId.of(453))
- .mailboxPath(MailboxPath.forUser(Username.of(USERNAME), "Important-mailbox"))
- .build();
- guiceJamesServer
+ MailboxListener.MailboxAdded event = createMailboxAdded();
+
+ EventDeadLetters.InsertionId insertionId = guiceJamesServer
.getProbe(EventDeadLettersProbe.class)
.getEventDeadLetters()
- .store(group, event, insertionId)
+ .store(group, event)
.block();
String taskId = with()
.queryParam("action", "reDeliver")
- .post("/events/deadLetter/groups/" + group.asString() + "/" + insertionUuid)
+ .post("/events/deadLetter/groups/" + group.asString() + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.CREATED_201)
.extract()
@@ -541,7 +526,7 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
.body("additionalInformation.successfulRedeliveriesCount", is(0))
.body("additionalInformation.failedRedeliveriesCount", is(0))
.body("additionalInformation.group", is(group.asString()))
- .body("additionalInformation.insertionId", is(insertionId.getId().toString()));
+ .body("additionalInformation.insertionId", is(insertionId.asString()));
}
@Test
@@ -753,4 +738,15 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
.body("additionalInformation.successfulMappingsCount", is(0))
.body("additionalInformation.errorMappingsCount", is(0));
}
+
+ private MailboxListener.MailboxAdded createMailboxAdded() {
+ String uuid = "6e0dd59d-660e-4d9b-b22f-0354479f47b4";
+ return EventFactory.mailboxAdded()
+ .eventId(Event.EventId.of(uuid))
+ .user(Username.of(USERNAME))
+ .sessionId(MailboxSession.SessionId.of(452))
+ .mailboxId(InMemoryId.of(453))
+ .mailboxPath(MailboxPath.forUser(Username.of(USERNAME), "Important-mailbox"))
+ .build();
+ }
}
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
index a3a7a1e..f5b0c4f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/EventDeadLettersRoutesTest.java
@@ -23,6 +23,7 @@ import static io.restassured.RestAssured.given;
import static io.restassured.RestAssured.when;
import static io.restassured.RestAssured.with;
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
+import static org.apache.james.mailbox.events.EventDeadLetters.InsertionId;
import static org.assertj.core.api.Java6Assertions.assertThat;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasSize;
@@ -76,11 +77,6 @@ class EventDeadLettersRoutesTest {
private static final String UUID_1 = "6e0dd59d-660e-4d9b-b22f-0354479f47b4";
private static final String UUID_2 = "6e0dd59d-660e-4d9b-b22f-0354479f47b5";
private static final String INSERTION_UUID_1 = "6e0dd59d-660e-4d9b-b22f-0354479f47b7";
- private static final String INSERTION_UUID_2 = "6e0dd59d-660e-4d9b-b22f-0354479f47b8";
- private static final String INSERTION_UUID_3 = "6e0dd59d-660e-4d9b-b22f-0354479f47b9";
- private static final EventDeadLetters.InsertionId INSERTION_ID_1 = EventDeadLetters.InsertionId.of(INSERTION_UUID_1);
- private static final EventDeadLetters.InsertionId INSERTION_ID_2 = EventDeadLetters.InsertionId.of(INSERTION_UUID_2);
- private static final EventDeadLetters.InsertionId INSERTION_ID_3 = EventDeadLetters.InsertionId.of(INSERTION_UUID_3);
private static final MailboxListener.MailboxAdded EVENT_1 = EventFactory.mailboxAdded()
.eventId(Event.EventId.of(UUID_1))
.user(BOB)
@@ -154,7 +150,7 @@ class EventDeadLettersRoutesTest {
@Test
void getGroupsShouldReturnGroupsOfContainedEvents() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
when()
.get("/events/deadLetter/groups")
@@ -166,8 +162,8 @@ class EventDeadLettersRoutesTest {
@Test
void getGroupsShouldReturnGroupsOfContainedEventsWithoutDuplicates() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2, INSERTION_ID_2).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2).block();
when()
.get("/events/deadLetter/groups")
@@ -179,8 +175,8 @@ class EventDeadLettersRoutesTest {
@Test
void getGroupsShouldReturnGroupsOfAllContainedEvents() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2, INSERTION_ID_2).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2).block();
when()
.get("/events/deadLetter/groups")
@@ -217,40 +213,47 @@ class EventDeadLettersRoutesTest {
@Test
void listEventsShouldReturnContainedEvents() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
when()
.get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(ContentType.JSON)
- .body(".", containsInAnyOrder(INSERTION_UUID_1));
+ .body(".", containsInAnyOrder(insertionId.asString()));
}
@Test
void listEventsShouldNotReturnEventsOfOtherGroups() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2, INSERTION_ID_2).block();
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupB(), EVENT_2).block();
+ assertThat(insertionId).isNotNull();
+
when()
.get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(ContentType.JSON)
- .body(".", containsInAnyOrder(INSERTION_UUID_1));
+ .body(".", containsInAnyOrder(insertionId.asString()));
}
@Test
void listEventsShouldReturnAllEvents() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2, INSERTION_ID_2).block();
+ InsertionId insertionId1 = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ InsertionId insertionId2 = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_2).block();
+ assertThat(insertionId1).isNotNull();
+ assertThat(insertionId2).isNotNull();
+
when()
.get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
.then()
.statusCode(HttpStatus.OK_200)
.contentType(ContentType.JSON)
- .body(".", containsInAnyOrder(INSERTION_UUID_1, INSERTION_UUID_2));
+ .body(".", containsInAnyOrder(insertionId1.asString(), insertionId2.asString()));
}
}
@@ -258,10 +261,12 @@ class EventDeadLettersRoutesTest {
class GetEvent {
@Test
void getEventShouldReturnEvent() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
String response = when()
- .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.OK_200)
.contentType(ContentType.JSON)
@@ -308,10 +313,12 @@ class EventDeadLettersRoutesTest {
class Delete {
@Test
void deleteShouldReturnOk() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
when()
- .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.NO_CONTENT_204);
}
@@ -350,13 +357,15 @@ class EventDeadLettersRoutesTest {
@Test
void deleteShouldRemoveEvent() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
with()
- .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1);
+ .delete("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString());
when()
- .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.NOT_FOUND_404);
}
@@ -393,7 +402,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldHaveSuccessfulCompletedTask() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -420,8 +429,10 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldRemoveEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(groupA, EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
String taskId = with()
.queryParam("action", EVENTS_ACTION)
.post("/events/deadLetter")
@@ -438,14 +449,14 @@ class EventDeadLettersRoutesTest {
.body("additionalInformation.failedRedeliveriesCount", is(0));
when()
- .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.NOT_FOUND_404);
}
@Test
void postRedeliverAllEventsShouldRedeliverEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -467,9 +478,9 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldRemoveAllEventsFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
- deadLetters.store(groupB, EVENT_2, INSERTION_ID_3).block();
+ deadLetters.store(groupA, EVENT_1).block();
+ deadLetters.store(groupA, EVENT_2).block();
+ deadLetters.store(groupB, EVENT_2).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -496,9 +507,9 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldRedeliverAllEventsFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
- deadLetters.store(groupB, EVENT_2, INSERTION_ID_3).block();
+ deadLetters.store(groupA, EVENT_1).block();
+ deadLetters.store(groupA, EVENT_2).block();
+ deadLetters.store(groupB, EVENT_2).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -521,7 +532,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldFailWhenInvalidAction() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
given()
.queryParam("action", "invalid-action")
@@ -538,7 +549,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverAllEventsShouldFailWhenMissingAction() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
when()
.post("/events/deadLetter")
@@ -566,7 +577,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldCreateATask() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
given()
.queryParam("action", EVENTS_ACTION)
@@ -580,7 +591,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldHaveSuccessfulCompletedTask() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -607,7 +618,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldRemoveEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -633,7 +644,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldRedeliverEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -656,8 +667,8 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldRemoveAllGroupEventsFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
+ deadLetters.store(groupA, EVENT_1).block();
+ deadLetters.store(groupA, EVENT_2).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -685,8 +696,8 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldRedeliverAllGroupEventsFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
- deadLetters.store(groupA, EVENT_2, INSERTION_ID_2).block();
+ deadLetters.store(groupA, EVENT_1).block();
+ deadLetters.store(groupA, EVENT_2).block();
String taskId = with()
.queryParam("action", EVENTS_ACTION)
@@ -709,7 +720,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldFailWhenInvalidAction() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
given()
.queryParam("action", "invalid-action")
@@ -726,7 +737,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldFailWhenMissingAction() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
when()
.post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A)
@@ -755,7 +766,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverGroupEventsShouldNotRedeliverAllNotMatchedGroupEventsFromDeadLetter() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
with()
.queryParam("action", EVENTS_ACTION)
@@ -786,7 +797,7 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverSingleEventShouldCreateATask() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ deadLetters.store(groupA, EVENT_1).block();
given()
.queryParam("action", EVENTS_ACTION)
@@ -800,11 +811,13 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverSingleEventShouldHaveSuccessfulCompletedTask() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(groupA, EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
String taskId = with()
.queryParam("action", EVENTS_ACTION)
- .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.jsonPath()
.get("taskId");
@@ -818,7 +831,7 @@ class EventDeadLettersRoutesTest {
.body("additionalInformation.successfulRedeliveriesCount", is(1))
.body("additionalInformation.failedRedeliveriesCount", is(0))
.body("additionalInformation.group", is(SERIALIZED_GROUP_A))
- .body("additionalInformation.insertionId", is(INSERTION_UUID_1))
+ .body("additionalInformation.insertionId", is(insertionId.asString()))
.body("type", is(EventDeadLettersRedeliverOneTask.TYPE.asString()))
.body("startedDate", is(notNullValue()))
.body("submitDate", is(notNullValue()))
@@ -827,11 +840,13 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverSingleEventShouldRemoveEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(groupA, EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
String taskId = with()
.queryParam("action", EVENTS_ACTION)
- .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.jsonPath()
.get("taskId");
@@ -844,21 +859,23 @@ class EventDeadLettersRoutesTest {
.body("additionalInformation.successfulRedeliveriesCount", is(1))
.body("additionalInformation.failedRedeliveriesCount", is(0))
.body("additionalInformation.group", is(SERIALIZED_GROUP_A))
- .body("additionalInformation.insertionId", is(INSERTION_UUID_1));
+ .body("additionalInformation.insertionId", is(insertionId.asString()));
when()
- .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .get("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.NOT_FOUND_404);
}
@Test
void postRedeliverSingleEventShouldRedeliverEventFromDeadLetters() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
+ InsertionId insertionId = deadLetters.store(groupA, EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
String taskId = with()
.queryParam("action", EVENTS_ACTION)
- .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.jsonPath()
.get("taskId");
@@ -871,7 +888,7 @@ class EventDeadLettersRoutesTest {
.body("additionalInformation.successfulRedeliveriesCount", is(1))
.body("additionalInformation.failedRedeliveriesCount", is(0))
.body("additionalInformation.group", is(SERIALIZED_GROUP_A))
- .body("additionalInformation.insertionId", is(INSERTION_UUID_1));
+ .body("additionalInformation.insertionId", is(insertionId.asString()));
assertThat(eventCollector.getEvents()).hasSize(1);
}
@@ -888,12 +905,13 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverSingleEventShouldFailWhenInvalidAction() {
- deadLetters.store(groupA, EVENT_1, INSERTION_ID_1).block();
-
+ InsertionId insertionId = deadLetters.store(groupA, EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
given()
.queryParam("action", "invalid-action")
.when()
- .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.contentType(ContentType.JSON)
@@ -905,10 +923,11 @@ class EventDeadLettersRoutesTest {
@Test
void postRedeliverSingleEventShouldFailWhenMissingAction() {
- deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1, INSERTION_ID_1).block();
-
+ InsertionId insertionId = deadLetters.store(new EventBusTestFixture.GroupA(), EVENT_1).block();
+ assertThat(insertionId).isNotNull();
+
when()
- .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + INSERTION_UUID_1)
+ .post("/events/deadLetter/groups/" + SERIALIZED_GROUP_A + "/" + insertionId.asString())
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.contentType(ContentType.JSON)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org