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 2019/12/20 07:30:55 UTC
[james-project] 11/15: JAMES-2813 event-dead-letter tasks should
use JsonSerializationVerifier
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
commit 6e748dd1ea754dbdae2a892d82164669651f0720
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Dec 18 15:26:12 2019 +0700
JAMES-2813 event-dead-letter tasks should use JsonSerializationVerifier
---
server/protocols/webadmin/webadmin-mailbox/pom.xml | 6 ++
.../service/EventDeadLettersRedeliverAllTask.java | 6 +-
.../EventDeadLettersRedeliverGroupTask.java | 6 +-
.../service/EventDeadLettersRedeliverOneTask.java | 6 +-
.../service/EventDeadLettersRedeliverTaskTest.java | 103 ++++++++-------------
5 files changed, 47 insertions(+), 80 deletions(-)
diff --git a/server/protocols/webadmin/webadmin-mailbox/pom.xml b/server/protocols/webadmin/webadmin-mailbox/pom.xml
index a44a25c..278b761 100644
--- a/server/protocols/webadmin/webadmin-mailbox/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailbox/pom.xml
@@ -101,6 +101,12 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>james-json</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>james-server-data-api</artifactId>
</dependency>
<dependency>
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTask.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTask.java
index cd38108..3b89e38 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTask.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverAllTask.java
@@ -75,11 +75,7 @@ public class EventDeadLettersRedeliverAllTask implements Task {
return Optional.of(createAdditionalInformation());
}
- public EventRetriever getEventRetriever() {
- return eventRetriever;
- }
-
- EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
+ private EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
return new EventDeadLettersRedeliveryTaskAdditionalInformationForAll(
successfulRedeliveriesCount.get(),
failedRedeliveriesCount.get(),
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTask.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTask.java
index 134d9cf..de2e8b5 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTask.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverGroupTask.java
@@ -78,15 +78,11 @@ public class EventDeadLettersRedeliverGroupTask implements Task {
return Optional.of(createAdditionalInformation());
}
- public EventRetriever getEventRetriever() {
- return eventRetriever;
- }
-
public Group getGroup() {
return group;
}
- EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
+ private EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
return new EventDeadLettersRedeliveryTaskAdditionalInformationForGroup(
successfulRedeliveriesCount.get(),
failedRedeliveriesCount.get(),
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTask.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTask.java
index 5b3407e..06a4b6d 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTask.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverOneTask.java
@@ -80,10 +80,6 @@ public class EventDeadLettersRedeliverOneTask implements Task {
return Optional.of(createAdditionalInformation());
}
- public EventRetriever getEventRetriever() {
- return eventRetriever;
- }
-
public Group getGroup() {
return group;
}
@@ -92,7 +88,7 @@ public class EventDeadLettersRedeliverOneTask implements Task {
return insertionId;
}
- EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
+ private EventDeadLettersRedeliveryTaskAdditionalInformation createAdditionalInformation() {
return new EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForOne(
successfulRedeliveriesCount.get(),
failedRedeliveriesCount.get(),
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
index 0c24d8a..7e9217e 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
@@ -19,32 +19,20 @@
package org.apache.james.webadmin.service;
-import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
-import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
-import java.io.IOException;
import java.time.Instant;
import java.util.Optional;
-import java.util.stream.Stream;
+import org.apache.james.JsonSerializationVerifier;
import org.apache.james.mailbox.events.EventDeadLetters;
import org.apache.james.mailbox.events.GenericGroup;
import org.apache.james.mailbox.events.Group;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
-import org.apache.james.task.Task;
import org.apache.james.webadmin.service.EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForAll;
import org.apache.james.webadmin.service.EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForGroup;
import org.apache.james.webadmin.service.EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForOne;
-
import org.junit.jupiter.api.BeforeAll;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import net.javacrumbs.jsonunit.assertj.JsonAssertions;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
+import org.junit.jupiter.api.Test;
class EventDeadLettersRedeliverTaskTest {
private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
@@ -58,78 +46,63 @@ class EventDeadLettersRedeliverTaskTest {
private static final EventDeadLettersRedeliverAllTask TASK_ALL = new EventDeadLettersRedeliverAllTask(SERVICE);
private static final EventDeadLettersRedeliverGroupTask TASK_GROUP = new EventDeadLettersRedeliverGroupTask(SERVICE, new GenericGroup("abc"));
private static final EventDeadLettersRedeliverOneTask TASK_ONE = new EventDeadLettersRedeliverOneTask(SERVICE, new GenericGroup("abc"), EventDeadLetters.InsertionId.of("fcbc3c92-e9a0-4ece-94ed-6e6b45045258"));
- private static final JsonTaskSerializer TESTEE = JsonTaskSerializer.of(
- EventDeadLettersRedeliverAllTaskDTO.module(SERVICE),
- EventDeadLettersRedeliverGroupTaskDTO.module(SERVICE),
- EventDeadLettersRedeliverOneTaskDTO.module(SERVICE));
-
- private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
- EventDeadLettersRedeliveryTaskAdditionalInformationForAll.MODULE,
- EventDeadLettersRedeliveryTaskAdditionalInformationForGroup.MODULE,
- EventDeadLettersRedeliveryTaskAdditionalInformationForOne.MODULE);
private static final long SUCCESSFUL_REDELIVERY_COUNT = 10L;
private static final long FAILED_REDELIVERY_COUNT = 4L;
private static Optional<Group> SOME_GROUP;
private static final Optional<EventDeadLetters.InsertionId> SOME_INSERTION_ID = Optional.of(EventDeadLetters.InsertionId.of("53db3dd9-80eb-476f-b25a-722ad364905a"));
- private static final Optional<Group> NO_GROUP = Optional.empty();
- private static final Optional<EventDeadLetters.InsertionId> NO_INSERTION_ID = Optional.empty();
@BeforeAll
static void setUp() throws Exception {
SOME_GROUP = Optional.of(Group.deserialize("org.apache.james.mailbox.events.GenericGroup-foo"));
}
- static Stream<Arguments> tasks() {
- return Stream.of(
- Arguments.of(SERIALIZED_ALL, TASK_ALL),
- Arguments.of(SERIALIZED_GROUP, TASK_GROUP),
- Arguments.of(SERIALIZED_ONE, TASK_ONE)
- );
+ @Test
+ void redeliverAllTaskShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliverAllTaskDTO.module(SERVICE))
+ .bean(TASK_ALL)
+ .json(SERIALIZED_ALL)
+ .verify();
}
- @ParameterizedTest
- @MethodSource("tasks")
- void taskShouldBeSerializable(String serializedTask, Task task) throws JsonProcessingException {
- JsonAssertions.assertThatJson(TESTEE.serialize(task))
- .isEqualTo(serializedTask);
+ @Test
+ void redeliverGroupTaskShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliverGroupTaskDTO.module(SERVICE))
+ .bean(TASK_GROUP)
+ .json(SERIALIZED_GROUP)
+ .verify();
}
- @ParameterizedTest
- @MethodSource("tasks")
- void taskShouldBeDeserializable(String serializedTask, Task task) throws IOException {
- assertThat(TESTEE.deserialize(serializedTask))
- .isEqualToComparingFieldByFieldRecursively(task);
+ @Test
+ void redeliverOneTaskShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliverOneTaskDTO.module(SERVICE))
+ .bean(TASK_ONE)
+ .json(SERIALIZED_ONE)
+ .verify();
}
- static Stream<Arguments> additionalInformation() {
- return Stream.of(
- Arguments.of(
- new EventDeadLettersRedeliveryTaskAdditionalInformationForAll(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, TIMESTAMP),
- SERIALIZED_TASK_ADDITIONAL_INFORMATION_ALL,
- "eventDeadLettersRedeliverAllTask"),
- Arguments.of(
- new EventDeadLettersRedeliveryTaskAdditionalInformationForGroup(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, SOME_GROUP, TIMESTAMP),
- SERIALIZED_TASK_ADDITIONAL_INFORMATION_GROUP,
- "eventDeadLettersRedeliverGroupTask"),
- Arguments.of(
- new EventDeadLettersRedeliveryTaskAdditionalInformationForOne(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, SOME_GROUP, SOME_INSERTION_ID, TIMESTAMP),
- SERIALIZED_TASK_ADDITIONAL_INFORMATION_ONE,
- "eventDeadLettersRedeliverOneTask")
- );
+ @Test
+ void redeliverAllAdditionalInformationShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliveryTaskAdditionalInformationForAll.MODULE)
+ .bean(new EventDeadLettersRedeliveryTaskAdditionalInformationForAll(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, TIMESTAMP))
+ .json(SERIALIZED_TASK_ADDITIONAL_INFORMATION_ALL)
+ .verify();
}
- @ParameterizedTest
- @MethodSource("additionalInformation")
- void additionalInformationShouldBeSerializable(EventDeadLettersRedeliveryTaskAdditionalInformation details, String serializedTaskAdditionalInformation) throws JsonProcessingException {
- assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(serializedTaskAdditionalInformation);
+ @Test
+ void redeliverGroupAdditionalInformationShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliveryTaskAdditionalInformationForGroup.MODULE)
+ .bean(new EventDeadLettersRedeliveryTaskAdditionalInformationForGroup(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, SOME_GROUP, TIMESTAMP))
+ .json(SERIALIZED_TASK_ADDITIONAL_INFORMATION_GROUP)
+ .verify();
}
- @ParameterizedTest
- @MethodSource("additionalInformation")
- void additionalInformationShouldBeDeserializable(EventDeadLettersRedeliveryTaskAdditionalInformation details, String serializedTaskAdditionalInformation, String type) throws IOException {
- assertThat(jsonAdditionalInformationSerializer.deserialize(serializedTaskAdditionalInformation))
- .isEqualToComparingFieldByField(details);
+ @Test
+ void redeliverOneAdditionalInformationShouldMatchJsonSerializationContract() throws Exception {
+ JsonSerializationVerifier.dtoModule(EventDeadLettersRedeliveryTaskAdditionalInformationForOne.MODULE)
+ .bean(new EventDeadLettersRedeliveryTaskAdditionalInformationForOne(SUCCESSFUL_REDELIVERY_COUNT, FAILED_REDELIVERY_COUNT, SOME_GROUP, SOME_INSERTION_ID, TIMESTAMP))
+ .json(SERIALIZED_TASK_ADDITIONAL_INFORMATION_ONE)
+ .verify();
}
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org