From 99925ab0b935bb689ad4b5ae3459e186916c9ac8 Mon Sep 17 00:00:00 2001 From: Matthew de Detrich Date: Sun, 27 Mar 2022 03:01:01 +0200 Subject: [PATCH 1/4] Fix incorrect path for RABBITMQ_CONFIG_FILE --- .../containers/RabbitMQContainer.java | 2 +- .../containers/RabbitMQContainerTest.java | 39 ++++++++++++++----- 2 files changed, 31 insertions(+), 10 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 edbffcf3174..37dc2fbe7ca 100644 --- a/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java +++ b/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java @@ -396,7 +396,7 @@ public RabbitMQContainer withRabbitMQConfig(MountableFile rabbitMQConf) { * @return This container. */ public RabbitMQContainer withRabbitMQConfigSysctl(MountableFile rabbitMQConf) { - withEnv("RABBITMQ_CONFIG_FILE", "/etc/rabbitmq/rabbitmq-custom"); + withEnv("RABBITMQ_CONFIG_FILE", "/etc/rabbitmq/rabbitmq-custom.conf"); return withCopyFileToContainer(rabbitMQConf, "/etc/rabbitmq/rabbitmq-custom.conf"); } 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 8be97deb710..acc2ba43c66 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.security.KeyManagementException; import java.security.KeyStore; import java.security.KeyStoreException; @@ -21,6 +22,8 @@ import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import java.util.Collections; +import java.util.Objects; +import java.util.Scanner; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; @@ -115,43 +118,61 @@ public void shouldCreateRabbitMQContainerWithQueues() throws IOException, Interr } @Test - public void shouldMountConfigurationFile() - { + public void shouldMountConfigurationFile() throws IOException, InterruptedException { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { - container.withRabbitMQConfig(MountableFile.forClasspathResource("/rabbitmq-custom.conf")); + final String resourceLocation = "/rabbitmq-custom.conf"; + container.withRabbitMQConfig(MountableFile.forClasspathResource(resourceLocation)); + InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); + Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); + String configContents = s.hasNext() ? s.next() : ""; container.start(); assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.conf"); + assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.conf") + .getStdout() + ).contains(configContents); assertThat(container.getLogs()).doesNotContain(" (not found)"); } } @Test - public void shouldMountConfigurationFileErlang() - { + public void shouldMountConfigurationFileErlang() throws IOException, InterruptedException { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { + final String resourceLocation = "/rabbitmq-custom.config"; + InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); + Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); + String configContents = s.hasNext() ? s.next() : ""; + container.withRabbitMQConfigErlang(MountableFile.forClasspathResource("/rabbitmq-custom.config")); container.start(); assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.config"); + assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.config") + .getStdout() + ).contains(configContents); assertThat(container.getLogs()).doesNotContain(" (not found)"); } } @Test - public void shouldMountConfigurationFileSysctl() - { + public void shouldMountConfigurationFileSysctl() throws IOException, InterruptedException { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { - container.withRabbitMQConfigSysctl(MountableFile.forClasspathResource("/rabbitmq-custom.conf")); + final String resourceLocation = "/rabbitmq-custom.conf"; + container.withRabbitMQConfigSysctl(MountableFile.forClasspathResource(resourceLocation)); + InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); + Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); + String configContents = s.hasNext() ? s.next() : ""; container.start(); assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.conf"); - assertThat(container.getLogs()).doesNotContain(" (not found)"); + assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.conf") + .getStdout() + ).contains(configContents); } } From 2929c62ce26203df3d0a1f36f06fb4291fe4df79 Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Thu, 7 Apr 2022 13:33:08 +0200 Subject: [PATCH 2/4] Change config file tests to check for effect of applied config --- .../containers/RabbitMQContainerTest.java | 17 ++--------------- .../src/test/resources/rabbitmq-custom.conf | 3 +-- .../src/test/resources/rabbitmq-custom.config | 18 +++++++----------- 3 files changed, 10 insertions(+), 28 deletions(-) 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 acc2ba43c66..64741ffd7fa 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -123,16 +123,10 @@ public void shouldMountConfigurationFile() throws IOException, InterruptedExcept final String resourceLocation = "/rabbitmq-custom.conf"; container.withRabbitMQConfig(MountableFile.forClasspathResource(resourceLocation)); - InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); - Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); - String configContents = s.hasNext() ? s.next() : ""; container.start(); assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.conf"); - assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.conf") - .getStdout() - ).contains(configContents); - assertThat(container.getLogs()).doesNotContain(" (not found)"); + assertThat(container.getLogs()).contains("debug"); // config file changes log level to `debug` } } @@ -142,18 +136,11 @@ public void shouldMountConfigurationFileErlang() throws IOException, Interrupted try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { final String resourceLocation = "/rabbitmq-custom.config"; - InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); - Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); - String configContents = s.hasNext() ? s.next() : ""; container.withRabbitMQConfigErlang(MountableFile.forClasspathResource("/rabbitmq-custom.config")); container.start(); - assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.config"); - assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.config") - .getStdout() - ).contains(configContents); - assertThat(container.getLogs()).doesNotContain(" (not found)"); + assertThat(container.getLogs()).contains("debug"); // config file changes log level to `debug` } } diff --git a/modules/rabbitmq/src/test/resources/rabbitmq-custom.conf b/modules/rabbitmq/src/test/resources/rabbitmq-custom.conf index 293829a353b..a2994c78602 100644 --- a/modules/rabbitmq/src/test/resources/rabbitmq-custom.conf +++ b/modules/rabbitmq/src/test/resources/rabbitmq-custom.conf @@ -1,2 +1 @@ -loopback_users.guest = false -listeners.tcp.default = 5555 +log.console.level = debug diff --git a/modules/rabbitmq/src/test/resources/rabbitmq-custom.config b/modules/rabbitmq/src/test/resources/rabbitmq-custom.config index a1c581542ce..353a854fc42 100644 --- a/modules/rabbitmq/src/test/resources/rabbitmq-custom.config +++ b/modules/rabbitmq/src/test/resources/rabbitmq-custom.config @@ -1,13 +1,9 @@ [ -{ rabbit, [ -{ loopback_users, [ ] }, - { tcp_listeners, [ 5555 ] }, - { ssl_listeners, [ ] }, - { default_vhost, <<"vhost">> }, - { hipe_compile, false } - ] }, - { rabbitmq_management, [ { listener, [ - { port, 15672 }, - { ssl, false } - ] } ] } +{rabbit, + [ + {log, + [{console, [{level, debug}]}] + } + ] +} ]. From 89dc9f413e01998ee81d81fea5d82fbea937df0d Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Thu, 7 Apr 2022 13:33:33 +0200 Subject: [PATCH 3/4] Add missing default logback, to avoid verbose logs --- .../rabbitmq/src/test/resources/logback-test.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 modules/rabbitmq/src/test/resources/logback-test.xml diff --git a/modules/rabbitmq/src/test/resources/logback-test.xml b/modules/rabbitmq/src/test/resources/logback-test.xml new file mode 100644 index 00000000000..535e406fc13 --- /dev/null +++ b/modules/rabbitmq/src/test/resources/logback-test.xml @@ -0,0 +1,16 @@ + + + + + + %d{HH:mm:ss.SSS} %-5level %logger - %msg%n + + + + + + + + + From b9164fd10e8a55b013540dcc1c3c396b275e94df Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Thu, 7 Apr 2022 13:55:13 +0200 Subject: [PATCH 4/4] Further cleanup of tests --- .../containers/RabbitMQContainerTest.java | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) 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 64741ffd7fa..474d613cb8b 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -118,25 +118,19 @@ public void shouldCreateRabbitMQContainerWithQueues() throws IOException, Interr } @Test - public void shouldMountConfigurationFile() throws IOException, InterruptedException { + public void shouldMountConfigurationFile() { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { - - final String resourceLocation = "/rabbitmq-custom.conf"; - container.withRabbitMQConfig(MountableFile.forClasspathResource(resourceLocation)); + container.withRabbitMQConfig(MountableFile.forClasspathResource("/rabbitmq-custom.conf")); container.start(); - assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.conf"); assertThat(container.getLogs()).contains("debug"); // config file changes log level to `debug` } } @Test - public void shouldMountConfigurationFileErlang() throws IOException, InterruptedException { + public void shouldMountConfigurationFileErlang() { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { - - final String resourceLocation = "/rabbitmq-custom.config"; - container.withRabbitMQConfigErlang(MountableFile.forClasspathResource("/rabbitmq-custom.config")); container.start(); @@ -146,20 +140,12 @@ public void shouldMountConfigurationFileErlang() throws IOException, Interrupted @Test - public void shouldMountConfigurationFileSysctl() throws IOException, InterruptedException { + public void shouldMountConfigurationFileSysctl() { try (RabbitMQContainer container = new RabbitMQContainer(RabbitMQTestImages.RABBITMQ_IMAGE)) { - - final String resourceLocation = "/rabbitmq-custom.conf"; - container.withRabbitMQConfigSysctl(MountableFile.forClasspathResource(resourceLocation)); - InputStream inputStream = this.getClass().getResourceAsStream(resourceLocation); - Scanner s = new Scanner(Objects.requireNonNull(inputStream)).useDelimiter("\\A"); - String configContents = s.hasNext() ? s.next() : ""; + container.withRabbitMQConfigSysctl(MountableFile.forClasspathResource("/rabbitmq-custom.conf")); container.start(); - assertThat(container.getLogs()).contains("config file(s) : /etc/rabbitmq/rabbitmq-custom.conf"); - assertThat(container.execInContainer("cat", "/etc/rabbitmq/rabbitmq-custom.conf") - .getStdout() - ).contains(configContents); + assertThat(container.getLogs()).contains("debug"); // config file changes log level to `debug` } }