diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 6557b82..6c641d0 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -31,6 +31,7 @@ dependencies { testImplementation("org.springframework.boot:spring-boot-testcontainers") testImplementation("org.testcontainers:junit-jupiter") testImplementation("org.testcontainers:postgresql") + testImplementation("io.rest-assured:rest-assured") } tasks.register("run") { diff --git a/backend/src/test/java/ovh/herisson/Clyde/ClydeApplicationTests.java b/backend/src/test/java/ovh/herisson/Clyde/ClydeApplicationTests.java index 4714cbc..55457c4 100644 --- a/backend/src/test/java/ovh/herisson/Clyde/ClydeApplicationTests.java +++ b/backend/src/test/java/ovh/herisson/Clyde/ClydeApplicationTests.java @@ -1,13 +1,56 @@ package ovh.herisson.Clyde; -import org.junit.jupiter.api.Test; -// import org.springframework.boot.test.context.SpringBootTest; +import static org.assertj.core.api.Assertions.assertThat; -// @SpringBootTest +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +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.web.server.LocalServerPort; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.PostgreSQLContainer; + +import io.restassured.RestAssured; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) class ClydeApplicationTests { + @LocalServerPort + private Integer port; + + static PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:15-alpine"); + + @Autowired + private ClydeApplication controller; + + @BeforeAll + static void beforeAll(){ + postgres.start(); + } + + @AfterAll + static void afterAll() { + postgres.stop(); + } + + @DynamicPropertySource + static void configure(DynamicPropertyRegistry registry) { + registry.add("spring.datasource.url", postgres::getJdbcUrl); + registry.add("spring.datasource.username", postgres::getUsername); + registry.add("spring.datasource.password", postgres::getUsername); + } + + @BeforeEach + void setUp() { + RestAssured.baseURI = "http://localhost:" + port; + } + @Test - void contextLoads() { + void contextLoads() throws Exception { + assertThat(controller).isNotNull(); } }