diff --git a/src/test/java/roomescape/theme/infrastructure/persistence/ThemeRepositoryTest.kt b/src/test/java/roomescape/theme/infrastructure/persistence/ThemeRepositoryTest.kt index 6780ecd0..73df4b11 100644 --- a/src/test/java/roomescape/theme/infrastructure/persistence/ThemeRepositoryTest.kt +++ b/src/test/java/roomescape/theme/infrastructure/persistence/ThemeRepositoryTest.kt @@ -5,24 +5,18 @@ import io.kotest.matchers.collections.shouldContainInOrder import io.kotest.matchers.shouldBe import jakarta.persistence.EntityManager import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest -import org.springframework.transaction.support.TransactionTemplate import roomescape.theme.util.TestThemeCreateUtil import java.time.LocalDate @DataJpaTest class ThemeRepositoryTest( val themeRepository: ThemeRepository, - val transactionTemplate: TransactionTemplate, val entityManager: EntityManager ) : FunSpec() { init { - beforeSpec { - /** - * 테마 10개를 생성한다. - * 이름: "테마N", 예약 수: N, 날짜: 오늘 기준으로 N일 전 - */ - transactionTemplate.executeWithoutResult { + context("findTopNThemeBetweenStartDateAndEndDate") { + beforeTest { for (i in 1..10) { TestThemeCreateUtil.createThemeWithReservations( entityManager = entityManager, @@ -32,9 +26,7 @@ class ThemeRepositoryTest( ) } } - } - context("findTopNThemeBetweenStartDateAndEndDate") { test("지난 10일간 예약 수가 가장 많은 테마 5개를 조회한다.") { themeRepository.findTopNThemeBetweenStartDateAndEndDate( LocalDate.now().minusDays(10), @@ -115,10 +107,10 @@ class ThemeRepositoryTest( val themeName = "test-theme" beforeTest { TestThemeCreateUtil.createThemeWithReservations( - entityManager = entityManager, - name = themeName, - reservedCount = 0, - date = LocalDate.now() + entityManager = entityManager, + name = themeName, + reservedCount = 0, + date = LocalDate.now() ) } test("테마 이름이 존재하면 true를 반환한다.") { @@ -133,20 +125,20 @@ class ThemeRepositoryTest( context("isReservedTheme") { test("테마가 예약 중이면 true를 반환한다.") { val theme = TestThemeCreateUtil.createThemeWithReservations( - entityManager = entityManager, - name = "예약된 테마", - reservedCount = 1, - date = LocalDate.now() + entityManager = entityManager, + name = "예약된 테마", + reservedCount = 1, + date = LocalDate.now() ) themeRepository.isReservedTheme(theme.id!!) shouldBe true } test("테마가 예약 중이 아니면 false를 반환한다.") { val theme = TestThemeCreateUtil.createThemeWithReservations( - entityManager = entityManager, - name = "예약되지 않은 테마", - reservedCount = 0, - date = LocalDate.now() + entityManager = entityManager, + name = "예약되지 않은 테마", + reservedCount = 0, + date = LocalDate.now() ) themeRepository.isReservedTheme(theme.id!!) shouldBe false }