JAMES-2489 Use RabbitMQAPI Delete Queue for cleanup This leads to 10x testing time improvement in RabbitMQMailQueueTest
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/45b81bcb Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/45b81bcb Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/45b81bcb Branch: refs/heads/master Commit: 45b81bcb1946f50bd8e101e34e6009a3b014df6a Parents: 55759fc Author: Benoit Tellier <[email protected]> Authored: Thu Nov 1 10:24:09 2018 +0700 Committer: Benoit Tellier <[email protected]> Committed: Thu Nov 1 10:24:09 2018 +0700 ---------------------------------------------------------------------- .../apache/james/backend/rabbitmq/RabbitMQExtension.java | 2 +- .../james/backend/rabbitmq/RabbitMQHealthCheckTest.java | 6 ++++++ .../org/apache/james/backend/rabbitmq/RabbitMQTest.java | 3 ++- .../RabbitMQMailQueueConfigurationChangeTest.java | 10 ++++++---- .../james/queue/rabbitmq/RabbitMQMailQueueTest.java | 9 ++++++++- .../queue/rabbitmq/RabbitMqMailQueueFactoryTest.java | 7 +++++++ 6 files changed, 30 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQExtension.java ---------------------------------------------------------------------- diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQExtension.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQExtension.java index 2b47bc8..0080c95 100644 --- a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQExtension.java +++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQExtension.java @@ -54,7 +54,7 @@ public class RabbitMQExtension implements BeforeAllCallback, BeforeEachCallback, @Override public void afterEach(ExtensionContext context) throws Exception { simpleChannelPool.close(); - rabbitMQ.reset(); + // rabbitMQ.reset(); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQHealthCheckTest.java ---------------------------------------------------------------------- diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQHealthCheckTest.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQHealthCheckTest.java index ff85217..6184517 100644 --- a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQHealthCheckTest.java +++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQHealthCheckTest.java @@ -22,6 +22,7 @@ package org.apache.james.backend.rabbitmq; import static org.assertj.core.api.Assertions.assertThat; import org.apache.james.core.healthcheck.Result; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -38,6 +39,11 @@ class RabbitMQHealthCheckTest { healthCheck = new RabbitMQHealthCheck(rabbitMQExtension.getRabbitChannelPool()); } + @AfterEach + void tearDown(DockerRabbitMQ rabbitMQ) throws Exception { + rabbitMQ.reset(); + } + @Test void checkShouldReturnHealthyWhenRabbitMQIsRunning() { Result check = healthCheck.check(); http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java ---------------------------------------------------------------------- diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java index adfa43e..f4dc1bd 100644 --- a/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java +++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backend/rabbitmq/RabbitMQTest.java @@ -104,8 +104,9 @@ class RabbitMQTest { } @AfterEach - void tearDown() { + void tearDown(DockerRabbitMQ rabbitMQ) throws Exception { closeQuietly(connection, channel); + rabbitMQ.reset(); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java index 638152d..76a7aeb 100644 --- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java +++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueConfigurationChangeTest.java @@ -33,8 +33,6 @@ import java.util.function.Function; import java.util.stream.IntStream; import java.util.stream.Stream; -import javax.mail.internet.MimeMessage; - import org.apache.james.backend.rabbitmq.RabbitMQConfiguration; import org.apache.james.backend.rabbitmq.RabbitMQExtension; import org.apache.james.backends.cassandra.CassandraCluster; @@ -42,10 +40,8 @@ import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.blob.api.HashBlobId; -import org.apache.james.blob.api.Store; import org.apache.james.blob.cassandra.CassandraBlobModule; import org.apache.james.blob.cassandra.CassandraBlobsDAO; -import org.apache.james.blob.mail.MimeMessagePartsId; import org.apache.james.blob.mail.MimeMessageStore; import org.apache.james.eventsourcing.eventstore.cassandra.CassandraEventStoreModule; import org.apache.james.metrics.api.NoopGaugeRegistry; @@ -58,6 +54,7 @@ import org.apache.james.queue.rabbitmq.view.cassandra.CassandraMailQueueViewTest import org.apache.james.queue.rabbitmq.view.cassandra.configuration.CassandraMailQueueViewConfiguration; import org.apache.james.util.streams.Iterators; import org.apache.mailet.Mail; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -110,6 +107,11 @@ class RabbitMQMailQueueConfigurationChangeTest { mqManagementApi = new RabbitMQManagementApi(rabbitMQConfiguration); } + @AfterEach + void tearDown() { + mqManagementApi.deleteAllQueues(); + } + private RabbitMQMailQueue getRabbitMQMailQueue(CassandraCluster cassandra, CassandraMailQueueViewConfiguration mailQueueViewConfiguration) throws Exception { CassandraMailQueueView.Factory mailQueueViewFactory = CassandraMailQueueViewTestFactory.factory(clock, random, cassandra.getConf(), http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java index 0b14270..8e84341 100644 --- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java +++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueTest.java @@ -54,6 +54,7 @@ import org.apache.james.queue.rabbitmq.view.cassandra.CassandraMailQueueViewTest import org.apache.james.queue.rabbitmq.view.cassandra.configuration.CassandraMailQueueViewConfiguration; import org.apache.james.util.streams.Iterators; import org.apache.mailet.Mail; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -84,6 +85,7 @@ public class RabbitMQMailQueueTest implements ManageableMailQueueContract, MailQ private RabbitMQMailQueueFactory mailQueueFactory; private UpdatableTickingClock clock; private RabbitMQMailQueue mailQueue; + private RabbitMQManagementApi mqManagementApi; @Override public void enQueue(Mail mail) throws MailQueue.MailQueueException { @@ -121,11 +123,16 @@ public class RabbitMQMailQueueTest implements ManageableMailQueueContract, MailQ BLOB_ID_FACTORY, mailQueueViewFactory, clock); - RabbitMQManagementApi mqManagementApi = new RabbitMQManagementApi(rabbitMQConfiguration); + mqManagementApi = new RabbitMQManagementApi(rabbitMQConfiguration); mailQueueFactory = new RabbitMQMailQueueFactory(rabbitClient, mqManagementApi, factory); mailQueue = mailQueueFactory.createQueue(SPOOL); } + @AfterEach + void tearDown() { + mqManagementApi.deleteAllQueues(); + } + @Override public MailQueue getMailQueue() { return mailQueue; http://git-wip-us.apache.org/repos/asf/james-project/blob/45b81bcb/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java ---------------------------------------------------------------------- diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java index 7caf060..4e7a414 100644 --- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java +++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/RabbitMqMailQueueFactoryTest.java @@ -31,6 +31,7 @@ import java.time.Duration; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import org.apache.james.backend.rabbitmq.DockerRabbitMQ; import org.apache.james.backend.rabbitmq.RabbitMQConfiguration; import org.apache.james.backend.rabbitmq.RabbitMQExtension; import org.apache.james.blob.api.HashBlobId; @@ -41,6 +42,7 @@ import org.apache.james.queue.api.MailQueueFactory; import org.apache.james.queue.api.MailQueueFactoryContract; import org.apache.james.queue.rabbitmq.view.api.MailQueueView; import org.apache.james.util.concurrency.ConcurrentTestRunner; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -80,6 +82,11 @@ class RabbitMqMailQueueFactoryTest implements MailQueueFactoryContract<RabbitMQM mailQueueFactory = new RabbitMQMailQueueFactory(rabbitClient, mqManagementApi, factory); } + @AfterEach + void tearDown(DockerRabbitMQ rabbitMQ) throws Exception { + rabbitMQ.reset(); + } + @Override public MailQueueFactory<RabbitMQMailQueue> getMailQueueFactory() { return mailQueueFactory; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
