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]
