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 ro...@apache.org on 2019/08/28 07:28:39 UTC

[james-project] 08/09: JAMES-2813 Add parameterized tests in TaskSerializationTest

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 4134cfe6ee8ecb8d38affd572e30bfda8f5ce3c1
Author: Gautier DI FOLCO <gd...@linagora.com>
AuthorDate: Thu Aug 22 14:21:10 2019 +0200

    JAMES-2813 Add parameterized tests in TaskSerializationTest
---
 server/task-json/pom.xml                           |  5 ++
 .../server/task/json/TaskSerializationTest.java    | 69 ++++++++++------------
 2 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/server/task-json/pom.xml b/server/task-json/pom.xml
index 5f88cb0..bcae769 100644
--- a/server/task-json/pom.xml
+++ b/server/task-json/pom.xml
@@ -77,6 +77,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-params</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.junit.platform</groupId>
             <artifactId>junit-platform-launcher</artifactId>
             <scope>test</scope>
diff --git a/server/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializationTest.java b/server/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializationTest.java
index 67d89d0..85205ad 100644
--- a/server/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializationTest.java
+++ b/server/task-json/src/test/java/org/apache/james/server/task/json/TaskSerializationTest.java
@@ -19,56 +19,63 @@ package org.apache.james.server.task.json;
 
 import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
 import static org.apache.james.server.task.json.dto.TestTaskDTOModules.COMPLETED_TASK_MODULE;
-import static org.apache.james.server.task.json.dto.TestTaskDTOModules.MEMORY_REFERENCE_TASK_MODULE;
 import static org.apache.james.server.task.json.dto.TestTaskDTOModules.FAILED_TASK_MODULE;
+import static org.apache.james.server.task.json.dto.TestTaskDTOModules.MEMORY_REFERENCE_TASK_MODULE;
 import static org.apache.james.server.task.json.dto.TestTaskDTOModules.THROWING_TASK_MODULE;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.IOException;
+import java.util.stream.Stream;
 
 import org.apache.james.server.task.json.dto.MemoryReferenceTaskStore;
+import org.apache.james.server.task.json.dto.TaskDTOModule;
 import org.apache.james.task.CompletedTask;
 import org.apache.james.task.FailedTask;
 import org.apache.james.task.MemoryReferenceTask;
 import org.apache.james.task.Task;
 import org.apache.james.task.ThrowingTask;
-import org.junit.jupiter.api.Test;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
 class TaskSerializationTest {
 
-    private static final String SERIALIZED_FAILED_TASK = "{\"type\": \"failed-task\"}";
     private static final String SERIALIZED_COMPLETED_TASK = "{\"type\": \"completed-task\"}";
+    private static final String SERIALIZED_FAILED_TASK = "{\"type\": \"failed-task\"}";
     private static final String SERIALIZED_MEMORY_REFERENCE_TASK = "{\"type\": \"memory-reference-task\", \"reference\": 0}";
     private static final String SERIALIZED_THROWING_TASK = "{\"type\": \"throwing-task\"}";
 
-    @Test
-    void failedTaskShouldSerialize() throws JsonProcessingException {
-        FailedTask failedTask = new FailedTask();
-
-        String actual = new JsonTaskSerializer(FAILED_TASK_MODULE).serialize(failedTask);
-        assertThatJson(actual).isEqualTo(SERIALIZED_FAILED_TASK);
+    @ParameterizedTest
+    @MethodSource
+    void taskShouldBeSerializable(Task task, TaskDTOModule<?, ?> module, String expectedJson) throws Exception {
+        String actual = new JsonTaskSerializer(module).serialize(task);
+        assertThatJson(actual).isEqualTo(expectedJson);
     }
 
-    @Test
-    void failedTaskShouldDeserialize() throws IOException {
-        Task task = new JsonTaskSerializer(FAILED_TASK_MODULE).deserialize(SERIALIZED_FAILED_TASK);
-        assertThat(task).isInstanceOf(FailedTask.class);
+    private static Stream<Arguments> taskShouldBeSerializable() throws Exception {
+        return validTasks();
     }
 
-    @Test
-    void completedTaskShouldSerialize() throws JsonProcessingException {
-        CompletedTask completedTask = new CompletedTask();
+    @ParameterizedTest
+    @MethodSource
+    void taskShouldBeDeserializable(Task task, TaskDTOModule<?, ?> module, String serializedJson) throws Exception {
+        assertThat(new JsonTaskSerializer(module).deserialize(serializedJson))
+            .isInstanceOf(task.getClass());
+    }
 
-        String actual = new JsonTaskSerializer(COMPLETED_TASK_MODULE).serialize(completedTask);
-        assertThatJson(actual).isEqualTo(SERIALIZED_COMPLETED_TASK);
+    private static Stream<Arguments> taskShouldBeDeserializable() throws Exception {
+        return validTasks();
     }
 
-    @Test
-    void completedTaskShouldDeserialize() throws IOException {
-        Task task = new JsonTaskSerializer(COMPLETED_TASK_MODULE).deserialize(SERIALIZED_COMPLETED_TASK);
-        assertThat(task).isInstanceOf(CompletedTask.class);
+    private static Stream<Arguments> validTasks() throws Exception {
+        return Stream.of(
+                Arguments.of(new CompletedTask(), COMPLETED_TASK_MODULE, SERIALIZED_COMPLETED_TASK),
+                Arguments.of(new FailedTask(), FAILED_TASK_MODULE, SERIALIZED_FAILED_TASK),
+                Arguments.of(new ThrowingTask(), THROWING_TASK_MODULE, SERIALIZED_THROWING_TASK)
+        );
     }
 
     @Test
@@ -82,22 +89,10 @@ class TaskSerializationTest {
     @Test
     void memoryReferenceTaskShouldDeserialize() throws IOException {
         MemoryReferenceTaskStore memoryReferenceTaskStore = new MemoryReferenceTaskStore();
-        memoryReferenceTaskStore.add(new MemoryReferenceTask(() -> Task.Result.COMPLETED));
+        MemoryReferenceTask memoryReferenceTask = new MemoryReferenceTask(() -> Task.Result.COMPLETED);
+        memoryReferenceTaskStore.add(memoryReferenceTask);
+
         Task task = new JsonTaskSerializer(MEMORY_REFERENCE_TASK_MODULE.apply(memoryReferenceTaskStore)).deserialize(SERIALIZED_MEMORY_REFERENCE_TASK);
         assertThat(task).isInstanceOf(MemoryReferenceTask.class);
     }
-
-    @Test
-    void throwingTaskShouldSerialize() throws JsonProcessingException {
-        ThrowingTask throwingTask = new ThrowingTask();
-
-        String actual = new JsonTaskSerializer(THROWING_TASK_MODULE).serialize(throwingTask);
-        assertThatJson(actual).isEqualTo(SERIALIZED_THROWING_TASK);
-    }
-
-    @Test
-    void throwingTaskShouldDeserialize() throws IOException {
-        Task task = new JsonTaskSerializer(THROWING_TASK_MODULE).deserialize(SERIALIZED_THROWING_TASK);
-        assertThat(task).isInstanceOf(ThrowingTask.class);
-    }
 }


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