generated from pricelees/issue-pr-template
45 lines
1.6 KiB
Kotlin
45 lines
1.6 KiB
Kotlin
package roomescape.theme.util
|
|
|
|
import jakarta.persistence.EntityManager
|
|
import roomescape.member.infrastructure.persistence.MemberEntity
|
|
import roomescape.reservation.infrastructure.persistence.ReservationStatus
|
|
import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity
|
|
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
|
import roomescape.util.MemberFixture
|
|
import roomescape.util.ReservationFixture
|
|
import roomescape.util.ReservationTimeFixture
|
|
import roomescape.util.ThemeFixture
|
|
import java.time.LocalDate
|
|
import java.time.LocalTime
|
|
|
|
object TestThemeCreateUtil {
|
|
fun createThemeWithReservations(
|
|
entityManager: EntityManager,
|
|
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) }
|
|
|
|
for (i in 1..reservedCount) {
|
|
val time: ReservationTimeEntity = ReservationTimeFixture.create(
|
|
startAt = LocalTime.now().plusMinutes(i.toLong())
|
|
).also { entityManager.persist(it) }
|
|
|
|
ReservationFixture.create(
|
|
date = date,
|
|
theme = themeEntity,
|
|
member = member,
|
|
reservationTime = time,
|
|
status = ReservationStatus.CONFIRMED
|
|
).also { entityManager.persist(it) }
|
|
}
|
|
|
|
entityManager.flush()
|
|
entityManager.clear()
|
|
|
|
return themeEntity
|
|
}
|
|
}
|