From 69998c93e9ea5451d439540cb6fee35508abcab1 Mon Sep 17 00:00:00 2001 From: William Delanoue Date: Sat, 3 Aug 2019 23:35:55 +0200 Subject: [PATCH] closes #1697: add vhost parameter for policies --- .../containers/RabbitMQContainer.java | 9 +++++ .../containers/RabbitMQContainerTest.java | 35 +++++++++++-------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java b/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java index ea25bf629e6..ede111ed2d8 100644 --- a/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java +++ b/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java @@ -263,6 +263,15 @@ public RabbitMQContainer withPolicy(String name, String pattern, Map definition) { + values.add(asList("rabbitmqadmin", "declare", "policy", + "--vhost=" + vhost, + "name=" + name, + "pattern=" + pattern, + "definition=" + toJson(definition))); + return self(); + } + public RabbitMQContainer withPolicy(String name, String pattern, Map definition, int priority, String applyTo) { values.add(asList("rabbitmqadmin", "declare", "policy", "name=" + name, diff --git a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java index bdda594818f..5822e213a82 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -154,21 +154,22 @@ public void shouldStartTheWholeEnchilada() throws IOException, InterruptedExcept { try (RabbitMQContainer container = new RabbitMQContainer()) { container - .withVhost("vhost1") - .withVhostLimit("vhost1", "max-connections", 1) - .withVhost("vhost2", true) - .withExchange("direct-exchange", "direct") - .withExchange("topic-exchange", "topic") - .withQueue("queue1") - .withQueue("queue2", true, false, ImmutableMap.of("x-message-ttl", 1000)) - .withBinding("direct-exchange", "queue1") - .withUser("user1", "password1") - .withUser("user2", "password2", ImmutableSet.of("administrator")) - .withPermission("vhost1", "user1", ".*", ".*", ".*") - .withPolicy("max length policy", "^dog", ImmutableMap.of("max-length", 1), 1, "queues") - .withPolicy("alternate exchange policy", "^direct-exchange", ImmutableMap.of("alternate-exchange", "amq.direct")) - .withOperatorPolicy("operator policy 1", "^queue1", ImmutableMap.of("message-ttl", 1000), 1, "queues") - .withPluginsEnabled("rabbitmq_shovel", "rabbitmq_random_exchange"); + .withVhost("vhost1") + .withVhostLimit("vhost1", "max-connections", 1) + .withVhost("vhost2", true) + .withExchange("direct-exchange", "direct") + .withExchange("topic-exchange", "topic") + .withQueue("queue1") + .withQueue("queue2", true, false, ImmutableMap.of("x-message-ttl", 1000)) + .withBinding("direct-exchange", "queue1") + .withUser("user1", "password1") + .withUser("user2", "password2", ImmutableSet.of("administrator")) + .withPermission("vhost1", "user1", ".*", ".*", ".*") + .withPolicy("max length policy", "^dog", ImmutableMap.of("max-length", 1), 1, "queues") + .withPolicy("alternate exchange policy", "^direct-exchange", ImmutableMap.of("alternate-exchange", "amq.direct")) + .withPolicy("vhost2", "ha-all", ".*", ImmutableMap.of("ha-mode", "all", "ha-sync-mode", "automatic")) + .withOperatorPolicy("operator policy 1", "^queue1", ImmutableMap.of("message-ttl", 1000), 1, "queues") + .withPluginsEnabled("rabbitmq_shovel", "rabbitmq_random_exchange"); container.start(); @@ -192,6 +193,10 @@ public void shouldStartTheWholeEnchilada() throws IOException, InterruptedExcept .getStdout()) .contains("max length policy", "alternate exchange policy"); + assertThat(container.execInContainer("rabbitmqadmin", "list", "policies", "--vhost=vhost2") + .getStdout()) + .contains("ha-all", "ha-sync-mode"); + assertThat(container.execInContainer("rabbitmqadmin", "list", "operator_policies") .getStdout()) .contains("operator policy 1");