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 <btell...@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("f...@apache.org"); - private ReIndexerPerformer reIndexerPerformer; - private JsonTaskSerializer taskSerializer; - private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer; - - private final Username username = Username.of("f...@apache.org"); private final int successfullyReprocessedMailCount = 42; private final int failedReprocessedMailCount = 2; - private ReIndexingExecutionFailures reIndexingExecutionFailures; private final String serializedUserReindexingTask = "{\"type\": \"user-reindexing\", \"username\": \"f...@apache.org\"}"; - - private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"user-reindexing\", \"user\": \"f...@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\": \"f...@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("f...@apache.org"); - UserReindexingTask task = new UserReindexingTask(reIndexerPerformer, username); - - assertThatJson(taskSerializer.serialize(task)) - .isEqualTo(serializedUserReindexingTask); - } - - @Test - void userReindexingShouldBeDeserializable() throws IOException { - Username username = Username.of("f...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org