JAMES-2469 RabbitMQ as a class rule
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1169a7d3 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1169a7d3 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1169a7d3 Branch: refs/heads/master Commit: 1169a7d3220d0a4db57db9745f2434bddaad021b Parents: 4803007 Author: benwa <[email protected]> Authored: Sat Jul 14 11:35:05 2018 +0700 Committer: benwa <[email protected]> Committed: Wed Jul 25 09:35:48 2018 +0700 ---------------------------------------------------------------------- .../transport/mailets/ICSAttachmentWorkflowTest.java | 10 ++++++---- .../apache/james/transport/mailets/amqp/AmqpRule.java | 11 +++++++++-- 2 files changed, 15 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/1169a7d3/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java index 8c8a794..997251e 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java @@ -52,9 +52,9 @@ import org.apache.james.utils.SMTPMessageSender; import org.apache.mailet.base.test.FakeMail; import org.junit.After; import org.junit.Before; +import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; import com.google.common.collect.ImmutableList; @@ -426,14 +426,15 @@ public class ICSAttachmentWorkflowTest { "END:VCALENDAR\r\n" + ""; - public SwarmGenericContainer rabbitMqContainer = new SwarmGenericContainer(Images.RABBITMQ) + @ClassRule + public static SwarmGenericContainer rabbitMqContainer = new SwarmGenericContainer(Images.RABBITMQ) .withAffinityToContainer(); + @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @Rule public AmqpRule amqpRule = new AmqpRule(rabbitMqContainer, EXCHANGE_NAME, ROUTING_KEY); @Rule - public RuleChain chain = RuleChain.outerRule(temporaryFolder).around(rabbitMqContainer).around(amqpRule); - @Rule public IMAPMessageReader imapMessageReader = new IMAPMessageReader(); @Rule public SMTPMessageSender messageSender = new SMTPMessageSender(DEFAULT_DOMAIN); @@ -550,6 +551,7 @@ public class ICSAttachmentWorkflowTest { @After public void tearDown() throws Exception { jamesServer.shutdown(); + amqpRule.readAll(); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/1169a7d3/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpRule.java ---------------------------------------------------------------------- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpRule.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpRule.java index c117b8d..8198236 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpRule.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/amqp/AmqpRule.java @@ -37,6 +37,8 @@ import com.rabbitmq.client.GetResponse; public class AmqpRule extends ExternalResource { + private static final boolean AUTO_ACK = true; + private final SwarmGenericContainer rabbitMqContainer; private final String exchangeName; private final String routingKey; @@ -68,14 +70,19 @@ public class AmqpRule extends ExternalResource { return amqpUri; } + public void readAll() throws IOException { + while (channel.basicGet(queueName, AUTO_ACK) != null) { + + } + } + public Optional<String> readContent() throws IOException { return readContentAsBytes() .map(value -> new String(value, StandardCharsets.UTF_8)); } public Optional<byte[]> readContentAsBytes() throws IOException { - boolean autoAck = true; - return Optional.ofNullable(channel.basicGet(queueName, autoAck)) + return Optional.ofNullable(channel.basicGet(queueName, AUTO_ACK)) .map(GetResponse::getBody); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
