Move Spring Data REST's multi-store example to Testcontainers.

This commit is contained in:
Oliver Drotbohm
2024-08-16 13:01:35 +02:00
parent ad27b23415
commit 3953888426
2 changed files with 26 additions and 4 deletions

View File

@@ -33,11 +33,18 @@
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<!-- Testcontainers -->
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<version>4.16.2</version>
<scope>runtime</scope>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-testcontainers</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>mongodb</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

View File

@@ -24,6 +24,11 @@ import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.context.annotation.Bean;
import org.testcontainers.containers.MongoDBContainer;
import org.testcontainers.utility.DockerImageName;
/**
* Integration test to show the usage of repositories backed by different stores.
@@ -37,6 +42,16 @@ public class ApplicationIntegrationTests {
@Autowired PersonRepository personRepository;
@Autowired TreasureRepository treasureRepository;
@TestConfiguration
static class Infrastructure {
@Bean
@ServiceConnection
MongoDBContainer mongoDBContainer() {
return new MongoDBContainer(DockerImageName.parse("mongodb/mongodb-community-server"));
}
}
@Test
public void useMultipleRepositories() {