Use testcontainers for MongoDB samples.

...with some exceptions for samples that require a replica set.

See #632
This commit is contained in:
Christoph Strobl
2021-10-05 12:40:38 +02:00
committed by Greg L. Turnquist
parent 2347077ccf
commit e53d9b5643
60 changed files with 666 additions and 82 deletions

View File

@@ -26,6 +26,12 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
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}.
@@ -35,9 +41,19 @@ import org.springframework.data.domain.Sort;
* @author Christoph Strobl
* @author Divya Srivastava
*/
@Testcontainers
@SpringBootTest
class OrderRepositoryIntegrationTests {
@Container //
private static MongoDBContainer mongoDBContainer = new MongoDBContainer(
DockerImageName.parse("mongo:5.0"));
@DynamicPropertySource
static void setProperties(DynamicPropertyRegistry registry) {
registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
}
@Autowired OrderRepository repository;
private final static LineItem product1 = new LineItem("p1", 1.23);

View File

@@ -37,6 +37,12 @@ import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
import org.springframework.data.mongodb.core.aggregation.BucketAutoOperation.Granularities;
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.
@@ -47,9 +53,19 @@ import org.springframework.data.mongodb.core.query.Query;
* "https://www.googleapis.com/books/v1/volumes?q=intitle:spring+framework">https://www.googleapis.com/books/v1/volumes?q=intitle:spring+framework</a>
* @see <a href="/books.json>books.json</a>
*/
@Testcontainers
@SpringBootTest
class SpringBooksIntegrationTests {
@Container //
private static MongoDBContainer mongoDBContainer = new MongoDBContainer(
DockerImageName.parse("mongo:5.0"));
@DynamicPropertySource
static void setProperties(DynamicPropertyRegistry registry) {
registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
}
@Autowired MongoOperations operations;
@SuppressWarnings("unchecked")