JAMES-2541 awaitTermination should throw when not terminated

Before the caller had to check the result of termination, leading to many 
mis-usage.

Also note that it makes ConcurrentTestRunner more fluent


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c73758e8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c73758e8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c73758e8

Branch: refs/heads/master
Commit: c73758e87abc78ce18cc4404ff20e7355d3b3479
Parents: 469eed3
Author: Benoit Tellier <[email protected]>
Authored: Tue Sep 11 10:56:39 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Thu Oct 4 15:12:07 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/MailboxManagerTest.java       |  8 ++---
 .../CassandraMailboxMapperConcurrencyTest.java  |  6 ++--
 .../store/mail/model/MessageIdMapperTest.java   | 12 +++----
 .../store/mail/model/MessageMapperTest.java     | 12 +++----
 .../mailbox/tika/CachingTextExtractorTest.java  |  3 +-
 .../processor/base/UidMsnConverterTest.java     | 24 ++++++-------
 .../protocols/smtp/AbstractSMTPServerTest.java  |  6 ++--
 .../util/concurrency/ConcurrentTestRunner.java  | 12 +++++--
 .../concurrency/ConcurrentTestRunnerTest.java   | 36 ++++++++++++--------
 .../api/MailRepositoryUrlStoreContract.java     | 18 +++++-----
 .../memory/MemoryMailRepositoryStoreTest.java   |  9 ++---
 .../org/apache/james/jmap/ProvisioningTest.java |  4 +--
 .../DefaultMailboxesProvisioningFilterTest.java |  4 +--
 13 files changed, 85 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java 
b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index 6f904ec..2b67604 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -980,13 +980,13 @@ public abstract class MailboxManagerTest {
         MailboxSession session = mailboxManager.createSystemSession(USER_1);
         String mailboxName = 
"a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z";
 
-        ConcurrentTestRunner testRunner = ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> 
mailboxManager.createMailbox(MailboxPath.forUser(USER_1, mailboxName + a), 
session))
             .threadCount(10)
             .build()
-            .run();
-        testRunner.awaitTermination(1, TimeUnit.MINUTES);
-        testRunner.assertNoException();
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
index bbe6577..adc612b 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java
@@ -61,7 +61,7 @@ class CassandraMailboxMapperConcurrencyTest {
 
     @Test
     void saveShouldBeThreadSafe() throws Exception {
-        boolean termination = ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> testee.save(new SimpleMailbox(MAILBOX_PATH, 
UID_VALIDITY)))
             .threadCount(THREAD_COUNT)
             .operationCount(OPERATION_COUNT)
@@ -69,7 +69,6 @@ class CassandraMailboxMapperConcurrencyTest {
             .run()
             .awaitTermination(1, TimeUnit.MINUTES);
 
-        assertThat(termination).isTrue();
         assertThat(testee.list()).hasSize(1);
     }
 
@@ -80,7 +79,7 @@ class CassandraMailboxMapperConcurrencyTest {
 
         mailbox.setName("newName");
 
-        boolean termination = ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> testee.save(mailbox))
             .threadCount(THREAD_COUNT)
             .operationCount(OPERATION_COUNT)
@@ -88,7 +87,6 @@ class CassandraMailboxMapperConcurrencyTest {
             .run()
             .awaitTermination(1, TimeUnit.MINUTES);
 
-        assertThat(termination).isTrue();
         List<Mailbox> list = testee.list();
         assertThat(list).hasSize(1);
         assertThat(list.get(0)).isEqualToComparingFieldByField(mailbox);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
index 7f653eb..67dbe45 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
@@ -677,7 +677,7 @@ public abstract class MessageIdMapperTest {
 
         int threadCount = 2;
         int updateCount = 10;
-        assertThat(ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> 
sut.setFlags(message1.getMessageId(),
                 ImmutableList.of(message1.getMailboxId()),
                 new Flags("custom-" + threadNumber + "-" + step),
@@ -686,8 +686,8 @@ public abstract class MessageIdMapperTest {
             .operationCount(updateCount)
             .build()
             .run()
-            .awaitTermination(1, TimeUnit.MINUTES))
-            .isTrue();
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         List<MailboxMessage> messages = 
sut.find(ImmutableList.of(message1.getMessageId()), 
MessageMapper.FetchType.Body);
         assertThat(messages).hasSize(1);
@@ -703,7 +703,7 @@ public abstract class MessageIdMapperTest {
 
         int threadCount = 4;
         int updateCount = 20;
-        assertThat(ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> {
                 if (step  < updateCount / 2) {
                     sut.setFlags(message1.getMessageId(),
@@ -721,8 +721,8 @@ public abstract class MessageIdMapperTest {
             .operationCount(updateCount)
             .build()
             .run()
-            .awaitTermination(1, TimeUnit.MINUTES))
-            .isTrue();
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         List<MailboxMessage> messages = 
sut.find(ImmutableList.of(message1.getMessageId()), 
MessageMapper.FetchType.Body);
         assertThat(messages).hasSize(1);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
index f113489..08c5eea 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
@@ -796,7 +796,7 @@ public abstract class MessageMapperTest {
 
         int threadCount = 2;
         int updateCount = 10;
-        assertThat(ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> 
messageMapper.updateFlags(benwaInboxMailbox,
                 new FlagsUpdateCalculator(new Flags("custom-" + threadNumber + 
"-" + step), FlagsUpdateMode.ADD),
                 MessageRange.one(message1.getUid())))
@@ -804,8 +804,8 @@ public abstract class MessageMapperTest {
             .operationCount(updateCount)
             .build()
             .run()
-            .awaitTermination(1, TimeUnit.MINUTES))
-            .isTrue();
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         Iterator<MailboxMessage> messages = 
messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.one(message1.getUid()),
             FetchType.Metadata, 1);
@@ -820,7 +820,7 @@ public abstract class MessageMapperTest {
 
         int threadCount = 4;
         int updateCount = 20;
-        assertThat(ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> {
                 if (step  < updateCount / 2) {
                     messageMapper.updateFlags(benwaInboxMailbox,
@@ -837,8 +837,8 @@ public abstract class MessageMapperTest {
             .operationCount(updateCount)
             .build()
             .run()
-            .awaitTermination(1, TimeUnit.MINUTES))
-            .isTrue();
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         Iterator<MailboxMessage> messages = 
messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.one(message1.getUid()),
             FetchType.Metadata, 1);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
 
b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
index a33d582..12287be 100644
--- 
a/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
+++ 
b/mailbox/tika/src/test/java/org/apache/james/mailbox/tika/CachingTextExtractorTest.java
@@ -190,7 +190,8 @@ public class CachingTextExtractorTest {
             .threadCount(10)
             .build()
             .run()
-            .awaitTermination(1, TimeUnit.MINUTES);
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         verify(wrappedTextExtractor, times(1)).extractContent(any(), any());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
----------------------------------------------------------------------
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
index 501986c..2092cc3 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/UidMsnConverterTest.java
@@ -370,7 +370,7 @@ public class UidMsnConverterTest {
             testee.addUid(MessageUid.of(i));
         }
 
-        ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> {
                 if (threadNumber == 0) {
                     testee.remove(MessageUid.of(step + 1));
@@ -380,9 +380,9 @@ public class UidMsnConverterTest {
             })
             .threadCount(2)
             .operationCount(initialCount)
-            .build();
-        concurrentTestRunner.run();
-        concurrentTestRunner.awaitTermination(10, TimeUnit.SECONDS);
+            .build()
+            .run()
+            .awaitTermination(10, TimeUnit.SECONDS);
 
         ImmutableMap.Builder<Integer, MessageUid> resultBuilder = 
ImmutableMap.builder();
         for (int i = 1; i <= initialCount; i++) {
@@ -397,13 +397,13 @@ public class UidMsnConverterTest {
         int operationCount = 1000;
         int threadCount = 2;
 
-        ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> 
testee.addUid(MessageUid.of((threadNumber * operationCount) + (step + 1))))
             .threadCount(threadCount)
             .operationCount(operationCount)
-            .build();
-        concurrentTestRunner.run();
-        concurrentTestRunner.awaitTermination(10, TimeUnit.SECONDS);
+            .build()
+            .run()
+            .awaitTermination(10, TimeUnit.SECONDS);
 
         ImmutableMap.Builder<Integer, MessageUid> resultBuilder = 
ImmutableMap.builder();
         for (int i = 1; i <= threadCount * operationCount; i++) {
@@ -421,13 +421,13 @@ public class UidMsnConverterTest {
             testee.addUid(MessageUid.of(i));
         }
 
-        ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> 
testee.remove(MessageUid.of((threadNumber * operationCount) + (step + 1))))
             .threadCount(threadCount)
             .operationCount(operationCount)
-            .build();
-        concurrentTestRunner.run();
-        concurrentTestRunner.awaitTermination(10, TimeUnit.SECONDS);
+            .build()
+            .run()
+            .awaitTermination(10, TimeUnit.SECONDS);
 
         ImmutableMap.Builder<Integer, MessageUid> resultBuilder = 
ImmutableMap.builder();
         for (int i = 1; i <= operationCount; i++) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
----------------------------------------------------------------------
diff --git 
a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
 
b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
index 79a9949..21fa151 100644
--- 
a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
+++ 
b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
@@ -103,13 +103,13 @@ public abstract class AbstractSMTPServerTest {
             InetSocketAddress bindedAddress = new 
ProtocolServerUtils(server).retrieveBindedAddress();
             String mailContent = CharStreams.toString(new 
InputStreamReader(ClassLoader.getSystemResourceAsStream("a50.eml"), 
StandardCharsets.US_ASCII));
 
-            assertThat(ConcurrentTestRunner.builder()
+            ConcurrentTestRunner.builder()
                 .operation((threadNumber, step) -> send(finalServer, 
bindedAddress, mailContent))
                 .threadCount(4)
                 .build()
                 .run()
-                .awaitTermination(1, TimeUnit.MINUTES))
-                .isTrue();
+                .awaitTermination(1, TimeUnit.MINUTES)
+                .assertNoException();
 
             Iterator<MailEnvelope> queued = hook.getQueued().iterator();
             assertThat(queued.hasNext()).isTrue();

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
----------------------------------------------------------------------
diff --git 
a/server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
 
b/server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
index 052f5db..91b6d58 100644
--- 
a/server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
+++ 
b/server/container/util/src/main/java/org/apache/james/util/concurrency/ConcurrentTestRunner.java
@@ -108,6 +108,10 @@ public class ConcurrentTestRunner {
         }
     }
 
+    public static class NotTerminatedException extends RuntimeException {
+
+    }
+
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ConcurrentTestRunner.class);
 
     public static RequireOperation builder() {
@@ -144,8 +148,12 @@ public class ConcurrentTestRunner {
         return this;
     }
 
-    public boolean awaitTermination(long time, TimeUnit unit) throws 
InterruptedException {
+    public ConcurrentTestRunner awaitTermination(long time, TimeUnit unit) 
throws InterruptedException {
         executorService.shutdown();
-        return executorService.awaitTermination(time, unit);
+        boolean terminated = executorService.awaitTermination(time, unit);
+        if (!terminated) {
+            throw new NotTerminatedException();
+        }
+        return this;
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
----------------------------------------------------------------------
diff --git 
a/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
 
b/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
index 3cabc82..4ca59d9 100644
--- 
a/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
+++ 
b/server/container/util/src/test/java/org/apache/james/util/concurrency/ConcurrentTestRunnerTest.java
@@ -20,6 +20,7 @@
 package org.apache.james.util.concurrency;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -83,18 +84,19 @@ public class ConcurrentTestRunnerTest {
     }
 
     @Test
-    public void awaitTerminationShouldReturnTrueWhenFinished() throws 
Exception {
+    public void awaitTerminationShouldNotThrowWhenFinished() {
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
             .operation(NOOP)
             .threadCount(1)
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
     }
 
     @Test
-    public void awaitTerminationShouldReturnFalseWhenNotFinished() throws 
Exception {
+    public void awaitTerminationShouldThrowWhenNotFinished() {
         int sleepDelay = 50;
 
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
@@ -103,11 +105,12 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(sleepDelay / 2, 
TimeUnit.MILLISECONDS)).isFalse();
+        assertThatThrownBy(() -> 
concurrentTestRunner.awaitTermination(sleepDelay / 2, TimeUnit.MILLISECONDS))
+            .isInstanceOf(ConcurrentTestRunner.NotTerminatedException.class);
     }
 
     @Test
-    public void runShouldPerformAllOperations() throws Exception {
+    public void runShouldPerformAllOperations() {
         ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();
 
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
@@ -117,12 +120,13 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
         assertThat(queue).containsOnly("0:0", "0:1", "1:0", "1:1");
     }
 
     @Test
-    public void operationCountShouldDefaultToOne() throws Exception {
+    public void operationCountShouldDefaultToOne() {
         ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();
 
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
@@ -131,12 +135,13 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
         assertThat(queue).containsOnly("0:0", "1:0");
     }
 
     @Test
-    public void runShouldNotThrowOnExceptions() throws Exception {
+    public void runShouldNotThrowOnExceptions() {
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
             .operation((threadNumber, step) -> {
                 throw new RuntimeException();
@@ -146,7 +151,8 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
     }
 
     @Test
@@ -180,7 +186,7 @@ public class ConcurrentTestRunnerTest {
     }
 
     @Test
-    public void runShouldPerformAllOperationsEvenOnExceptions() throws 
Exception {
+    public void runShouldPerformAllOperationsEvenOnExceptions() {
         ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();
 
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
@@ -193,12 +199,13 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
         assertThat(queue).containsOnly("0:0", "0:1", "1:0", "1:1");
     }
 
     @Test
-    public void runShouldPerformAllOperationsEvenOnOccasionalExceptions() 
throws Exception {
+    public void runShouldPerformAllOperationsEvenOnOccasionalExceptions() {
         ConcurrentLinkedQueue<String> queue = new ConcurrentLinkedQueue<>();
 
         ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
@@ -213,7 +220,8 @@ public class ConcurrentTestRunnerTest {
             .build()
             .run();
 
-        assertThat(concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS)).isTrue();
+        assertThatCode(() -> 
concurrentTestRunner.awaitTermination(DEFAULT_AWAIT_TIME, 
TimeUnit.MILLISECONDS))
+            .doesNotThrowAnyException();
         assertThat(queue).containsOnly("0:0", "0:1", "1:0", "1:1");
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java
 
b/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java
index fcafc7d..c0fd293 100644
--- 
a/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java
+++ 
b/server/data/data-api/src/test/java/org/apache/james/mailrepository/api/MailRepositoryUrlStoreContract.java
@@ -74,14 +74,15 @@ public interface MailRepositoryUrlStoreContract {
     default void addShouldWorkInConcurrentEnvironment(MailRepositoryUrlStore 
store) throws Exception {
         int operationCount = 10;
         int threadCount = 10;
-        ConcurrentTestRunner testRunner = ConcurrentTestRunner.builder()
+
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> store.add(MailRepositoryUrl.from("proto://" + 
a + "/" + b)))
             .threadCount(threadCount)
             .operationCount(operationCount)
             .build()
-            .run();
-        testRunner.awaitTermination(1, TimeUnit.MINUTES);
-        testRunner.assertNoException();
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         assertThat(store.listDistinct()).hasSize(threadCount * operationCount);
     }
@@ -89,14 +90,15 @@ public interface MailRepositoryUrlStoreContract {
     @Test
     default void 
addShouldNotAddDuplicatesInConcurrentEnvironment(MailRepositoryUrlStore store) 
throws Exception {
         int operationCount = 10;
-        ConcurrentTestRunner testRunner = ConcurrentTestRunner.builder()
+
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> store.add(MailRepositoryUrl.from("proto://" + 
b)))
             .threadCount(10)
             .operationCount(operationCount)
             .build()
-            .run();
-        testRunner.awaitTermination(1, TimeUnit.MINUTES);
-        testRunner.assertNoException();
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         assertThat(store.listDistinct()).hasSize(operationCount);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
 
b/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
index e353d35..a6684a4 100644
--- 
a/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
+++ 
b/server/data/data-memory/src/test/java/org/apache/james/mailrepository/memory/MemoryMailRepositoryStoreTest.java
@@ -231,7 +231,7 @@ public class MemoryMailRepositoryStoreTest {
         MailRepositoryUrl url = MailRepositoryUrl.from("memory1://repo");
         int threadCount = 10;
 
-        ConcurrentTestRunner concurrentTestRunner = 
ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((threadNb, operationNb) -> repositoryStore.select(url)
                 .store(FakeMail.builder()
                     .name("name" + threadNb)
@@ -239,9 +239,10 @@ public class MemoryMailRepositoryStoreTest {
                         .setText("Any body"))
                     .build()))
             .threadCount(10)
-            .build();
-        concurrentTestRunner.run().awaitTermination(1, TimeUnit.MINUTES);
-        concurrentTestRunner.assertNoException();
+            .build()
+            .run()
+            .awaitTermination(1, TimeUnit.MINUTES)
+            .assertNoException();
 
         long actualSize = repositoryStore.get(url).get().size();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
index 052adf1..e478a6c 100644
--- 
a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
+++ 
b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/ProvisioningTest.java
@@ -78,7 +78,7 @@ public abstract class ProvisioningTest {
     public void provisionMailboxesShouldNotDuplicateMailboxByName() throws 
Exception {
         String token = authenticateJamesUser(baseUri(jmapServer), USER, 
PASSWORD).serialize();
 
-        boolean termination = ConcurrentTestRunner.builder()
+        ConcurrentTestRunner.builder()
             .operation((a, b) -> with()
                 .header("Authorization", token)
                 .body("[[\"getMailboxes\", {}, \"#0\"]]")
@@ -88,8 +88,6 @@ public abstract class ProvisioningTest {
             .run()
             .awaitTermination(1, TimeUnit.MINUTES);
 
-        assertThat(termination).isTrue();
-
         given()
             .header("Authorization", token)
             .body("[[\"getMailboxes\", {}, \"#0\"]]")

http://git-wip-us.apache.org/repos/asf/james-project/blob/c73758e8/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
index 697299c..facdae7 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterTest.java
@@ -94,8 +94,8 @@ public class DefaultMailboxesProvisioningFilterTest {
             .threadCount(10)
             .build()
             .run()
-            .assertNoException()
-            .awaitTermination(10, TimeUnit.SECONDS);
+            .awaitTermination(10, TimeUnit.SECONDS)
+            .assertNoException();
 
         assertThat(mailboxManager.list(session))
             .containsOnlyElementsOf(DefaultMailboxes.DEFAULT_MAILBOXES


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to