[#30] 코드 구조 개선 #31

Merged
pricelees merged 31 commits from refactor/#30 into main 2025-08-06 10:16:08 +00:00
Showing only changes of commit 18f3a1aebc - Show all commits

View File

@ -1,6 +1,7 @@
package roomescape.theme.util package roomescape.theme.util
import jakarta.persistence.EntityManager import jakarta.persistence.EntityManager
import org.springframework.transaction.support.TransactionTemplate
import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.MemberEntity
import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.reservation.infrastructure.persistence.ReservationStatus
import roomescape.theme.infrastructure.persistence.ThemeEntity import roomescape.theme.infrastructure.persistence.ThemeEntity
@ -12,13 +13,25 @@ import roomescape.util.TimeFixture
import java.time.LocalDate import java.time.LocalDate
import java.time.LocalTime import java.time.LocalTime
object TestThemeCreateUtil { class TestThemeDataHelper(
fun createThemeWithReservations( val entityManager: EntityManager,
entityManager: EntityManager, val transactionTemplate: TransactionTemplate?
name: String, ) {
reservedCount: Int, /**
date: LocalDate, * GET /themes/most-reserved-last-week API와 관련 Repository 테스트에 사용
): ThemeEntity { * @param name: 테마 이름
* @param reservedCount: 테마가 예약된 횟수
* @param date: reservedCount 개의 예약을 만들 사용할 날짜
*/
fun createThemeWithReservations(name: String, reservedCount: Int, date: LocalDate): ThemeEntity =
if (transactionTemplate == null) {
createAndGet(name, reservedCount, date)
} else {
transactionTemplate.execute { createAndGet(name, reservedCount, date) }!!
}
fun createAndGet(name: String, reservedCount: Int, date: LocalDate): ThemeEntity {
val themeEntity: ThemeEntity = ThemeFixture.create(name = name).also { entityManager.persist(it) } val themeEntity: ThemeEntity = ThemeFixture.create(name = name).also { entityManager.persist(it) }
val member: MemberEntity = MemberFixture.create().also { entityManager.persist(it) } val member: MemberEntity = MemberFixture.create().also { entityManager.persist(it) }
@ -32,7 +45,7 @@ object TestThemeCreateUtil {
theme = themeEntity, theme = themeEntity,
member = member, member = member,
time = time, time = time,
status = ReservationStatus.CONFIRMED status = ReservationStatus.entries.random()
).also { entityManager.persist(it) } ).also { entityManager.persist(it) }
} }