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:52 UTC

[james-project] 08/15: JAMES-2813 ReIndexing 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 9103c06d1ecebcc14dab1c7624a784614ade0633
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Dec 18 15:40:40 2019 +0700

    JAMES-2813 ReIndexing tasks should use JsonSerializationVerifier
---
 mailbox/tools/indexer/pom.xml                      |  6 ++
 .../tools/indexer/MessageIdReIndexingTask.java     |  8 +--
 .../tools/indexer/SingleMessageReindexingTask.java |  4 +-
 ...rorRecoveryIndexationTaskSerializationTest.java | 71 ++++++----------------
 .../FullReindexingTaskSerializationTest.java       | 57 +++++------------
 .../MessageIdReindexingTaskSerializationTest.java  | 56 +++++------------
 ...ngleMailboxReindexingTaskSerializationTest.java | 63 +++++--------------
 ...ngleMessageReindexingTaskSerializationTest.java | 53 +++++-----------
 .../UserReindexingTaskSerializationTest.java       | 68 ++++++---------------
 9 files changed, 108 insertions(+), 278 deletions(-)

diff --git a/mailbox/tools/indexer/pom.xml b/mailbox/tools/indexer/pom.xml
index a0de783..c5ba6a2 100644
--- a/mailbox/tools/indexer/pom.xml
+++ b/mailbox/tools/indexer/pom.xml
@@ -86,6 +86,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-json</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-task-json</artifactId>
         </dependency>
         <dependency>
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java
index 15a4b82..369b7c4 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReIndexingTask.java
@@ -28,12 +28,8 @@ import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 import org.apache.james.task.TaskType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class MessageIdReIndexingTask implements Task {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MessageIdReIndexingTask.class);
-
     public static final TaskType TYPE = TaskType.of("messageId-reindexing");
 
     public static class Factory {
@@ -74,12 +70,10 @@ public class MessageIdReIndexingTask implements Task {
 
     private ReIndexerPerformer reIndexerPerformer;
     private final MessageId messageId;
-    private final AdditionalInformation additionalInformation;
 
     MessageIdReIndexingTask(ReIndexerPerformer reIndexerPerformer, MessageId messageId) {
         this.reIndexerPerformer = reIndexerPerformer;
         this.messageId = messageId;
-        this.additionalInformation = new AdditionalInformation(messageId, Clock.systemUTC().instant());
     }
 
     @Override
@@ -98,6 +92,6 @@ public class MessageIdReIndexingTask implements Task {
 
     @Override
     public Optional<TaskExecutionDetails.AdditionalInformation> details() {
-        return Optional.of(additionalInformation);
+        return Optional.of(new AdditionalInformation(messageId, Clock.systemUTC().instant()));
     }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
index 8fe131a..77ea683 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTask.java
@@ -85,14 +85,12 @@ public class SingleMessageReindexingTask implements Task {
     private final ReIndexerPerformer reIndexerPerformer;
     private final MailboxId mailboxId;
     private final MessageUid uid;
-    private final AdditionalInformation additionalInformation;
 
     @Inject
     SingleMessageReindexingTask(ReIndexerPerformer reIndexerPerformer, MailboxId mailboxId, MessageUid uid) {
         this.reIndexerPerformer = reIndexerPerformer;
         this.mailboxId = mailboxId;
         this.uid = uid;
-        this.additionalInformation = new AdditionalInformation(mailboxId, uid, Clock.systemUTC().instant());
     }
 
     @Override
@@ -120,7 +118,7 @@ public class SingleMessageReindexingTask implements Task {
 
     @Override
     public Optional<TaskExecutionDetails.AdditionalInformation> details() {
-        return Optional.of(additionalInformation);
+        return Optional.of(new AdditionalInformation(mailboxId, uid, Clock.systemUTC().instant()));
     }
 
 }
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
index d71ad03..f81af92 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
@@ -18,98 +18,63 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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.List;
 
+import org.apache.james.JsonSerializationVerifier;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.TestId;
-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.mailbox.tools.indexer.ReprocessingContextInformationDTO.ReprocessingContextInformationForErrorRecoveryIndexationTask;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.ImmutableList;
 
 class ErrorRecoveryIndexationTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
-    private final TestId.Factory mailboxIdFactory = new TestId.Factory();
-    private ReIndexerPerformer reIndexerPerformer;
-    private JsonTaskSerializer taskSerializer;
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer;
 
+    private final TestId.Factory mailboxIdFactory = new TestId.Factory();
     private final int successfullyReprocessedMailCount = 42;
     private final int failedReprocessedMailCount = 2;
-    private  ReIndexingExecutionFailures reIndexingExecutionFailures;
-
     private final String serializedErrorRecoveryReindexingTask = "{\"type\": \"error-recovery-indexation\"," +
         " \"previousFailures\" : [{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"error-recovery-indexation\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
-
+    private final String serializedAdditionalInformation = "{\"type\": \"error-recovery-indexation\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
     private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid);
-
     private final TestId mailboxId2 = TestId.of(2L);
     private final MessageUid messageUid2 = MessageUid.of(20L);
-
     private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure2 = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId2, messageUid2);
     private final List<ReIndexingExecutionFailures.ReIndexingFailure> failures = ImmutableList.of(indexingFailure, indexingFailure2);
     private final ReIndexingExecutionFailures executionFailures = new ReIndexingExecutionFailures(failures);
 
+    private ErrorRecoveryIndexationTask.Factory factory;
+    private ReIndexerPerformer reIndexerPerformer;
+
     @BeforeEach
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        ErrorRecoveryIndexationTask.Factory factory = new ErrorRecoveryIndexationTask.Factory(reIndexerPerformer, mailboxIdFactory);
-        taskSerializer = JsonTaskSerializer.of(ErrorRecoveryIndexationTaskDTO.module(factory));
-
-        jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-            ReprocessingContextInformationForErrorRecoveryIndexationTask.serializationModule(mailboxIdFactory));
-
-        reIndexingExecutionFailures = new ReIndexingExecutionFailures(ImmutableList.of(
-            new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid),
-            new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId2, messageUid2)));
-    }
-
-    @Test
-    void errorRecoveryReindexingShouldBeSerializable() throws JsonProcessingException {
-        ErrorRecoveryIndexationTask task = new ErrorRecoveryIndexationTask(reIndexerPerformer, executionFailures);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedErrorRecoveryReindexingTask);
+        factory = new ErrorRecoveryIndexationTask.Factory(reIndexerPerformer, mailboxIdFactory);
     }
 
     @Test
-    void errorRecoveryReindexingShouldBeDeserializable() throws IOException {
-        ErrorRecoveryIndexationTask task = new ErrorRecoveryIndexationTask(reIndexerPerformer, executionFailures);
-
-        Task deserializedTask = taskSerializer.deserialize(serializedErrorRecoveryReindexingTask);
-        assertThat(task instanceof ErrorRecoveryIndexationTask);
-        assertThat(deserializedTask)
-            .isEqualToComparingOnlyGivenFields(task, "reIndexerPerformer", "previousFailures");
+    void errorRecoveryReindexingShouldBeSerializable() throws Exception {
+        JsonSerializationVerifier.dtoModule(ErrorRecoveryIndexationTaskDTO.module(factory))
+            .bean(new ErrorRecoveryIndexationTask(reIndexerPerformer, executionFailures))
+            .json(serializedErrorRecoveryReindexingTask)
+            .verify();
     }
 
     @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
-        ReprocessingContextInformation details = new ReprocessingContextInformationForErrorRecoveryIndexationTask(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
+    void additionalInformationShouldBeSerializable() throws Exception {
+        ReprocessingContextInformationForErrorRecoveryIndexationTask details = new ReprocessingContextInformationForErrorRecoveryIndexationTask(successfullyReprocessedMailCount, failedReprocessedMailCount, executionFailures, TIMESTAMP);
+        JsonSerializationVerifier.dtoModule(ReprocessingContextInformationForErrorRecoveryIndexationTask.serializationModule(mailboxIdFactory))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
-
-    @Test
-    void additonalInformationShouldBeDeserializable() throws IOException {
-        ReprocessingContextInformation details = new ReprocessingContextInformationForErrorRecoveryIndexationTask(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
-    }
-
 }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
index 3d0f9c5..dce79b2 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
@@ -18,34 +18,23 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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 org.apache.james.JsonSerializationVerifier;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.TestId;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
 import org.apache.mailbox.tools.indexer.ReprocessingContextInformationDTO.ReprocessingContextInformationForFullReindexingTask;
-
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.ImmutableList;
 
 class FullReindexingTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
 
-    private ReIndexerPerformer reIndexerPerformer;
-    private JsonTaskSerializer taskSerializer;
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer;
-
     private final TestId mailboxId2 = TestId.of(2L);
     private final MessageUid messageUid2 = MessageUid.of(20L);
     private final TestId mailboxId = TestId.of(1L);
@@ -53,18 +42,16 @@ class FullReindexingTaskSerializationTest {
 
     private final int successfullyReprocessedMailCount = 42;
     private final int failedReprocessedMailCount = 2;
-    private ReIndexingExecutionFailures reIndexingExecutionFailures;
 
     private final String serializedFullReindexingTask = "{\"type\": \"full-reindexing\"}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"full-reindexing\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"full-reindexing\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+
+    private ReIndexingExecutionFailures reIndexingExecutionFailures;
+    private ReIndexerPerformer reIndexerPerformer;
 
     @BeforeEach
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        taskSerializer = JsonTaskSerializer.of(FullReindexingTask.module(reIndexerPerformer));
-
-        jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-            ReprocessingContextInformationForFullReindexingTask.serializationModule(new TestId.Factory()));
 
         reIndexingExecutionFailures = new ReIndexingExecutionFailures(ImmutableList.of(
             new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid),
@@ -72,33 +59,21 @@ class FullReindexingTaskSerializationTest {
     }
 
     @Test
-    void fullReindexingShouldBeSerializable() throws JsonProcessingException {
-        FullReindexingTask task = new FullReindexingTask(reIndexerPerformer);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedFullReindexingTask);
-    }
-
-    @Test
-    void fullReindexingShouldBeDeserializable() throws IOException {
-        FullReindexingTask task = new FullReindexingTask(reIndexerPerformer);
-
-        assertThat(taskSerializer.deserialize(serializedFullReindexingTask))
-            .isEqualToComparingOnlyGivenFields(task, "reIndexerPerformer");
+    void fullReindexingShouldBeSerializable() throws Exception {
+        JsonSerializationVerifier.dtoModule(FullReindexingTask.module(reIndexerPerformer))
+            .bean(new FullReindexingTask(reIndexerPerformer))
+            .json(serializedFullReindexingTask)
+            .verify();
     }
 
     @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
-        ReprocessingContextInformation details = new ReprocessingContextInformationForFullReindexingTask(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
-    }
+    void additionalInformationShouldBeSerializable() throws Exception {
+        ReprocessingContextInformationForFullReindexingTask details = new ReprocessingContextInformationForFullReindexingTask(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
 
-    @Test
-    void additonalInformationShouldBeDeserializable() throws IOException {
-        ReprocessingContextInformation details = new ReprocessingContextInformation(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
+        JsonSerializationVerifier.dtoModule(ReprocessingContextInformationForFullReindexingTask.serializationModule(new TestId.Factory()))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
-
 }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
index 4c27cef..f309686 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
@@ -18,75 +18,51 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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 org.apache.james.JsonSerializationVerifier;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-
 class MessageIdReindexingTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
 
-    private ReIndexerPerformer reIndexerPerformer;
-    private MessageId.Factory messageIdFactory;
-    private JsonTaskSerializer taskSerializer;
     private final String serializedMessageIdReIndexingTask = "{\"type\": \"messageId-reindexing\", \"messageId\": \"1\"}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"messageId-reindexing\", \"messageId\": \"1\", \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"messageId-reindexing\", \"messageId\": \"1\", \"timestamp\":\"2018-11-13T12:00:55Z\"}";
 
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer;
+    private ReIndexerPerformer reIndexerPerformer;
+    private MessageId.Factory messageIdFactory;
+    private MessageIdReIndexingTask.Factory factory;
 
     @BeforeEach
     void setUp() {
         messageIdFactory = new TestMessageId.Factory();
-        jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-            MessageIdReindexingTaskAdditionalInformationDTO.serializationModule(messageIdFactory));
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        MessageIdReIndexingTask.Factory factory = new MessageIdReIndexingTask.Factory(reIndexerPerformer, messageIdFactory);
-        taskSerializer = JsonTaskSerializer.of(MessageIdReindexingTaskDTO.module(factory));
-    }
-
-    @Test
-    void messageIdReindexingShouldBeSerializable() throws JsonProcessingException {
-        MessageId messageId = messageIdFactory.fromString("1");
-        MessageIdReIndexingTask task = new MessageIdReIndexingTask(reIndexerPerformer, messageId);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedMessageIdReIndexingTask);
+        factory = new MessageIdReIndexingTask.Factory(reIndexerPerformer, messageIdFactory);
     }
 
     @Test
-    void messageIdReindexingShouldBeDeserializable() throws IOException {
+    void messageIdReindexingShouldBeSerializable() throws Exception {
         MessageId messageId = messageIdFactory.fromString("1");
-        MessageIdReIndexingTask task = new MessageIdReIndexingTask(reIndexerPerformer, messageId);
-
-        assertThat(taskSerializer.deserialize(serializedMessageIdReIndexingTask))
-            .isEqualToComparingOnlyGivenFields(task, "messageId");
+        JsonSerializationVerifier.dtoModule(MessageIdReindexingTaskDTO.module(factory))
+            .bean(new MessageIdReIndexingTask(reIndexerPerformer, messageId))
+            .json(serializedMessageIdReIndexingTask)
+            .verify();
     }
 
     @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
+    void additionalInformationShouldBeSerializable() throws Exception {
         MessageId messageId = messageIdFactory.fromString("1");
         MessageIdReIndexingTask.AdditionalInformation details = new MessageIdReIndexingTask.AdditionalInformation(messageId, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
-    }
 
-    @Test
-    void additonalInformationShouldBeDeserializable() throws IOException {
-        MessageId messageId = messageIdFactory.fromString("1");
-        MessageIdReIndexingTask.AdditionalInformation details = new MessageIdReIndexingTask.AdditionalInformation(messageId, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
+        JsonSerializationVerifier.dtoModule(MessageIdReindexingTaskAdditionalInformationDTO.serializationModule(messageIdFactory))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
 }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
index b5c23c7..6e283f1 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
@@ -18,92 +18,61 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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.List;
 
+import org.apache.james.JsonSerializationVerifier;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.TestId;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.ImmutableList;
 
 class SingleMailboxReindexingTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
 
-    private ReIndexerPerformer reIndexerPerformer;
-    private JsonTaskSerializer taskSerializer;
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer;
-
     private final int successfullyReprocessedMailCount = 42;
     private final int failedReprocessedMailCount = 2;
-    private  ReIndexingExecutionFailures reIndexingExecutionFailures;
 
     private final String serializedMailboxReindexingTask = "{\"type\": \"mailbox-reindexing\", \"mailboxId\": \"1\"}";
-
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"mailbox-reindexing\", \"mailboxId\": \"1\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10, 20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"mailbox-reindexing\", \"mailboxId\": \"1\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10, 20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
 
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
     private final MessageUid messageUid2 = MessageUid.of(20L);
 
-    private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid);
-    private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure2 = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid2);
-    private final List<ReIndexingExecutionFailures.ReIndexingFailure> failures = ImmutableList.of(indexingFailure, indexingFailure2);
+    private SingleMailboxReindexingTask.Factory factory;
+    private ReIndexingExecutionFailures reIndexingExecutionFailures;
+    private ReIndexerPerformer reIndexerPerformer;
 
     @BeforeEach
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        SingleMailboxReindexingTask.Factory factory = new SingleMailboxReindexingTask.Factory(reIndexerPerformer, new TestId.Factory());
-        taskSerializer = JsonTaskSerializer.of(SingleMailboxReindexingTaskDTO.module(factory));
-
-        jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-            SingleMailboxReindexingTaskAdditionalInformationDTO.serializationModule(new TestId.Factory()));
-
+        factory = new SingleMailboxReindexingTask.Factory(reIndexerPerformer, new TestId.Factory());
         reIndexingExecutionFailures = new ReIndexingExecutionFailures(ImmutableList.of(
             new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid),
             new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid2)));
     }
 
     @Test
-    void singleMailboxReindexingShouldBeSerializable() throws JsonProcessingException {
-        TestId mailboxId = TestId.of(1L);
-        SingleMailboxReindexingTask task = new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedMailboxReindexingTask);
+    void singleMailboxReindexingShouldBeSerializable() throws Exception {
+        JsonSerializationVerifier.dtoModule(SingleMailboxReindexingTaskDTO.module(factory))
+            .bean(new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId))
+            .json(serializedMailboxReindexingTask)
+            .verify();
     }
 
     @Test
-    void singleMailboxReindexingShouldBeDeserializable() throws IOException {
-        TestId mailboxId = TestId.of(1L);
-        SingleMailboxReindexingTask task = new SingleMailboxReindexingTask(reIndexerPerformer, mailboxId);
-
-        assertThat(taskSerializer.deserialize(serializedMailboxReindexingTask))
-            .isEqualToComparingOnlyGivenFields(task, "reIndexerPerformer", "mailboxId");
-    }
-
-    @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
+    void additionalInformationShouldBeSerializable() throws Exception {
         SingleMailboxReindexingTask.AdditionalInformation details = new SingleMailboxReindexingTask.AdditionalInformation(mailboxId, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
-    }
 
-    @Test
-    void additonalInformationShouldBeDeserializable() throws IOException {
-        SingleMailboxReindexingTask.AdditionalInformation details = new SingleMailboxReindexingTask.AdditionalInformation(mailboxId, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
+        JsonSerializationVerifier.dtoModule(SingleMailboxReindexingTaskAdditionalInformationDTO.serializationModule(new TestId.Factory()))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
 }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
index b97441b..119098c 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
@@ -18,70 +18,49 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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 org.apache.james.JsonSerializationVerifier;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.TestId;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-
 class SingleMessageReindexingTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
 
     private final TestId.Factory mailboxIdFactory = new TestId.Factory();
-    private ReIndexerPerformer reIndexerPerformer;
-    private JsonTaskSerializer taskSerializer;
     private final String serializedMessageReindexingTask = "{\"type\": \"message-reindexing\", \"mailboxId\": \"1\", \"uid\": 10}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"message-reindexing\", \"mailboxId\": \"1\", \"uid\": 10, \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"message-reindexing\", \"mailboxId\": \"1\", \"uid\": 10, \"timestamp\":\"2018-11-13T12:00:55Z\"}";
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-        SingleMessageReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory));
+
+    private SingleMessageReindexingTask.Factory factory;
+    private ReIndexerPerformer reIndexerPerformer;
 
     @BeforeEach
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        SingleMessageReindexingTask.Factory factory = new SingleMessageReindexingTask.Factory(reIndexerPerformer, mailboxIdFactory);
-        taskSerializer = JsonTaskSerializer.of(SingleMessageReindexingTaskDTO.module(factory));
-    }
-
-    @Test
-    void singleMessageReindexingShouldBeSerializable() throws JsonProcessingException {
-        SingleMessageReindexingTask task = new SingleMessageReindexingTask(reIndexerPerformer, mailboxId, messageUid);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedMessageReindexingTask);
+        factory = new SingleMessageReindexingTask.Factory(reIndexerPerformer, mailboxIdFactory);
     }
 
     @Test
-    void singleMessageReindexingShouldBeDeserializable() throws IOException {
-        SingleMessageReindexingTask task = new SingleMessageReindexingTask(reIndexerPerformer, mailboxId, messageUid);
-
-        assertThat(taskSerializer.deserialize(serializedMessageReindexingTask))
-            .isEqualToComparingOnlyGivenFields(task, "reIndexerPerformer", "mailboxId", "uid");
-    }
-
-    @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
-        SingleMessageReindexingTask.AdditionalInformation details = new SingleMessageReindexingTask.AdditionalInformation(mailboxId, messageUid, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
+    void singleMessageReindexingShouldBeSerializable() throws Exception {
+        JsonSerializationVerifier.dtoModule(SingleMessageReindexingTaskDTO.module(factory))
+            .bean(new SingleMessageReindexingTask(reIndexerPerformer, mailboxId, messageUid))
+            .json(serializedMessageReindexingTask)
+            .verify();
     }
 
     @Test
-    void additonalInformationShouldBeDeserializable() throws IOException {
+    void additionalInformationShouldBeSerializable() throws Exception {
         SingleMessageReindexingTask.AdditionalInformation details = new SingleMessageReindexingTask.AdditionalInformation(mailboxId, messageUid, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
+        JsonSerializationVerifier.dtoModule(SingleMessageReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
 }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
index ce2135a..39274b8 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
@@ -18,59 +18,42 @@
  ****************************************************************/
 package org.apache.mailbox.tools.indexer;
 
-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.List;
 
+import org.apache.james.JsonSerializationVerifier;
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.indexer.ReIndexingExecutionFailures;
 import org.apache.james.mailbox.model.TestId;
-import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer;
-import org.apache.james.server.task.json.JsonTaskSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.google.common.collect.ImmutableList;
 
 class UserReindexingTaskSerializationTest {
-
     private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z");
+    private static final Username USERNAME = Username.of("foo@apache.org");
 
-    private ReIndexerPerformer reIndexerPerformer;
-    private JsonTaskSerializer taskSerializer;
-    private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer;
-
-    private final Username username = Username.of("foo@apache.org");
     private final int successfullyReprocessedMailCount = 42;
     private final int failedReprocessedMailCount = 2;
-    private ReIndexingExecutionFailures reIndexingExecutionFailures;
     private final String serializedUserReindexingTask = "{\"type\": \"user-reindexing\", \"username\": \"foo@apache.org\"}";
-
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"user-reindexing\", \"user\": \"foo@apache.org\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"user-reindexing\", \"user\": \"foo@apache.org\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}], \"timestamp\":\"2018-11-13T12:00:55Z\"}";
 
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
-    private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid);
-
     private final TestId mailboxId2 = TestId.of(2L);
     private final MessageUid messageUid2 = MessageUid.of(20L);
 
-    private final ReIndexingExecutionFailures.ReIndexingFailure indexingFailure2 = new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId2, messageUid2);
-    private final List<ReIndexingExecutionFailures.ReIndexingFailure> failures = ImmutableList.of(indexingFailure, indexingFailure2);
+    private ReIndexerPerformer reIndexerPerformer;
+    private UserReindexingTask.Factory factory;
+    private ReIndexingExecutionFailures reIndexingExecutionFailures;
 
     @BeforeEach
     void setUp() {
         reIndexerPerformer = mock(ReIndexerPerformer.class);
-        UserReindexingTask.Factory factory = new UserReindexingTask.Factory(reIndexerPerformer);
-        taskSerializer = JsonTaskSerializer.of(UserReindexingTaskDTO.module(factory));
-        jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(
-            UserReindexingTaskAdditionalInformationDTO.serializationModule(new TestId.Factory()));
+        factory = new UserReindexingTask.Factory(reIndexerPerformer);
 
         reIndexingExecutionFailures = new ReIndexingExecutionFailures(ImmutableList.of(
             new ReIndexingExecutionFailures.ReIndexingFailure(mailboxId, messageUid),
@@ -78,35 +61,20 @@ class UserReindexingTaskSerializationTest {
     }
 
     @Test
-    void userReindexingShouldBeSerializable() throws JsonProcessingException {
-        Username username = Username.of("foo@apache.org");
-        UserReindexingTask task = new UserReindexingTask(reIndexerPerformer, username);
-
-        assertThatJson(taskSerializer.serialize(task))
-            .isEqualTo(serializedUserReindexingTask);
-    }
-
-    @Test
-    void userReindexingShouldBeDeserializable() throws IOException {
-        Username username = Username.of("foo@apache.org");
-        UserReindexingTask task = new UserReindexingTask(reIndexerPerformer, username);
-
-        assertThat(taskSerializer.deserialize(serializedUserReindexingTask))
-            .isEqualToComparingOnlyGivenFields(task, "reIndexerPerformer");
-    }
-
-
-    @Test
-    void additionalInformationShouldBeSerializable() throws JsonProcessingException {
-        UserReindexingTask.AdditionalInformation details = new UserReindexingTask.AdditionalInformation(username, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(SERIALIZED_ADDITIONAL_INFORMATION);
+    void userReindexingShouldBeSerializable() throws Exception {
+        JsonSerializationVerifier.dtoModule(UserReindexingTaskDTO.module(factory))
+            .bean(new UserReindexingTask(reIndexerPerformer, USERNAME))
+            .json(serializedUserReindexingTask)
+            .verify();
     }
 
     @Test
-    void additionalInformationShouldBeDeserializable() throws IOException {
-        UserReindexingTask.AdditionalInformation details = new UserReindexingTask.AdditionalInformation(username, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
-        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
-            .isEqualToComparingFieldByField(details);
+    void additionalInformationShouldBeSerializable() throws Exception {
+        UserReindexingTask.AdditionalInformation details = new UserReindexingTask.AdditionalInformation(USERNAME, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures, TIMESTAMP);
+        JsonSerializationVerifier.dtoModule(UserReindexingTaskAdditionalInformationDTO.serializationModule(new TestId.Factory()))
+            .bean(details)
+            .json(serializedAdditionalInformation)
+            .verify();
     }
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org