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

@@ -17,6 +17,12 @@ 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 reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
import rx.RxReactiveStreams;
@@ -37,9 +43,19 @@ import org.springframework.data.mongodb.core.query.Query;
*
* @author Mark Paluch
*/
@Testcontainers
@DataMongoTest
class ReactiveMongoTemplateIntegrationTest {
@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 ReactiveMongoTemplate template;
@BeforeEach

View File

@@ -17,6 +17,12 @@ 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 reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
@@ -37,9 +43,19 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations;
*
* @author Mark Paluch
*/
@Testcontainers
@DataMongoTest
class ReactivePersonRepositoryIntegrationTest {
@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 ReactivePersonRepository repository;
@Autowired ReactiveMongoOperations operations;

View File

@@ -19,6 +19,12 @@ import static org.assertj.core.api.Assertions.*;
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;
@@ -42,9 +48,19 @@ import org.springframework.data.mongodb.core.ReactiveMongoOperations;
* @author Jens Schauder
* @author Christoph Strobl
*/
@Testcontainers
@DataMongoTest
class RxJava2PersonRepositoryIntegrationTest {
@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 RxJava2PersonRepository repository;
@Autowired ReactiveMongoOperations operations;

View File

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