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 <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org