From 9c9a30fe17a724f93fab28504157077017c765e1 Mon Sep 17 00:00:00 2001 From: sarajaned Date: Wed, 9 Aug 2023 17:27:25 +0100 Subject: [PATCH] SD/feat/#55 removed by mistake --- .../AbstractTestcontainers.java | 37 +++++++++++++++++++ .../onlinebookstore/TestcontainersTest.java | 15 ++++++++ .../author/AuthorRepositoryTest.java | 6 +-- .../book/BookRepositoryTest.java | 5 +-- .../category/CategoryRepositoryTest.java | 5 +-- .../user/UserRepositoryTest.java | 5 +-- 6 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/AbstractTestcontainers.java create mode 100644 online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/TestcontainersTest.java diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/AbstractTestcontainers.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/AbstractTestcontainers.java new file mode 100644 index 0000000..9f0799f --- /dev/null +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/AbstractTestcontainers.java @@ -0,0 +1,37 @@ +package com.amigoscode.cohort2d.onlinebookstore; + +import org.flywaydb.core.Flyway; +import org.junit.jupiter.api.BeforeAll; +import org.springframework.test.context.ActiveProfiles; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + + +@Testcontainers +@ActiveProfiles("test") +public abstract class AbstractTestcontainers { + + @BeforeAll + static void beforeAll() { + Flyway flyway = Flyway + .configure() + .dataSource( + postgreSQLContainer.getJdbcUrl(), + postgreSQLContainer.getUsername(), + postgreSQLContainer.getPassword() + ).load(); + flyway.migrate(); + } + + + @Container + protected static final PostgreSQLContainer postgreSQLContainer = + new PostgreSQLContainer<>("postgres:latest") + .withDatabaseName("admin-unit-test") + .withUsername("admin") + .withPassword("1234"); + + + +} diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/TestcontainersTest.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/TestcontainersTest.java new file mode 100644 index 0000000..81926cc --- /dev/null +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/TestcontainersTest.java @@ -0,0 +1,15 @@ +package com.amigoscode.cohort2d.onlinebookstore; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class TestcontainersTest extends AbstractTestcontainers { + + @Test + void canStartPostgresDB() { + assertThat(postgreSQLContainer.isRunning()).isTrue(); + assertThat(postgreSQLContainer.isCreated()).isTrue(); + } + +} diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/author/AuthorRepositoryTest.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/author/AuthorRepositoryTest.java index ce72e44..aca9e68 100644 --- a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/author/AuthorRepositoryTest.java +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/author/AuthorRepositoryTest.java @@ -1,18 +1,16 @@ package com.amigoscode.cohort2d.onlinebookstore.author; +import com.amigoscode.cohort2d.onlinebookstore.AbstractTestcontainers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.test.context.ActiveProfiles; - import static org.assertj.core.api.Assertions.assertThat; @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") -class AuthorRepositoryTest { +class AuthorRepositoryTest extends AbstractTestcontainers { @Autowired private AuthorRepository underTest; diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/book/BookRepositoryTest.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/book/BookRepositoryTest.java index da6b2bd..b3df721 100644 --- a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/book/BookRepositoryTest.java +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/book/BookRepositoryTest.java @@ -1,5 +1,6 @@ package com.amigoscode.cohort2d.onlinebookstore.book; +import com.amigoscode.cohort2d.onlinebookstore.AbstractTestcontainers; import com.amigoscode.cohort2d.onlinebookstore.author.Author; import com.amigoscode.cohort2d.onlinebookstore.author.AuthorRepository; import com.amigoscode.cohort2d.onlinebookstore.category.Category; @@ -9,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.test.context.ActiveProfiles; import java.math.BigDecimal; import java.time.LocalDate; @@ -20,8 +20,7 @@ @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") -class BookRepositoryTest { +class BookRepositoryTest extends AbstractTestcontainers { @Autowired private BookRepository underTest; diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/category/CategoryRepositoryTest.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/category/CategoryRepositoryTest.java index 630ce81..1f3abb2 100644 --- a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/category/CategoryRepositoryTest.java +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/category/CategoryRepositoryTest.java @@ -1,18 +1,17 @@ package com.amigoscode.cohort2d.onlinebookstore.category; +import com.amigoscode.cohort2d.onlinebookstore.AbstractTestcontainers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.test.context.ActiveProfiles; import static org.assertj.core.api.Assertions.assertThat; @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") -class CategoryRepositoryTest { +class CategoryRepositoryTest extends AbstractTestcontainers { @Autowired private CategoryRepository underTest; diff --git a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/user/UserRepositoryTest.java b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/user/UserRepositoryTest.java index 352d3e8..ba7d725 100644 --- a/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/user/UserRepositoryTest.java +++ b/online-book-store/src/test/java/com/amigoscode/cohort2d/onlinebookstore/user/UserRepositoryTest.java @@ -1,11 +1,11 @@ package com.amigoscode.cohort2d.onlinebookstore.user; +import com.amigoscode.cohort2d.onlinebookstore.AbstractTestcontainers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; -import org.springframework.test.context.ActiveProfiles; import java.util.Collections; import java.util.UUID; @@ -14,8 +14,7 @@ @DataJpaTest @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -@ActiveProfiles("test") -class UserRepositoryTest { +class UserRepositoryTest extends AbstractTestcontainers { @Autowired private UserRepository underTest;