From a73d74a76d38c3faa3a3c5d671dfc4c2151bab1e Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 14 Oct 2021 14:47:54 +0200 Subject: [PATCH] Polishing. Move Testcontainer creation into utility. See #632 --- mongodb/aggregation/pom.xml | 10 ++---- .../OrderRepositoryIntegrationTests.java | 7 ++-- .../SpringBooksIntegrationTests.java | 7 ++-- mongodb/example/pom.xml | 26 ++++++-------- .../advanced/AdvancedIntegrationTests.java | 10 +++--- .../CustomerRepositoryIntegrationTest.java | 7 ++-- .../ImmutableEntityIntegrationTest.java | 7 ++-- .../CustomerRepositoryIntegrationTest.java | 7 ++-- .../UnwrappingIntegrationTests.java | 11 +++--- mongodb/fluent-api/pom.xml | 10 ++---- .../mongodb/fluent/FluentMongoApiTests.java | 7 ++-- mongodb/geo-json/pom.xml | 10 ++---- .../mongodb/geojson/StoreRepositoryTests.java | 7 ++-- mongodb/gridfs/pom.xml | 10 ++---- .../mongodb/gridfs/GridFsTests.java | 7 ++-- mongodb/jmolecules/pom.xml | 6 ++-- .../src/main/resources/application.properties | 0 .../mongodb/ApplicationIntegrationTests.java | 16 +++++++++ .../src/test/resources/application.properties | 3 -- mongodb/kotlin/pom.xml | 10 ++---- .../mongodb/people/FlowAndCoroutinesTests.kt | 6 ++-- .../mongodb/people/MongoDslTests.kt | 9 ++--- .../mongodb/people/RepositoryTests.kt | 6 ++-- .../mongodb/people/TemplateTests.kt | 6 ++-- mongodb/linking/pom.xml | 11 ++---- .../mongodb/linking/dbref/DBRefTests.java | 11 +++--- .../docref/jpastyle/JpaStyleDocRefTests.java | 8 +++-- .../docref/query/QueryDocRefTests.java | 8 +++-- .../docref/simple/SimpleDocRefTests.java | 8 +++-- mongodb/pom.xml | 23 ++++++++++++ mongodb/query-by-example/pom.xml | 11 ++---- .../ContactRepositoryIntegrationTests.java | 7 ++-- .../MongoOperationsIntegrationTests.java | 12 +++---- .../UserRepositoryIntegrationTests.java | 8 ++--- mongodb/querydsl/pom.xml | 11 ++---- .../ReactiveCustomerRepositoryTests.java | 18 +++++----- mongodb/reactive/pom.xml | 10 ++---- .../ReactiveMongoTemplateIntegrationTest.java | 16 ++++----- ...activePersonRepositoryIntegrationTest.java | 16 ++++----- ...xJava2PersonRepositoryIntegrationTest.java | 16 ++++----- mongodb/repository-metrics/pom.xml | 12 ++----- .../mongodb/DemoApplicationTests.java | 16 ++++----- mongodb/schema-validation/pom.xml | 18 ++++------ .../schema/DocumentValidationTests.java | 7 ++-- .../mongodb/schema/SchemaQueryTests.java | 7 ++-- mongodb/security/pom.xml | 10 ++---- .../PersonRepositoryIntegrationTest.java | 7 ++-- mongodb/text-search/pom.xml | 10 ++---- .../textsearch/TextSearchRepositoryTests.java | 7 ++-- .../textsearch/TextSearchTemplateTests.java | 7 ++-- mongodb/util/pom.xml | 19 ++++++---- .../mongodb/util/MongoContainers.java | 35 +++++++++++++++++++ pom.xml | 2 +- 53 files changed, 284 insertions(+), 272 deletions(-) delete mode 100644 mongodb/jmolecules/src/main/resources/application.properties delete mode 100644 mongodb/jmolecules/src/test/resources/application.properties create mode 100644 mongodb/util/src/main/java/example/springdata/mongodb/util/MongoContainers.java diff --git a/mongodb/aggregation/pom.xml b/mongodb/aggregation/pom.xml index 40e95f73..cddda036 100644 --- a/mongodb/aggregation/pom.xml +++ b/mongodb/aggregation/pom.xml @@ -14,14 +14,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java index 6d7d72fb..49c4ac63 100644 --- a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java +++ b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/OrderRepositoryIntegrationTests.java @@ -18,6 +18,8 @@ package example.springdata.mongodb.aggregation; import static org.assertj.core.api.Assertions.*; import static org.assertj.core.data.Offset.offset; +import example.springdata.mongodb.util.MongoContainers; + import java.util.Date; import org.junit.jupiter.api.BeforeEach; @@ -28,10 +30,10 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.domain.Sort; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration tests for {@link OrderRepository}. @@ -46,8 +48,7 @@ import org.testcontainers.utility.DockerImageName; class OrderRepositoryIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/SpringBooksIntegrationTests.java b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/SpringBooksIntegrationTests.java index f7510405..a142c20d 100644 --- a/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/SpringBooksIntegrationTests.java +++ b/mongodb/aggregation/src/test/java/example/springdata/mongodb/aggregation/SpringBooksIntegrationTests.java @@ -18,6 +18,8 @@ package example.springdata.mongodb.aggregation; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; +import example.springdata.mongodb.util.MongoContainers; + import java.nio.charset.StandardCharsets; import java.util.List; @@ -39,10 +41,10 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Examples for Spring Books using the MongoDB Aggregation Framework. Data originates from Google's Book search. @@ -58,8 +60,7 @@ import org.testcontainers.utility.DockerImageName; class SpringBooksIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/example/pom.xml b/mongodb/example/pom.xml index 34ff6d48..af43a806 100644 --- a/mongodb/example/pom.xml +++ b/mongodb/example/pom.xml @@ -12,20 +12,6 @@ 2.0.0.BUILD-SNAPSHOT - - - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} - test - - - @@ -47,7 +33,9 @@ target/generated-sources/queries - org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor + + org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor + true @@ -57,4 +45,12 @@ + + + org.springframework.data.examples + spring-data-mongodb-example-utils + test + + + diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java index c31f72ec..1f5562a6 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/advanced/AdvancedIntegrationTests.java @@ -18,6 +18,7 @@ package example.springdata.mongodb.advanced; import static org.assertj.core.api.Assertions.*; import example.springdata.mongodb.customer.Customer; +import example.springdata.mongodb.util.MongoContainers; import org.bson.Document; import org.junit.jupiter.api.BeforeEach; @@ -28,14 +29,14 @@ import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Meta; - -import com.mongodb.BasicDBObject; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; + +import com.mongodb.BasicDBObject; /** * @author Christoph Strobl @@ -46,8 +47,7 @@ import org.testcontainers.utility.DockerImageName; class AdvancedIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java b/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java index 681a44de..4d1e370b 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/customer/CustomerRepositoryIntegrationTest.java @@ -18,6 +18,8 @@ package example.springdata.mongodb.customer; import static org.assertj.core.api.Assertions.*; import static org.assertj.core.data.Offset.offset; +import example.springdata.mongodb.util.MongoContainers; + import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; @@ -33,10 +35,10 @@ import org.springframework.data.mongodb.core.index.GeospatialIndex; import org.springframework.data.querydsl.QSort; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test for {@link CustomerRepository}. @@ -48,8 +50,7 @@ import org.testcontainers.utility.DockerImageName; class CustomerRepositoryIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/immutable/ImmutableEntityIntegrationTest.java b/mongodb/example/src/test/java/example/springdata/mongodb/immutable/ImmutableEntityIntegrationTest.java index 064f8c4f..ae048b59 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/immutable/ImmutableEntityIntegrationTest.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/immutable/ImmutableEntityIntegrationTest.java @@ -17,6 +17,8 @@ package example.springdata.mongodb.immutable; import static org.assertj.core.api.Assertions.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -25,10 +27,10 @@ import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test for {@link ImmutablePerson} showing features around immutable object support. @@ -41,8 +43,7 @@ import org.testcontainers.utility.DockerImageName; class ImmutableEntityIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/projections/CustomerRepositoryIntegrationTest.java b/mongodb/example/src/test/java/example/springdata/mongodb/projections/CustomerRepositoryIntegrationTest.java index cf1c43cc..f3f8f634 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/projections/CustomerRepositoryIntegrationTest.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/projections/CustomerRepositoryIntegrationTest.java @@ -17,6 +17,8 @@ package example.springdata.mongodb.projections; import static org.assertj.core.api.Assertions.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -30,10 +32,10 @@ import org.springframework.data.domain.Sort.Direction; import org.springframework.data.projection.TargetAware; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration tests for {@link CustomerRepository} to show projection capabilities. @@ -45,8 +47,7 @@ import org.testcontainers.utility.DockerImageName; class CustomerRepositoryIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/example/src/test/java/example/springdata/mongodb/unwrapping/UnwrappingIntegrationTests.java b/mongodb/example/src/test/java/example/springdata/mongodb/unwrapping/UnwrappingIntegrationTests.java index a5b34871..9d9dcfb4 100644 --- a/mongodb/example/src/test/java/example/springdata/mongodb/unwrapping/UnwrappingIntegrationTests.java +++ b/mongodb/example/src/test/java/example/springdata/mongodb/unwrapping/UnwrappingIntegrationTests.java @@ -17,6 +17,8 @@ package example.springdata.mongodb.unwrapping; import static org.assertj.core.api.Assertions.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.Arrays; import org.bson.Document; @@ -26,14 +28,14 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; - -import com.mongodb.client.model.Filters; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; + +import com.mongodb.client.model.Filters; /** * Integration tests showing unwrapped/embedded document usage. @@ -45,8 +47,7 @@ import org.testcontainers.utility.DockerImageName; class UnwrappingIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/fluent-api/pom.xml b/mongodb/fluent-api/pom.xml index d6caf099..ee3cddf9 100644 --- a/mongodb/fluent-api/pom.xml +++ b/mongodb/fluent-api/pom.xml @@ -14,14 +14,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/fluent-api/src/test/java/example/springdata/mongodb/fluent/FluentMongoApiTests.java b/mongodb/fluent-api/src/test/java/example/springdata/mongodb/fluent/FluentMongoApiTests.java index 23d38ec7..2d835fbd 100644 --- a/mongodb/fluent-api/src/test/java/example/springdata/mongodb/fluent/FluentMongoApiTests.java +++ b/mongodb/fluent-api/src/test/java/example/springdata/mongodb/fluent/FluentMongoApiTests.java @@ -21,6 +21,8 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; import static org.springframework.data.mongodb.core.query.Update.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -37,10 +39,10 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Some tests showing usage and capabilities of {@link FluentMongoOperations}.
@@ -61,8 +63,7 @@ import org.testcontainers.utility.DockerImageName; class FluentMongoApiTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/geo-json/pom.xml b/mongodb/geo-json/pom.xml index 8b89326c..ec8e3940 100644 --- a/mongodb/geo-json/pom.xml +++ b/mongodb/geo-json/pom.xml @@ -19,14 +19,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java b/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java index 6a0533dc..eed0f93e 100644 --- a/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java +++ b/mongodb/geo-json/src/test/java/example/springdata/mongodb/geojson/StoreRepositoryTests.java @@ -15,6 +15,8 @@ */ package example.springdata.mongodb.geojson; +import example.springdata.mongodb.util.MongoContainers; + import org.bson.Document; import org.junit.jupiter.api.Test; @@ -30,10 +32,10 @@ import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration tests for {@link StoreRepository}. @@ -46,8 +48,7 @@ import org.testcontainers.utility.DockerImageName; class StoreRepositoryTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/gridfs/pom.xml b/mongodb/gridfs/pom.xml index a3cdd6b8..03b2a8e6 100644 --- a/mongodb/gridfs/pom.xml +++ b/mongodb/gridfs/pom.xml @@ -14,14 +14,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/gridfs/src/test/java/example/springdata/mongodb/gridfs/GridFsTests.java b/mongodb/gridfs/src/test/java/example/springdata/mongodb/gridfs/GridFsTests.java index b8319c15..522c14cd 100644 --- a/mongodb/gridfs/src/test/java/example/springdata/mongodb/gridfs/GridFsTests.java +++ b/mongodb/gridfs/src/test/java/example/springdata/mongodb/gridfs/GridFsTests.java @@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Query.*; import static org.springframework.data.mongodb.gridfs.GridFsCriteria.*; +import example.springdata.mongodb.util.MongoContainers; + import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -35,10 +37,10 @@ import org.springframework.data.mongodb.gridfs.GridFsOperations; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.springframework.util.StreamUtils; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Tests to show the usage of {@link GridFsOperations} with Spring Data MongoDB. @@ -51,8 +53,7 @@ import org.testcontainers.utility.DockerImageName; class GridFsTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/jmolecules/pom.xml b/mongodb/jmolecules/pom.xml index 4771711e..d2bf5074 100644 --- a/mongodb/jmolecules/pom.xml +++ b/mongodb/jmolecules/pom.xml @@ -34,9 +34,9 @@ - de.flapdoodle.embed - de.flapdoodle.embed.mongo - provided + org.springframework.data.examples + spring-data-mongodb-example-utils + test diff --git a/mongodb/jmolecules/src/main/resources/application.properties b/mongodb/jmolecules/src/main/resources/application.properties deleted file mode 100644 index e69de29b..00000000 diff --git a/mongodb/jmolecules/src/test/java/example/springdata/mongodb/ApplicationIntegrationTests.java b/mongodb/jmolecules/src/test/java/example/springdata/mongodb/ApplicationIntegrationTests.java index f3b6747f..302e712d 100644 --- a/mongodb/jmolecules/src/test/java/example/springdata/mongodb/ApplicationIntegrationTests.java +++ b/mongodb/jmolecules/src/test/java/example/springdata/mongodb/ApplicationIntegrationTests.java @@ -22,6 +22,7 @@ import example.springdata.mongodb.customer.Customer; import example.springdata.mongodb.customer.Customers; import example.springdata.mongodb.order.Order; import example.springdata.mongodb.order.Orders; +import example.springdata.mongodb.util.MongoContainers; import lombok.RequiredArgsConstructor; import org.junit.jupiter.api.Test; @@ -29,16 +30,31 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * @author Oliver Drotbohm */ @DataMongoTest @RequiredArgsConstructor +@Testcontainers class ApplicationIntegrationTests { private final ConfigurableApplicationContext context; + @Container // + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); + + @DynamicPropertySource + static void setProperties(DynamicPropertyRegistry registry) { + registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl); + } + @Test void exposesAssociationInMetamodel() { diff --git a/mongodb/jmolecules/src/test/resources/application.properties b/mongodb/jmolecules/src/test/resources/application.properties deleted file mode 100644 index 2a85020f..00000000 --- a/mongodb/jmolecules/src/test/resources/application.properties +++ /dev/null @@ -1,3 +0,0 @@ -# Random port for embedded MongoDB -spring.data.mongodb.port=0 -spring.mongodb.embedded.version=3.6.0 diff --git a/mongodb/kotlin/pom.xml b/mongodb/kotlin/pom.xml index a20c50c4..a4252044 100644 --- a/mongodb/kotlin/pom.xml +++ b/mongodb/kotlin/pom.xml @@ -39,14 +39,8 @@ test - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/FlowAndCoroutinesTests.kt b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/FlowAndCoroutinesTests.kt index a1e38b63..9da28ae5 100644 --- a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/FlowAndCoroutinesTests.kt +++ b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/FlowAndCoroutinesTests.kt @@ -15,6 +15,7 @@ */ package example.springdata.mongodb.people +import example.springdata.mongodb.util.MongoContainers import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.toList import kotlinx.coroutines.reactive.asFlow @@ -31,10 +32,8 @@ import org.springframework.data.mongodb.core.query.Query import org.springframework.data.mongodb.core.query.isEqualTo import org.springframework.test.context.DynamicPropertyRegistry import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.MongoDBContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import org.testcontainers.utility.DockerImageName import reactor.test.StepVerifier /** @@ -48,8 +47,7 @@ class FlowAndCoroutinesTests { companion object { @Container // - private val mongoDBContainer = MongoDBContainer( - DockerImageName.parse("mongo:5.0")) + private val mongoDBContainer = MongoContainers.getDefaultContainer() @JvmStatic @DynamicPropertySource diff --git a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/MongoDslTests.kt b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/MongoDslTests.kt index 86f56a96..55b2e06b 100644 --- a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/MongoDslTests.kt +++ b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/MongoDslTests.kt @@ -15,13 +15,12 @@ */ package example.springdata.mongodb.people; +import example.springdata.mongodb.util.MongoContainers import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -import org.junit.runner.RunWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest -import org.springframework.boot.test.context.SpringBootTest import org.springframework.data.mongodb.core.MongoOperations import org.springframework.data.mongodb.core.dropCollection import org.springframework.data.mongodb.core.find @@ -32,11 +31,8 @@ import org.springframework.data.mongodb.core.query.isEqualTo import org.springframework.data.mongodb.core.query.regex import org.springframework.test.context.DynamicPropertyRegistry import org.springframework.test.context.DynamicPropertySource -import org.springframework.test.context.junit4.SpringRunner -import org.testcontainers.containers.MongoDBContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import org.testcontainers.utility.DockerImageName /** * Tests showing the Mongo Criteria DSL. @@ -49,8 +45,7 @@ class MongoDslTests { companion object { @Container // - private val mongoDBContainer = MongoDBContainer( - DockerImageName.parse("mongo:5.0")) + private val mongoDBContainer = MongoContainers.getDefaultContainer() @JvmStatic @DynamicPropertySource diff --git a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/RepositoryTests.kt b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/RepositoryTests.kt index ee5db181..2b854913 100644 --- a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/RepositoryTests.kt +++ b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/RepositoryTests.kt @@ -15,6 +15,7 @@ */ package example.springdata.mongodb.people +import example.springdata.mongodb.util.MongoContainers import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatThrownBy import org.junit.jupiter.api.BeforeEach @@ -24,10 +25,8 @@ import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest import org.springframework.dao.EmptyResultDataAccessException import org.springframework.test.context.DynamicPropertyRegistry import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.MongoDBContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import org.testcontainers.utility.DockerImageName /** * Tests showing Kotlin usage of Spring Data Repositories. @@ -40,8 +39,7 @@ class RepositoryTests { companion object { @Container // - private val mongoDBContainer = MongoDBContainer( - DockerImageName.parse("mongo:5.0")) + private val mongoDBContainer = MongoContainers.getDefaultContainer() @JvmStatic @DynamicPropertySource diff --git a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/TemplateTests.kt b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/TemplateTests.kt index 73cc2c48..f8a1dee9 100644 --- a/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/TemplateTests.kt +++ b/mongodb/kotlin/src/test/kotlin/example/springdata/mongodb/people/TemplateTests.kt @@ -15,6 +15,7 @@ */ package example.springdata.mongodb.people +import example.springdata.mongodb.util.MongoContainers import org.assertj.core.api.Assertions.assertThat import org.bson.Document import org.junit.jupiter.api.BeforeEach @@ -27,10 +28,8 @@ import org.springframework.data.mongodb.core.query.Query.query import org.springframework.data.mongodb.core.query.isEqualTo import org.springframework.test.context.DynamicPropertyRegistry import org.springframework.test.context.DynamicPropertySource -import org.testcontainers.containers.MongoDBContainer import org.testcontainers.junit.jupiter.Container import org.testcontainers.junit.jupiter.Testcontainers -import org.testcontainers.utility.DockerImageName /** * Tests showing Kotlin usage of [MongoTemplate] and its Kotlin extensions. @@ -43,8 +42,7 @@ class TemplateTests { companion object { @Container // - private val mongoDBContainer = MongoDBContainer( - DockerImageName.parse("mongo:5.0")) + private val mongoDBContainer = MongoContainers.getDefaultContainer() @JvmStatic @DynamicPropertySource diff --git a/mongodb/linking/pom.xml b/mongodb/linking/pom.xml index 36ca0528..d40feb1e 100644 --- a/mongodb/linking/pom.xml +++ b/mongodb/linking/pom.xml @@ -12,16 +12,11 @@ 2.0.0.BUILD-SNAPSHOT + - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/dbref/DBRefTests.java b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/dbref/DBRefTests.java index c19f2428..e9896d70 100644 --- a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/dbref/DBRefTests.java +++ b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/dbref/DBRefTests.java @@ -18,21 +18,25 @@ package example.springdata.mongodb.linking.dbref; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.List; -import com.mongodb.DBRef; import org.bson.Document; import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Update; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; + +import com.mongodb.DBRef; /** * @author Christoph Strobl @@ -42,8 +46,7 @@ import org.testcontainers.utility.DockerImageName; public class DBRefTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/jpastyle/JpaStyleDocRefTests.java b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/jpastyle/JpaStyleDocRefTests.java index d98c86d6..fdc1ea5f 100644 --- a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/jpastyle/JpaStyleDocRefTests.java +++ b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/jpastyle/JpaStyleDocRefTests.java @@ -18,17 +18,20 @@ package example.springdata.mongodb.linking.docref.jpastyle; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; +import example.springdata.mongodb.util.MongoContainers; + import org.bson.Document; import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -38,8 +41,7 @@ import org.testcontainers.utility.DockerImageName; public class JpaStyleDocRefTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/query/QueryDocRefTests.java b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/query/QueryDocRefTests.java index 7e14e0b5..57d0c02b 100644 --- a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/query/QueryDocRefTests.java +++ b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/query/QueryDocRefTests.java @@ -18,20 +18,23 @@ package example.springdata.mongodb.linking.docref.query; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.List; import org.bson.Document; import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Update; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -41,8 +44,7 @@ import org.testcontainers.utility.DockerImageName; public class QueryDocRefTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/simple/SimpleDocRefTests.java b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/simple/SimpleDocRefTests.java index e1663f20..3ad64959 100644 --- a/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/simple/SimpleDocRefTests.java +++ b/mongodb/linking/src/test/java/example/springdata/mongodb/linking/docref/simple/SimpleDocRefTests.java @@ -18,20 +18,23 @@ package example.springdata.mongodb.linking.docref.simple; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.List; import org.bson.Document; import org.junit.jupiter.api.Test; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Update; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -41,8 +44,7 @@ import org.testcontainers.utility.DockerImageName; public class SimpleDocRefTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/pom.xml b/mongodb/pom.xml index 2ca90459..3e51c5d9 100644 --- a/mongodb/pom.xml +++ b/mongodb/pom.xml @@ -37,6 +37,16 @@ util + + + + org.springframework.data.examples + spring-data-mongodb-example-utils + ${project.version} + + + + @@ -60,6 +70,19 @@ spring-boot-starter + + org.testcontainers + junit-jupiter + test + + + + org.testcontainers + mongodb + ${testcontainers.version} + test + + diff --git a/mongodb/query-by-example/pom.xml b/mongodb/query-by-example/pom.xml index 32db118e..646b7175 100644 --- a/mongodb/query-by-example/pom.xml +++ b/mongodb/query-by-example/pom.xml @@ -11,16 +11,11 @@ spring-data-mongodb-query-by-example Spring Data MongoDB - Query-by-Example (QBE) + - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/ContactRepositoryIntegrationTests.java b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/ContactRepositoryIntegrationTests.java index a8ec34a6..a55a0980 100644 --- a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/ContactRepositoryIntegrationTests.java +++ b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/ContactRepositoryIntegrationTests.java @@ -18,6 +18,8 @@ package example.springdata.mongodb.querybyexample; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.domain.ExampleMatcher.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -27,10 +29,10 @@ import org.springframework.data.domain.Example; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test showing the usage of MongoDB Query-by-Example support through Spring Data repositories for a case @@ -45,8 +47,7 @@ import org.testcontainers.utility.DockerImageName; class ContactRepositoryIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/MongoOperationsIntegrationTests.java b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/MongoOperationsIntegrationTests.java index 76c9acf7..e9eed703 100644 --- a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/MongoOperationsIntegrationTests.java +++ b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/MongoOperationsIntegrationTests.java @@ -16,13 +16,14 @@ package example.springdata.mongodb.querybyexample; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import static org.springframework.data.domain.ExampleMatcher.*; import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.*; -import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith; import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -31,15 +32,15 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.domain.Example; -import org.springframework.data.domain.ExampleMatcher.StringMatcher; +import org.springframework.data.domain.ExampleMatcher.*; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.query.Query; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test showing the usage of MongoDB Query-by-Example support through Spring Data repositories. @@ -53,8 +54,7 @@ import org.testcontainers.utility.DockerImageName; class MongoOperationsIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/UserRepositoryIntegrationTests.java b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/UserRepositoryIntegrationTests.java index cb4a58d5..908a9a7a 100644 --- a/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/UserRepositoryIntegrationTests.java +++ b/mongodb/query-by-example/src/test/java/example/springdata/mongodb/querybyexample/UserRepositoryIntegrationTests.java @@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.domain.ExampleMatcher.*; import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.Optional; import org.junit.jupiter.api.BeforeEach; @@ -27,13 +29,12 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.domain.Example; -import org.springframework.data.domain.ExampleMatcher.*; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test showing the usage of MongoDB Query-by-Example support through Spring Data repositories. @@ -48,8 +49,7 @@ import org.testcontainers.utility.DockerImageName; class UserRepositoryIntegrationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/querydsl/pom.xml b/mongodb/querydsl/pom.xml index 7c6a6ecc..d32b6c96 100644 --- a/mongodb/querydsl/pom.xml +++ b/mongodb/querydsl/pom.xml @@ -25,16 +25,11 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test + diff --git a/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java b/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java index b37e026b..517c2a1f 100644 --- a/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java +++ b/mongodb/querydsl/src/test/java/example/springdata/mongodb/reactive/ReactiveCustomerRepositoryTests.java @@ -19,22 +19,23 @@ import static org.assertj.core.api.Assertions.*; import example.springdata.mongodb.Customer; import example.springdata.mongodb.QCustomer; -import org.junit.jupiter.api.Test; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; +import example.springdata.mongodb.util.MongoContainers; import reactor.test.StepVerifier; import java.util.Arrays; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.MongoOperations; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * @author Christoph Strobl @@ -44,8 +45,7 @@ import org.springframework.data.mongodb.core.MongoOperations; class ReactiveCustomerRepositoryTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/reactive/pom.xml b/mongodb/reactive/pom.xml index 50b775da..f8ebbd0d 100644 --- a/mongodb/reactive/pom.xml +++ b/mongodb/reactive/pom.xml @@ -35,14 +35,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactiveMongoTemplateIntegrationTest.java b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactiveMongoTemplateIntegrationTest.java index 7d589f73..0867e431 100644 --- a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactiveMongoTemplateIntegrationTest.java +++ b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactiveMongoTemplateIntegrationTest.java @@ -17,12 +17,7 @@ package example.springdata.mongodb.people; import static org.assertj.core.api.Assertions.*; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; +import example.springdata.mongodb.util.MongoContainers; import reactor.core.publisher.Flux; import reactor.test.StepVerifier; import rx.RxReactiveStreams; @@ -37,6 +32,12 @@ import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * Integration test for {@link ReactiveMongoTemplate}. @@ -48,8 +49,7 @@ import org.springframework.data.mongodb.core.query.Query; class ReactiveMongoTemplateIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactivePersonRepositoryIntegrationTest.java b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactivePersonRepositoryIntegrationTest.java index 564f87a7..7224a1f1 100644 --- a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactivePersonRepositoryIntegrationTest.java +++ b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/ReactivePersonRepositoryIntegrationTest.java @@ -17,12 +17,7 @@ package example.springdata.mongodb.people; import static org.assertj.core.api.Assertions.*; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; +import example.springdata.mongodb.util.MongoContainers; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -37,6 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.CollectionOptions; import org.springframework.data.mongodb.core.ReactiveMongoOperations; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * Integration test for {@link ReactivePersonRepository} using Project Reactor types and operators. @@ -48,8 +49,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations; class ReactivePersonRepositoryIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/RxJava2PersonRepositoryIntegrationTest.java b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/RxJava2PersonRepositoryIntegrationTest.java index 72a22159..27ca12b0 100644 --- a/mongodb/reactive/src/test/java/example/springdata/mongodb/people/RxJava2PersonRepositoryIntegrationTest.java +++ b/mongodb/reactive/src/test/java/example/springdata/mongodb/people/RxJava2PersonRepositoryIntegrationTest.java @@ -17,14 +17,9 @@ package example.springdata.mongodb.people; import static org.assertj.core.api.Assertions.*; +import example.springdata.mongodb.util.MongoContainers; import io.reactivex.Flowable; import io.reactivex.Single; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -38,6 +33,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.data.mongodb.core.CollectionOptions; import org.springframework.data.mongodb.core.ReactiveMongoOperations; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * Integration test for {@link RxJava2PersonRepository} using RxJava2 types. Note that {@link ReactiveMongoOperations} @@ -53,8 +54,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations; class RxJava2PersonRepositoryIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/repository-metrics/pom.xml b/mongodb/repository-metrics/pom.xml index 3514f645..9c2fac01 100644 --- a/mongodb/repository-metrics/pom.xml +++ b/mongodb/repository-metrics/pom.xml @@ -12,7 +12,7 @@ spring-data-mongodb-repository-metrics - Spring Data MongoDB 3.1 - Repository Metrics Example + Spring Data MongoDB - Repository Metrics Example @@ -28,14 +28,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/repository-metrics/src/test/java/example/springdata/mongodb/DemoApplicationTests.java b/mongodb/repository-metrics/src/test/java/example/springdata/mongodb/DemoApplicationTests.java index 339ab782..9a55cc55 100644 --- a/mongodb/repository-metrics/src/test/java/example/springdata/mongodb/DemoApplicationTests.java +++ b/mongodb/repository-metrics/src/test/java/example/springdata/mongodb/DemoApplicationTests.java @@ -15,12 +15,7 @@ */ package example.springdata.mongodb; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MongoDBContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; +import example.springdata.mongodb.util.MongoContainers; import reactor.test.StepVerifier; import java.time.Duration; @@ -29,6 +24,12 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** * Integration tests showing {@link org.springframework.data.repository.core.support.RepositoryMethodInvocationListener} @@ -41,8 +42,7 @@ import org.springframework.boot.test.context.SpringBootTest; class DemoApplicationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/schema-validation/pom.xml b/mongodb/schema-validation/pom.xml index 3531f59c..deb2a5d1 100644 --- a/mongodb/schema-validation/pom.xml +++ b/mongodb/schema-validation/pom.xml @@ -4,7 +4,7 @@ spring-data-mongodb-schema-validation - Spring Data MongoDB 2.1 - Schema & Validation Example + Spring Data MongoDB - Schema & Validation Example org.springframework.data.examples @@ -13,17 +13,11 @@ - - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} - test - + + org.springframework.data.examples + spring-data-mongodb-example-utils + test + diff --git a/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/DocumentValidationTests.java b/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/DocumentValidationTests.java index dc7076d2..a71e7661 100644 --- a/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/DocumentValidationTests.java +++ b/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/DocumentValidationTests.java @@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.*; import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.schema.JsonSchemaProperty.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -31,10 +33,10 @@ import org.springframework.data.mongodb.core.schema.MongoJsonSchema; import org.springframework.data.mongodb.core.validation.Validator; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -44,8 +46,7 @@ import org.testcontainers.utility.DockerImageName; class DocumentValidationTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/SchemaQueryTests.java b/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/SchemaQueryTests.java index 28c40cfa..a0dc9119 100644 --- a/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/SchemaQueryTests.java +++ b/mongodb/schema-validation/src/test/java/example/springdata/mongodb/schema/SchemaQueryTests.java @@ -20,6 +20,8 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; import static org.springframework.data.mongodb.core.schema.JsonSchemaProperty.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -29,10 +31,10 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.schema.MongoJsonSchema; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -42,8 +44,7 @@ import org.testcontainers.utility.DockerImageName; class SchemaQueryTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/security/pom.xml b/mongodb/security/pom.xml index 6fee76cf..718af0ff 100644 --- a/mongodb/security/pom.xml +++ b/mongodb/security/pom.xml @@ -24,14 +24,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java b/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java index bd04a227..1fcbf902 100644 --- a/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java +++ b/mongodb/security/src/test/java/example/springdata/mongodb/security/PersonRepositoryIntegrationTest.java @@ -17,6 +17,8 @@ package example.springdata.mongodb.security; import static org.assertj.core.api.Assertions.*; +import example.springdata.mongodb.util.MongoContainers; + import java.util.Collections; import org.junit.jupiter.api.BeforeEach; @@ -29,10 +31,10 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration test for {@link PersonRepository}. @@ -45,8 +47,7 @@ import org.testcontainers.utility.DockerImageName; class PersonRepositoryIntegrationTest { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/text-search/pom.xml b/mongodb/text-search/pom.xml index 500d9f52..39da8dcf 100644 --- a/mongodb/text-search/pom.xml +++ b/mongodb/text-search/pom.xml @@ -20,14 +20,8 @@ - org.testcontainers - junit-jupiter - test - - - org.testcontainers - mongodb - ${testcontainers.version} + org.springframework.data.examples + spring-data-mongodb-example-utils test diff --git a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java index a6a9dbfd..2174f048 100644 --- a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java +++ b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchRepositoryTests.java @@ -17,6 +17,8 @@ package example.springdata.mongodb.textsearch; import static example.springdata.mongodb.util.ConsoleResultPrinter.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -25,10 +27,10 @@ import org.springframework.data.mongodb.core.mapping.TextScore; import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * Integration tests showing the text search functionality using repositories. @@ -42,8 +44,7 @@ import org.testcontainers.utility.DockerImageName; class TextSearchRepositoryTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java index 88236862..a72d64cb 100644 --- a/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java +++ b/mongodb/text-search/src/test/java/example/springdata/mongodb/textsearch/TextSearchTemplateTests.java @@ -18,6 +18,8 @@ package example.springdata.mongodb.textsearch; import static example.springdata.mongodb.util.ConsoleResultPrinter.*; import static org.springframework.data.mongodb.core.query.Query.*; +import example.springdata.mongodb.util.MongoContainers; + import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -27,10 +29,10 @@ import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.data.mongodb.core.query.TextQuery; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; + import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; /** * @author Christoph Strobl @@ -41,8 +43,7 @@ import org.testcontainers.utility.DockerImageName; class TextSearchTemplateTests { @Container // - private static MongoDBContainer mongoDBContainer = new MongoDBContainer( - DockerImageName.parse("mongo:5.0")); + private static MongoDBContainer mongoDBContainer = MongoContainers.getDefaultContainer(); @DynamicPropertySource static void setProperties(DynamicPropertyRegistry registry) { diff --git a/mongodb/util/pom.xml b/mongodb/util/pom.xml index 3a1cb5f1..34222d2a 100644 --- a/mongodb/util/pom.xml +++ b/mongodb/util/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 @@ -24,10 +25,16 @@ - de.flapdoodle.embed - de.flapdoodle.embed.mongo - provided - + de.flapdoodle.embed + de.flapdoodle.embed.mongo + provided + + + + org.testcontainers + mongodb + ${testcontainers.version} + diff --git a/mongodb/util/src/main/java/example/springdata/mongodb/util/MongoContainers.java b/mongodb/util/src/main/java/example/springdata/mongodb/util/MongoContainers.java new file mode 100644 index 00000000..d4592203 --- /dev/null +++ b/mongodb/util/src/main/java/example/springdata/mongodb/util/MongoContainers.java @@ -0,0 +1,35 @@ +/* + * Copyright 2021 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 + * + * http://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 example.springdata.mongodb.util; + +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.utility.DockerImageName; + +/** + * Utility methods to create a {@link MongoDBContainer}. + * + * @author Mark Paluch + */ +public class MongoContainers { + + private static final String IMAGE_NAME = "mongo:5.0"; + private static final String IMAGE_NAME_PROPERTY = "mongo.default.image.name"; + + public static MongoDBContainer getDefaultContainer() { + return new MongoDBContainer(DockerImageName.parse(System.getProperty(IMAGE_NAME_PROPERTY, IMAGE_NAME))) + .withReuse(true); + } +} diff --git a/pom.xml b/pom.xml index 3c5140d1..ebb86e37 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ 16 16 1.11.14 - 1.15.3 + 1.16.0 1.5.0 1.1.3