generated from pricelees/issue-pr-template
[#30] 코드 구조 개선 #31
@ -1,6 +1,7 @@
|
||||
package roomescape.theme.util
|
||||
|
||||
import jakarta.persistence.EntityManager
|
||||
import org.springframework.transaction.support.TransactionTemplate
|
||||
import roomescape.member.infrastructure.persistence.MemberEntity
|
||||
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
@ -12,13 +13,25 @@ import roomescape.util.TimeFixture
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalTime
|
||||
|
||||
object TestThemeCreateUtil {
|
||||
fun createThemeWithReservations(
|
||||
entityManager: EntityManager,
|
||||
name: String,
|
||||
reservedCount: Int,
|
||||
date: LocalDate,
|
||||
): ThemeEntity {
|
||||
class TestThemeDataHelper(
|
||||
val entityManager: EntityManager,
|
||||
val transactionTemplate: TransactionTemplate?
|
||||
) {
|
||||
/**
|
||||
* GET /themes/most-reserved-last-week API와 관련 Repository 테스트에 사용
|
||||
* @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 member: MemberEntity = MemberFixture.create().also { entityManager.persist(it) }
|
||||
|
||||
@ -32,7 +45,7 @@ object TestThemeCreateUtil {
|
||||
theme = themeEntity,
|
||||
member = member,
|
||||
time = time,
|
||||
status = ReservationStatus.CONFIRMED
|
||||
status = ReservationStatus.entries.random()
|
||||
).also { entityManager.persist(it) }
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user