From abb3ff03777cd5a8f46b7aa9e647eeb570602841 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 27 Jun 2024 14:34:55 +0100 Subject: [PATCH] Combine tests for standard and Bitnami images into single classes Closes gh-41259 --- ...nectionDetailsFactoryIntegrationTests.java | 47 ------------------ ...nectionDetailsFactoryIntegrationTests.java | 9 ++++ ...nectionDetailsFactoryIntegrationTests.java | 48 ------------------- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 39 --------------- ...nectionDetailsFactoryIntegrationTests.java | 42 ---------------- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 47 ------------------ ...nectionDetailsFactoryIntegrationTests.java | 14 +++++- ...nectionDetailsFactoryIntegrationTests.java | 39 --------------- ...nectionDetailsFactoryIntegrationTests.java | 42 ---------------- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 9 ++++ ...nectionDetailsFactoryIntegrationTests.java | 45 ----------------- ...nectionDetailsFactoryIntegrationTests.java | 12 ++++- ...nectionDetailsFactoryIntegrationTests.java | 42 ---------------- ...nectionDetailsFactoryIntegrationTests.java | 42 ---------------- ...nectionDetailsFactoryIntegrationTests.java | 13 +++++ ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 44 ----------------- ...nectionDetailsFactoryIntegrationTests.java | 10 ++++ ...nectionDetailsFactoryIntegrationTests.java | 46 ------------------ ...nectionDetailsFactoryIntegrationTests.java | 12 ++++- 24 files changed, 126 insertions(+), 526 deletions(-) delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java delete mode 100644 spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 9e0bb3c2aa5..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.cassandra; - -import java.util.List; - -import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; -import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails.Node; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration test for {@link CassandraDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class CassandraBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "cassandra-bitnami-compose.yaml", image = TestImage.BITNAMI_CASSANDRA) - void runCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) { - List contactPoints = connectionDetails.getContactPoints(); - assertThat(contactPoints).hasSize(1); - Node node = contactPoints.get(0); - assertThat(node.host()).isNotNull(); - assertThat(node.port()).isGreaterThan(0); - assertThat(connectionDetails.getUsername()).isNull(); - assertThat(connectionDetails.getPassword()).isNull(); - assertThat(connectionDetails.getLocalDatacenter()).isEqualTo("testdc1"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java index 8a62364b53d..90111fc51f5 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/cassandra/CassandraDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -34,6 +34,15 @@ class CassandraDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "cassandra-compose.yaml", image = TestImage.CASSANDRA) void runCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "cassandra-bitnami-compose.yaml", image = TestImage.BITNAMI_CASSANDRA) + void runWithBitnamiImageCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(CassandraConnectionDetails connectionDetails) { List contactPoints = connectionDetails.getContactPoints(); assertThat(contactPoints).hasSize(1); Node node = contactPoints.get(0); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index b2d37c5c351..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.elasticsearch; - -import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; -import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node; -import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails.Node.Protocol; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link ElasticsearchDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class ElasticsearchBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "elasticsearch-bitnami-compose.yaml", image = TestImage.BITNAMI_ELASTICSEARCH) - void runCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { - assertThat(connectionDetails.getUsername()).isEqualTo("elastic"); - assertThat(connectionDetails.getPassword()).isEqualTo("secret"); - assertThat(connectionDetails.getPathPrefix()).isNull(); - assertThat(connectionDetails.getNodes()).hasSize(1); - Node node = connectionDetails.getNodes().get(0); - assertThat(node.hostname()).isNotNull(); - assertThat(node.port()).isGreaterThan(0); - assertThat(node.protocol()).isEqualTo(Protocol.HTTP); - assertThat(node.username()).isEqualTo("elastic"); - assertThat(node.password()).isEqualTo("secret"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java index d49c8d2069b..48f1c0d6b6d 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -30,11 +30,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "elasticsearch-compose.yaml", image = TestImage.ELASTICSEARCH_8) void runCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "elasticsearch-bitnami-compose.yaml", image = TestImage.BITNAMI_ELASTICSEARCH) + void runWithBitnamiImageCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isEqualTo("elastic"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getPathPrefix()).isNull(); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 68715927058..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.mariadb; - -import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link MariaDbJdbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class MariaDbBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB) - void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { - assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); - assertThat(connectionDetails.getPassword()).isEqualTo("secret"); - assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:mariadb://").endsWith("/mydatabase"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 40a401409ce..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.mariadb; - -import io.r2dbc.spi.ConnectionFactoryOptions; - -import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link MariaDbR2dbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class MariaDbBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB) - void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { - ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); - assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mariadb", - "password=REDACTED", "user=myuser"); - assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.PASSWORD)).isEqualTo("secret"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index 289f7d9dcba..70425eb30e7 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -28,11 +28,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mariadb-compose.yaml", image = TestImage.MARIADB) void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB) + void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:mariadb://").endsWith("/mydatabase"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index fc1a29a6101..5e1c85488cb 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mariadb/MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -30,11 +30,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mariadb-compose.yaml", image = TestImage.MARIADB) void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB) + void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) { ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mariadb", "password=REDACTED", "user=myuser"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 88e5a5271e0..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.mongo; - -import com.mongodb.ConnectionString; -import org.junit.jupiter.api.condition.OS; - -import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; -import org.springframework.boot.testsupport.junit.DisabledOnOs; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link MongoDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -@DisabledOnOs(os = { OS.LINUX, OS.MAC }, architecture = "aarch64", disabledReason = "The image has no ARM support") -class MongoBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "mongo-bitnami-compose.yaml", image = TestImage.BITNAMI_MONGODB) - void runCreatesConnectionDetails(MongoConnectionDetails connectionDetails) { - ConnectionString connectionString = connectionDetails.getConnectionString(); - assertThat(connectionString.getCredential().getUserName()).isEqualTo("root"); - assertThat(connectionString.getCredential().getPassword()).isEqualTo("secret".toCharArray()); - assertThat(connectionString.getCredential().getSource()).isEqualTo("admin"); - assertThat(connectionString.getDatabase()).isEqualTo("testdb"); - assertThat(connectionDetails.getGridFs()).isNull(); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java index 833df443003..928637f6dfd 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mongo/MongoDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -17,10 +17,12 @@ package org.springframework.boot.docker.compose.service.connection.mongo; import com.mongodb.ConnectionString; +import org.junit.jupiter.api.condition.OS; import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; import org.springframework.boot.testsupport.container.TestImage; +import org.springframework.boot.testsupport.junit.DisabledOnOs; import static org.assertj.core.api.Assertions.assertThat; @@ -36,11 +38,21 @@ class MongoDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mongo-compose.yaml", image = TestImage.MONGODB) void runCreatesConnectionDetails(MongoConnectionDetails connectionDetails) { + assertConnectionDetailsWithDatabase(connectionDetails, "mydatabase"); + } + + @DisabledOnOs(os = { OS.LINUX, OS.MAC }, architecture = "aarch64", disabledReason = "The image has no ARM support") + @DockerComposeTest(composeFile = "mongo-bitnami-compose.yaml", image = TestImage.BITNAMI_MONGODB) + void runWithBitnamiImageCreatesConnectionDetails(MongoConnectionDetails connectionDetails) { + assertConnectionDetailsWithDatabase(connectionDetails, "testdb"); + } + + private void assertConnectionDetailsWithDatabase(MongoConnectionDetails connectionDetails, String database) { ConnectionString connectionString = connectionDetails.getConnectionString(); assertThat(connectionString.getCredential().getUserName()).isEqualTo("root"); assertThat(connectionString.getCredential().getPassword()).isEqualTo("secret".toCharArray()); assertThat(connectionString.getCredential().getSource()).isEqualTo("admin"); - assertThat(connectionString.getDatabase()).isEqualTo("mydatabase"); + assertThat(connectionString.getDatabase()).isEqualTo(database); assertThat(connectionDetails.getGridFs()).isNull(); } diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 4baf8eaa5ae..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.mysql; - -import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link MySqlJdbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class MySqlBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL) - void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { - assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); - assertThat(connectionDetails.getPassword()).isEqualTo("secret"); - assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:mysql://").endsWith("/mydatabase"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 6f62d775f64..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.mysql; - -import io.r2dbc.spi.ConnectionFactoryOptions; - -import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link MySqlR2dbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class MySqlBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL) - void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { - ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); - assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mysql", - "password=REDACTED", "user=myuser"); - assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.PASSWORD)).isEqualTo("secret"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index b88b06b5d7a..fb8e3aa5138 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -28,11 +28,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mysql-compose.yaml", image = TestImage.MYSQL) void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL) + void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:mysql://").endsWith("/mydatabase"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index 9c4db72615c..536d2759baf 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/mysql/MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -35,6 +35,15 @@ class MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "mysql-compose.yaml", image = TestImage.MYSQL) void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL) + void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) { ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mysql", "password=REDACTED", "user=myuser"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 284070ffa27..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.neo4j; - -import org.neo4j.driver.AuthTokens; -import org.neo4j.driver.Driver; -import org.neo4j.driver.GraphDatabase; - -import org.springframework.boot.autoconfigure.neo4j.Neo4jConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatNoException; - -/** - * Integration tests for {@link Neo4jDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class Neo4jBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "neo4j-bitnami-compose.yaml", image = TestImage.BITNAMI_NEO4J) - void runCreatesConnectionDetailsThatCanAccessNeo4j(Neo4jConnectionDetails connectionDetails) { - assertThat(connectionDetails.getAuthToken()).isEqualTo(AuthTokens.basic("neo4j", "bitnami2")); - try (Driver driver = GraphDatabase.driver(connectionDetails.getUri(), connectionDetails.getAuthToken())) { - assertThatNoException().isThrownBy(driver::verifyConnectivity); - } - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests.java index bbeaf95d7cc..6e86f9f22d8 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/neo4j/Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -31,12 +31,22 @@ import static org.assertj.core.api.Assertions.assertThatNoException; * Integration tests for {@link Neo4jDockerComposeConnectionDetailsFactory}. * * @author Andy Wilkinson + * @author Scott Frederick */ class Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "neo4j-compose.yaml", image = TestImage.NEO4J) void runCreatesConnectionDetailsThatCanAccessNeo4j(Neo4jConnectionDetails connectionDetails) { - assertThat(connectionDetails.getAuthToken()).isEqualTo(AuthTokens.basic("neo4j", "secret")); + assertConnectionDetailsWithPassword(connectionDetails, "secret"); + } + + @DockerComposeTest(composeFile = "neo4j-bitnami-compose.yaml", image = TestImage.BITNAMI_NEO4J) + void runWithBitnamiImageCreatesConnectionDetailsThatCanAccessNeo4j(Neo4jConnectionDetails connectionDetails) { + assertConnectionDetailsWithPassword(connectionDetails, "bitnami2"); + } + + private void assertConnectionDetailsWithPassword(Neo4jConnectionDetails connectionDetails, String password) { + assertThat(connectionDetails.getAuthToken()).isEqualTo(AuthTokens.basic("neo4j", password)); try (Driver driver = GraphDatabase.driver(connectionDetails.getUri(), connectionDetails.getAuthToken())) { assertThatNoException().isThrownBy(driver::verifyConnectivity); } diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 123dc458c83..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.postgres; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link PostgresJdbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class PostgresBitnamiJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @Test - @DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL) - void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { - assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); - assertThat(connectionDetails.getPassword()).isEqualTo("secret"); - assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:postgresql://").endsWith("/mydatabase"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index da6decca025..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.postgres; - -import io.r2dbc.spi.ConnectionFactoryOptions; - -import org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link PostgresR2dbcDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class PostgresBitnamiR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL) - void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { - ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); - assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=postgresql", - "password=REDACTED", "user=myuser"); - assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.PASSWORD)).isEqualTo("secret"); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index c022cad841b..31ae113c413 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -16,6 +16,8 @@ package org.springframework.boot.docker.compose.service.connection.postgres; +import org.junit.jupiter.api.Test; + import org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails; import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; import org.springframework.boot.testsupport.container.TestImage; @@ -28,11 +30,22 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "postgres-compose.yaml", image = TestImage.POSTGRESQL) void runCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @Test + @DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL) + void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getJdbcUrl()).startsWith("jdbc:postgresql://").endsWith("/mydatabase"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java index ef1a9322bcc..2c01091b097 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/postgres/PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -30,11 +30,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "postgres-compose.yaml", image = TestImage.POSTGRESQL) void runCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL) + void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) { ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions(); assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=postgresql", "password=REDACTED", "user=myuser"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index 2bb6851bc13..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.rabbit; - -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails; -import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails.Address; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link RabbitDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class RabbitBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "rabbit-bitnami-compose.yaml", image = TestImage.BITNAMI_RABBITMQ) - void runCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) { - assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); - assertThat(connectionDetails.getPassword()).isEqualTo("secret"); - assertThat(connectionDetails.getVirtualHost()).isEqualTo("/"); - assertThat(connectionDetails.getAddresses()).hasSize(1); - Address address = connectionDetails.getFirstAddress(); - assertThat(address.host()).isNotNull(); - assertThat(address.port()).isGreaterThan(0); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java index b774cff4f81..b6d6e8e7a84 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/rabbit/RabbitDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -29,11 +29,21 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class RabbitDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "rabbit-compose.yaml", image = TestImage.RABBITMQ) void runCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "rabbit-bitnami-compose.yaml", image = TestImage.BITNAMI_RABBITMQ) + void runWithBitnamiImageCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(RabbitConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isEqualTo("myuser"); assertThat(connectionDetails.getPassword()).isEqualTo("secret"); assertThat(connectionDetails.getVirtualHost()).isEqualTo("/"); diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java deleted file mode 100644 index d75bbee215d..00000000000 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012-2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docker.compose.service.connection.redis; - -import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails; -import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails.Standalone; -import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest; -import org.springframework.boot.testsupport.container.TestImage; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration test for {@link RedisDockerComposeConnectionDetailsFactory}. - * - * @author Scott Frederick - */ -class RedisBitnamiDockerComposeConnectionDetailsFactoryIntegrationTests { - - @DockerComposeTest(composeFile = "redis-bitnami-compose.yaml", image = TestImage.BITNAMI_REDIS) - void runCreatesConnectionDetails(RedisConnectionDetails connectionDetails) { - Standalone standalone = connectionDetails.getStandalone(); - assertThat(connectionDetails.getUsername()).isNull(); - assertThat(connectionDetails.getPassword()).isNull(); - assertThat(connectionDetails.getCluster()).isNull(); - assertThat(connectionDetails.getSentinel()).isNull(); - assertThat(standalone).isNotNull(); - assertThat(standalone.getDatabase()).isZero(); - assertThat(standalone.getPort()).isGreaterThan(0); - assertThat(standalone.getHost()).isNotNull(); - } - -} diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java index 1c1a3573123..7c51914f5bc 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/redis/RedisDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -29,16 +29,26 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb + * @author Scott Frederick */ class RedisDockerComposeConnectionDetailsFactoryIntegrationTests { @DockerComposeTest(composeFile = "redis-compose.yaml", image = TestImage.REDIS) void runCreatesConnectionDetails(RedisConnectionDetails connectionDetails) { - Standalone standalone = connectionDetails.getStandalone(); + assertConnectionDetails(connectionDetails); + } + + @DockerComposeTest(composeFile = "redis-bitnami-compose.yaml", image = TestImage.BITNAMI_REDIS) + void runWithBitnamiImageCreatesConnectionDetails(RedisConnectionDetails connectionDetails) { + assertConnectionDetails(connectionDetails); + } + + private void assertConnectionDetails(RedisConnectionDetails connectionDetails) { assertThat(connectionDetails.getUsername()).isNull(); assertThat(connectionDetails.getPassword()).isNull(); assertThat(connectionDetails.getCluster()).isNull(); assertThat(connectionDetails.getSentinel()).isNull(); + Standalone standalone = connectionDetails.getStandalone(); assertThat(standalone).isNotNull(); assertThat(standalone.getDatabase()).isZero(); assertThat(standalone.getPort()).isGreaterThan(0);