diff --git a/pom.xml b/pom.xml index fef0f04..38d28f2 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,21 @@ spring-boot-starter-test test + + org.testcontainers + testcontainers + test + + + org.testcontainers + junit-jupiter + test + + + org.testcontainers + postgresql + test + diff --git a/src/test/java/ch/dlmw/swisssignchallenge/SwisssignChallengeApplicationTests.java b/src/test/java/ch/dlmw/swisssignchallenge/SwisssignChallengeApplicationTests.java index 4ca55ca..463b14b 100644 --- a/src/test/java/ch/dlmw/swisssignchallenge/SwisssignChallengeApplicationTests.java +++ b/src/test/java/ch/dlmw/swisssignchallenge/SwisssignChallengeApplicationTests.java @@ -1,8 +1,11 @@ package ch.dlmw.swisssignchallenge; +import ch.dlmw.swisssignchallenge.config.TestConfig; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +@Import(TestConfig.class) @SpringBootTest class SwisssignChallengeApplicationTests { diff --git a/src/test/java/ch/dlmw/swisssignchallenge/config/TestConfig.java b/src/test/java/ch/dlmw/swisssignchallenge/config/TestConfig.java new file mode 100644 index 0000000..4b29ca3 --- /dev/null +++ b/src/test/java/ch/dlmw/swisssignchallenge/config/TestConfig.java @@ -0,0 +1,30 @@ +package ch.dlmw.swisssignchallenge.config; + +import javax.sql.DataSource; + +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.testcontainers.containers.PostgreSQLContainer; + +@TestConfiguration +public class TestConfig { + private static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer<>("postgres:latest") + .withDatabaseName("testdb") + .withUsername("testuser") + .withPassword("testpass"); + + static { + POSTGRES_CONTAINER.start(); + } + + @Bean + public DataSource dataSource() { + var dataSource = new DriverManagerDataSource(); + dataSource.setUrl(POSTGRES_CONTAINER.getJdbcUrl()); + dataSource.setUsername(POSTGRES_CONTAINER.getUsername()); + dataSource.setPassword(POSTGRES_CONTAINER.getPassword()); + dataSource.setDriverClassName("org.postgresql.Driver"); + return dataSource; + } +}