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 983a56d8cf005193166aa758e4226400f87bd203 Author: Rémi KOWALSKI <[email protected]> AuthorDate: Wed Oct 2 10:06:36 2019 +0200 JAMES-2813 wrap all lambda as task into a MemoryReferenceTask in test --- server/container/cli-integration/pom.xml | 7 ++- .../james/cli/ReindexCommandIntegrationTest.java | 5 ++- server/protocols/webadmin/webadmin-core/pom.xml | 6 +++ .../james/webadmin/routes/TasksRoutesTest.java | 51 +++++++++++----------- .../org/apache/james/task/MemoryReferenceTask.java | 14 ++++-- .../james/task/SerialTaskManagerWorkerTest.java | 8 ++-- .../java/org/apache/james/task/TaskWithIdTest.java | 6 +-- .../EventSourcingTaskManagerTest.java | 9 ++-- 8 files changed, 64 insertions(+), 42 deletions(-) diff --git a/server/container/cli-integration/pom.xml b/server/container/cli-integration/pom.xml index 5fdaaed..b78c433 100644 --- a/server/container/cli-integration/pom.xml +++ b/server/container/cli-integration/pom.xml @@ -65,7 +65,12 @@ <artifactId>james-server-memory-guice</artifactId> <scope>test</scope> </dependency> - + <dependency> + <groupId>${james.groupId}</groupId> + <artifactId>james-server-task-api</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> <dependency> <groupId>${james.groupId}</groupId> <artifactId>testing-base</artifactId> diff --git a/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java b/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java index 6d81781..c1ff23f 100644 --- a/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java +++ b/server/container/cli-integration/src/test/java/org/apache/james/cli/ReindexCommandIntegrationTest.java @@ -31,6 +31,7 @@ import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex; import org.apache.james.modules.server.JMXServerModule; +import org.apache.james.task.MemoryReferenceTask; import org.apache.james.task.Task; import org.junit.After; import org.junit.Before; @@ -50,8 +51,8 @@ public class ReindexCommandIntegrationTest { @Before public void setUp() throws Exception { reIndexer = mock(ReIndexer.class); - when(reIndexer.reIndex()).thenReturn(() -> Task.Result.COMPLETED); - when(reIndexer.reIndex(any(MailboxPath.class))).thenReturn(() -> Task.Result.COMPLETED); + when(reIndexer.reIndex()).thenReturn(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); + when(reIndexer.reIndex(any(MailboxPath.class))).thenReturn(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); guiceJamesServer = memoryJmap.jmapServer(new JMXServerModule(), binder -> binder.bind(ListeningMessageSearchIndex.class).toInstance(mock(ListeningMessageSearchIndex.class))) .overrideWith(binder -> binder.bind(ReIndexer.class) diff --git a/server/protocols/webadmin/webadmin-core/pom.xml b/server/protocols/webadmin/webadmin-core/pom.xml index 4c39d4e..606ec07 100644 --- a/server/protocols/webadmin/webadmin-core/pom.xml +++ b/server/protocols/webadmin/webadmin-core/pom.xml @@ -59,6 +59,12 @@ </dependency> <dependency> <groupId>${james.groupId}</groupId> + <artifactId>james-server-task-api</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> + <groupId>${james.groupId}</groupId> <artifactId>james-server-task-memory</artifactId> <scope>test</scope> </dependency> diff --git a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java index b119037..c34baa4 100644 --- a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java +++ b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java @@ -34,6 +34,7 @@ import java.util.UUID; import java.util.concurrent.CountDownLatch; import org.apache.james.task.Hostname; +import org.apache.james.task.MemoryReferenceTask; import org.apache.james.task.MemoryTaskManager; import org.apache.james.task.Task; import org.apache.james.task.TaskId; @@ -87,11 +88,11 @@ class TasksRoutesTest { @Test void listShouldReturnTaskDetailsWhenTaskInProgress() throws Exception { CountDownLatch taskInProgressLatch = new CountDownLatch(1); - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { taskInProgressLatch.countDown(); waitForResult(); return Task.Result.COMPLETED; - }); + })); taskInProgressLatch.await(); @@ -123,11 +124,11 @@ class TasksRoutesTest { @Test void listShouldListTaskWhenStatusFilter() throws Exception { CountDownLatch inProgressLatch = new CountDownLatch(1); - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { inProgressLatch.countDown(); waitForResult(); return Task.Result.COMPLETED; - }); + })); inProgressLatch.await(); @@ -140,17 +141,17 @@ class TasksRoutesTest { .body("", hasSize(1)) .body("[0].status", is(TaskManager.Status.IN_PROGRESS.getValue())) .body("[0].taskId", is(taskId.asString())) - .body("[0].type", is(Task.UNKNOWN.asString())); + .body("[0].type", is(MemoryReferenceTask.TYPE.asString())); } @Test void listShouldReturnEmptyWhenNonMatchingStatusFilter() throws Exception { CountDownLatch inProgressLatch = new CountDownLatch(1); - taskManager.submit(() -> { + taskManager.submit(new MemoryReferenceTask(() -> { inProgressLatch.countDown(); waitForResult(); return Task.Result.COMPLETED; - }); + })); inProgressLatch.await(); @@ -166,11 +167,11 @@ class TasksRoutesTest { @Test void getShouldReturnTaskDetails() throws Exception { CountDownLatch inProgressLatch = new CountDownLatch(1); - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { inProgressLatch.countDown(); waitForResult(); return Task.Result.COMPLETED; - }); + })); inProgressLatch.await(); @@ -183,14 +184,14 @@ class TasksRoutesTest { @Test void getAwaitShouldAwaitTaskCompletion() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { try { Thread.sleep(100); } catch (InterruptedException e) { throw new RuntimeException(e); } return Task.Result.COMPLETED; - }); + })); when() .get("/" + taskId.getValue() + "/await") @@ -201,14 +202,14 @@ class TasksRoutesTest { @Test void getAwaitWithTimeoutShouldAwaitTaskCompletion() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } return Task.Result.COMPLETED; - }); + })); given() .queryParam("timeout", "2s") @@ -221,7 +222,7 @@ class TasksRoutesTest { @Test void getAwaitWithInvalidTimeoutShouldReturnAnError() { - TaskId taskId = taskManager.submit(() -> Task.Result.COMPLETED); + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); given() .queryParam("timeout", "-5") @@ -235,7 +236,7 @@ class TasksRoutesTest { @Test void getAwaitWithATooBigTimeoutShouldReturnAnError() { - TaskId taskId = taskManager.submit(() -> Task.Result.COMPLETED); + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); given() .queryParam("timeout", "5y") @@ -249,14 +250,14 @@ class TasksRoutesTest { @Test void getAwaitWithAShorterTimeoutShouldReturnTimeout() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { try { Thread.sleep(10000); } catch (InterruptedException e) { throw new RuntimeException(e); } return Task.Result.COMPLETED; - }); + })); given() .queryParam("timeout", "1") @@ -279,9 +280,9 @@ class TasksRoutesTest { @Test void getAwaitShouldNotFailUponError() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { throw new RuntimeException(); - }); + })); when() .get("/" + taskId.getValue() + "/await") @@ -292,14 +293,14 @@ class TasksRoutesTest { @Test void getAwaitShouldNotFailUponFutureError() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { try { Thread.sleep(200); } catch (InterruptedException e) { throw new RuntimeException(e); } throw new RuntimeException(); - }); + })); when() .get("/" + taskId.getValue() + "/await") @@ -310,10 +311,10 @@ class TasksRoutesTest { @Test void deleteShouldReturnOk() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { waitForResult(); return Task.Result.COMPLETED; - }); + })); when() .delete("/" + taskId.getValue()) @@ -325,14 +326,14 @@ class TasksRoutesTest { void deleteShouldCancelMatchingTask() { CountDownLatch inProgressLatch = new CountDownLatch(1); - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { try { inProgressLatch.await(); } catch (InterruptedException e) { //ignore } return Task.Result.COMPLETED; - }); + })); with() .delete("/" + taskId.getValue()); diff --git a/server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceTask.java b/server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceTask.java index 6ce1499..b00a53e 100644 --- a/server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceTask.java +++ b/server/task/task-api/src/test/java/org/apache/james/task/MemoryReferenceTask.java @@ -20,17 +20,25 @@ package org.apache.james.task; import java.util.Optional; +import org.junit.jupiter.api.function.ThrowingSupplier; + public class MemoryReferenceTask implements Task { public static final TaskType TYPE = TaskType.of("memory-reference-task"); - private final Task task; + private final ThrowingSupplier<Result> task; - public MemoryReferenceTask(Task task) { + public MemoryReferenceTask(ThrowingSupplier<Result> task) { this.task = task; } @Override public Result run() throws InterruptedException { - return task.run(); + try { + return task.get(); + } catch (InterruptedException e) { + throw e; + } catch (Throwable throwable) { + throw new RuntimeException(throwable); + } } @Override diff --git a/server/task/task-memory/src/test/java/org/apache/james/task/SerialTaskManagerWorkerTest.java b/server/task/task-memory/src/test/java/org/apache/james/task/SerialTaskManagerWorkerTest.java index 522ed0c..a0779b4 100644 --- a/server/task/task-memory/src/test/java/org/apache/james/task/SerialTaskManagerWorkerTest.java +++ b/server/task/task-memory/src/test/java/org/apache/james/task/SerialTaskManagerWorkerTest.java @@ -94,11 +94,11 @@ class SerialTaskManagerWorkerTest { CountDownLatch latch = new CountDownLatch(1); CountDownLatch taskLaunched = new CountDownLatch(1); - Task inProgressTask = () -> { + Task inProgressTask = new MemoryReferenceTask(() -> { taskLaunched.countDown(); await(latch); return Task.Result.COMPLETED; - }; + }); TaskWithId taskWithId = new TaskWithId(id, inProgressTask); @@ -116,11 +116,11 @@ class SerialTaskManagerWorkerTest { AtomicInteger counter = new AtomicInteger(0); CountDownLatch latch = new CountDownLatch(1); - Task inProgressTask = () -> { + Task inProgressTask = new MemoryReferenceTask(() -> { await(latch); counter.incrementAndGet(); return Task.Result.COMPLETED; - }; + }); TaskWithId taskWithId = new TaskWithId(id, inProgressTask); diff --git a/server/task/task-memory/src/test/java/org/apache/james/task/TaskWithIdTest.java b/server/task/task-memory/src/test/java/org/apache/james/task/TaskWithIdTest.java index a0a1ca0..40efa89 100644 --- a/server/task/task-memory/src/test/java/org/apache/james/task/TaskWithIdTest.java +++ b/server/task/task-memory/src/test/java/org/apache/james/task/TaskWithIdTest.java @@ -28,8 +28,8 @@ public class TaskWithIdTest { @Test public void twoTasksWithSameIdShouldBeEqual() { TaskId id = TaskId.generateTaskId(); - Task task1 = () -> Task.Result.COMPLETED; - Task task2 = () -> Task.Result.COMPLETED; + Task task1 = new MemoryReferenceTask(() -> Task.Result.COMPLETED); + Task task2 = new MemoryReferenceTask(() -> Task.Result.COMPLETED); TaskWithId taskWithId1 = new TaskWithId(id, task1); TaskWithId taskWithId2 = new TaskWithId(id, task2); assertThat(taskWithId1).isEqualTo(taskWithId2); @@ -39,7 +39,7 @@ public class TaskWithIdTest { public void sameTaskWithDifferentIdShouldNotBeEqual() { TaskId id1 = TaskId.generateTaskId(); TaskId id2 = TaskId.generateTaskId(); - Task task = () -> Task.Result.COMPLETED; + Task task = new MemoryReferenceTask(() -> Task.Result.COMPLETED); TaskWithId taskWithId1 = new TaskWithId(id1, task); TaskWithId taskWithId2 = new TaskWithId(id2, task); assertThat(taskWithId1).isNotEqualTo(taskWithId2); diff --git a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/EventSourcingTaskManagerTest.java b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/EventSourcingTaskManagerTest.java index 891c346..d3d9653 100644 --- a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/EventSourcingTaskManagerTest.java +++ b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/EventSourcingTaskManagerTest.java @@ -26,6 +26,7 @@ import org.apache.james.eventsourcing.eventstore.EventStore; import org.apache.james.eventsourcing.eventstore.memory.InMemoryEventStore; import org.apache.james.task.CountDownLatchExtension; import org.apache.james.task.Hostname; +import org.apache.james.task.MemoryReferenceTask; import org.apache.james.task.MemoryWorkQueue; import org.apache.james.task.SerialTaskManagerWorker; import org.apache.james.task.Task; @@ -75,7 +76,7 @@ class EventSourcingTaskManagerTest implements TaskManagerContract { @Test void createdTaskShouldKeepOriginHostname() { - TaskId taskId = taskManager.submit(() -> Task.Result.COMPLETED); + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); TaskAggregateId aggregateId = new TaskAggregateId(taskId); assertThat(eventStore.getEventsOfAggregate(aggregateId).getEvents()) .filteredOn(event -> event instanceof Created) @@ -85,7 +86,7 @@ class EventSourcingTaskManagerTest implements TaskManagerContract { @Test void startedTaskShouldKeepOriginHostname() { - TaskId taskId = taskManager.submit(() -> Task.Result.COMPLETED); + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> Task.Result.COMPLETED)); TaskAggregateId aggregateId = new TaskAggregateId(taskId); CALMLY_AWAIT.untilAsserted(() -> @@ -97,10 +98,10 @@ class EventSourcingTaskManagerTest implements TaskManagerContract { @Test void cancelRequestedTaskShouldKeepOriginHostname() { - TaskId taskId = taskManager.submit(() -> { + TaskId taskId = taskManager.submit(new MemoryReferenceTask(() -> { Thread.sleep(100); return Task.Result.COMPLETED; - }); + })); taskManager.cancel(taskId); TaskAggregateId aggregateId = new TaskAggregateId(taskId); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
