generated from pricelees/issue-pr-template
refactor: 테스트용 테마 데이터 삽입 클래스명 수정(->TestThemeDataHelper) 및 entityManager 클래스 주입
This commit is contained in:
parent
8a56dc7841
commit
18f3a1aebc
@ -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) }
|
||||||
}
|
}
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user