This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 6a583a3de82daa63e821408b90a60a30714cbd34 Author: Benoit Tellier <[email protected]> AuthorDate: Mon Dec 16 18:17:42 2019 +0700 JAMES-2993 Demonstrate JsonSerializationVerifier in DeletedMessagesVaultDeleteTaskSerializationTest --- pom.xml | 6 +++ .../webadmin-mailbox-deleted-message-vault/pom.xml | 6 +++ .../routes/DeletedMessagesVaultDeleteTask.java | 33 +++++++++++++ ...edMessagesVaultDeleteTaskSerializationTest.java | 54 ++++++---------------- 4 files changed, 59 insertions(+), 40 deletions(-) diff --git a/pom.xml b/pom.xml index e674629..11464b0 100644 --- a/pom.xml +++ b/pom.xml @@ -1239,6 +1239,12 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-json</artifactId> + <version>${project.version}</version> + <type>test-jar</type> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-blob</artifactId> <version>${project.version}</version> </dependency> diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml index 2faf6dd..c2fc74e 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml @@ -84,6 +84,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-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTask.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTask.java index 3b732d3..232cf89 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTask.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTask.java @@ -21,6 +21,7 @@ package org.apache.james.webadmin.vault.routes; import java.time.Clock; import java.time.Instant; +import java.util.Objects; import java.util.Optional; import javax.inject.Inject; @@ -80,6 +81,23 @@ public class DeletedMessagesVaultDeleteTask implements Task { public Instant timestamp() { return timestamp; } + + @Override + public final boolean equals(Object o) { + if (o instanceof AdditionalInformation) { + AdditionalInformation that = (AdditionalInformation) o; + + return Objects.equals(this.username, that.username) + && Objects.equals(this.deleteMessageId, that.deleteMessageId) + && Objects.equals(this.timestamp, that.timestamp); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(username, deleteMessageId, timestamp); + } } private final DeletedMessageVault vault; @@ -119,4 +137,19 @@ public class DeletedMessagesVaultDeleteTask implements Task { return Optional.of(new AdditionalInformation(username, messageId, Clock.systemUTC().instant())); } + @Override + public final boolean equals(Object o) { + if (o instanceof DeletedMessagesVaultDeleteTask) { + DeletedMessagesVaultDeleteTask that = (DeletedMessagesVaultDeleteTask) o; + + return Objects.equals(this.username, that.username) + && Objects.equals(this.messageId, that.messageId); + } + return false; + } + + @Override + public final int hashCode() { + return Objects.hash(username, messageId); + } } diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java index 38277cc..0b85ce6 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java @@ -18,75 +18,49 @@ ****************************************************************/ package org.apache.james.webadmin.vault.routes; -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.core.Username; 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.apache.james.vault.DeletedMessageVault; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.core.JsonProcessingException; - class DeletedMessagesVaultDeleteTaskSerializationTest { - private static final Instant TIMESTAMP = Instant.parse("2018-11-13T12:00:55Z"); - private DeletedMessageVault deletedMessageVault; - private JsonTaskSerializer taskSerializer; private final Username username = Username.of("james"); - private final TestMessageId.Factory messageIdFactory = new TestMessageId.Factory(); private final MessageId messageId = messageIdFactory.generate(); - private final String serializedDeleteMessagesVaultDeleteTask = "{\"type\": \"deleted-messages-delete\", \"userName\":\"james\", \"messageId\": \"" + messageId.serialize() + "\"}"; private final String serializedAdditionalInformation = "{\"type\": \"deleted-messages-delete\", \"userName\":\"james\", \"messageId\": \"" + messageId.serialize() + "\", \"timestamp\":\"2018-11-13T12:00:55Z\"}"; - private JsonTaskAdditionalInformationSerializer jsonAdditionalInformationSerializer; + private DeletedMessagesVaultDeleteTask.Factory factory; + private DeletedMessageVault deletedMessageVault; @BeforeEach void setUp() { deletedMessageVault = mock(DeletedMessageVault.class); - DeletedMessagesVaultDeleteTask.Factory factory = new DeletedMessagesVaultDeleteTask.Factory(deletedMessageVault, messageIdFactory); - taskSerializer = JsonTaskSerializer.of(DeletedMessagesVaultDeleteTaskDTO.module(factory)); - jsonAdditionalInformationSerializer = JsonTaskAdditionalInformationSerializer.of(DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.serializationModule(messageIdFactory)); + factory = new DeletedMessagesVaultDeleteTask.Factory(deletedMessageVault, messageIdFactory); } @Test - void deleteMessagesVaultDeleteTaskShouldBeSerializable() throws JsonProcessingException { - DeletedMessagesVaultDeleteTask task = new DeletedMessagesVaultDeleteTask(deletedMessageVault, username, messageId); - - assertThatJson(taskSerializer.serialize(task)) - .isEqualTo(serializedDeleteMessagesVaultDeleteTask); - } - - @Test - void deleteMessagesVaultDeleteTaskShouldBeDeserializable() throws IOException { - DeletedMessagesVaultDeleteTask task = new DeletedMessagesVaultDeleteTask(deletedMessageVault, username, messageId); - - assertThat(taskSerializer.deserialize(serializedDeleteMessagesVaultDeleteTask)) - .isEqualToComparingOnlyGivenFields(task, "username", "messageId"); - } - - - @Test - void additionalInformationShouldBeSerializable() throws JsonProcessingException { - DeletedMessagesVaultDeleteTask.AdditionalInformation details = new DeletedMessagesVaultDeleteTask.AdditionalInformation(username, messageId, TIMESTAMP); - assertThatJson(jsonAdditionalInformationSerializer.serialize(details)).isEqualTo(serializedAdditionalInformation); + void deleteMessagesVaultDeleteTaskShouldBeSerializable() throws Exception { + JsonSerializationVerifier.dtoModule(DeletedMessagesVaultDeleteTaskDTO.module(factory)) + .bean(new DeletedMessagesVaultDeleteTask(deletedMessageVault, username, messageId)) + .json(serializedDeleteMessagesVaultDeleteTask) + .verify(); } @Test - void additonalInformationShouldBeDeserializable() throws IOException { - DeletedMessagesVaultDeleteTask.AdditionalInformation details = new DeletedMessagesVaultDeleteTask.AdditionalInformation(username, messageId, TIMESTAMP); - assertThat(jsonAdditionalInformationSerializer.deserialize(serializedAdditionalInformation)) - .isEqualToComparingFieldByField(details); + void additionalInformationShouldBeSerializable() throws Exception { + JsonSerializationVerifier.dtoModule(DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.serializationModule(messageIdFactory)) + .bean(new DeletedMessagesVaultDeleteTask.AdditionalInformation(username, messageId, TIMESTAMP)) + .json(serializedAdditionalInformation) + .verify(); } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
