Polishing.

Move Testcontainer creation into utility.

See #632
This commit is contained in:
Mark Paluch
2021-10-14 14:47:54 +02:00
committed by Greg L. Turnquist
parent e53d9b5643
commit a73d74a76d
53 changed files with 284 additions and 272 deletions

View File

@@ -14,14 +14,8 @@
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -12,20 +12,6 @@
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
@@ -47,7 +33,9 @@
</goals>
<configuration>
<outputDirectory>target/generated-sources/queries</outputDirectory>
<processor>org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor</processor>
<processor>
org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor
</processor>
<logOnlyOnError>true</logOnlyOnError>
</configuration>
</execution>
@@ -57,4 +45,12 @@
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -14,14 +14,8 @@
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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}. <br />
@@ -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) {

View File

@@ -19,14 +19,8 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -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) {

View File

@@ -14,14 +14,8 @@
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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) {

View File

@@ -34,9 +34,9 @@
</dependency>
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>provided</scope>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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() {

View File

@@ -1,3 +0,0 @@
# Random port for embedded MongoDB
spring.data.mongodb.port=0
spring.mongodb.embedded.version=3.6.0

View File

@@ -39,14 +39,8 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -12,16 +12,11 @@
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -37,6 +37,16 @@
<module>util</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
@@ -60,6 +70,19 @@
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -11,16 +11,11 @@
<artifactId>spring-data-mongodb-query-by-example</artifactId>
<name>Spring Data MongoDB - Query-by-Example (QBE)</name>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -25,16 +25,11 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>

View File

@@ -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) {

View File

@@ -35,14 +35,8 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -12,7 +12,7 @@
<artifactId>spring-data-mongodb-repository-metrics</artifactId>
<name>Spring Data MongoDB 3.1 - Repository Metrics Example</name>
<name>Spring Data MongoDB - Repository Metrics Example</name>
<dependencies>
@@ -28,14 +28,8 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -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) {

View File

@@ -4,7 +4,7 @@
<artifactId>spring-data-mongodb-schema-validation</artifactId>
<name>Spring Data MongoDB 2.1 - Schema &amp; Validation Example</name>
<name>Spring Data MongoDB - Schema &amp; Validation Example</name>
<parent>
<groupId>org.springframework.data.examples</groupId>
@@ -13,17 +13,11 @@
</parent>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -24,14 +24,8 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -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) {

View File

@@ -20,14 +20,8 @@
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
<groupId>org.springframework.data.examples</groupId>
<artifactId>spring-data-mongodb-example-utils</artifactId>
<scope>test</scope>
</dependency>

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -1,5 +1,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -24,10 +25,16 @@
</dependency>
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>provided</scope>
</dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<version>${testcontainers.version}</version>
</dependency>
</dependencies>

View File

@@ -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);
}
}

View File

@@ -39,7 +39,7 @@
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<byte-buddy.version>1.11.14</byte-buddy.version>
<testcontainers.version>1.15.3</testcontainers.version>
<testcontainers.version>1.16.0</testcontainers.version>
<kotlin.version>1.5.0</kotlin.version>
<apt.version>1.1.3</apt.version>
<jvm.enable-preview></jvm.enable-preview>