diff --git a/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt b/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt index e40bb5a8..dca0fefe 100644 --- a/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt +++ b/service/src/test/kotlin/com/sangdol/roomescape/supports/DummyInitializer.kt @@ -156,6 +156,27 @@ class DummyInitializer( } } + fun createExpiredOrCanceledReservation( + user: UserEntity, + status: ReservationStatus, + storeId: Long = IDGenerator.create(), + themeRequest: ThemeCreateRequest = ThemeFixture.createRequest, + scheduleRequest: ScheduleCreateRequest = ScheduleFixture.createRequest, + reservationRequest: PendingReservationCreateRequest = ReservationFixture.pendingCreateRequest, + ): ReservationEntity { + return createPendingReservation(user, storeId, themeRequest, scheduleRequest, reservationRequest).apply { + this.status = status + }.also { + reservationRepository.save(it) + + scheduleRepository.findByIdOrNull(it.scheduleId)?.let { schedule -> + schedule.status = ScheduleStatus.AVAILABLE + schedule.holdExpiredAt = null + scheduleRepository.save(schedule) + } + } + } + fun createPayment( reservationId: Long, request: PaymentConfirmRequest = PaymentFixture.confirmRequest, diff --git a/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt b/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt index d90148f6..416a539b 100644 --- a/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt +++ b/service/src/test/kotlin/com/sangdol/roomescape/supports/Fixtures.kt @@ -299,21 +299,38 @@ object PaymentFixture { easyPayDetail: EasyPayDetailResponse? = null, transferDetail: TransferDetailResponse? = null, orderId: String = randomString(25), - ) = PaymentGatewayResponse( - paymentKey = paymentKey, - status = PaymentStatus.DONE, - orderId = orderId, - type = PaymentType.NORMAL, - totalAmount = amount, - vat = (amount * 0.1).toInt(), - suppliedAmount = (amount * 0.9).toInt(), - method = method, - card = cardDetail, - easyPay = easyPayDetail, - transfer = transferDetail, - requestedAt = KoreaDateTime.nowWithOffset(), - approvedAt = KoreaDateTime.nowWithOffset().plusSeconds(5) - ) + ): PaymentGatewayResponse { + var card: CardDetailResponse? = cardDetail + if (method == PaymentMethod.CARD && cardDetail == null) { + card = cardDetail(amount) + } + + var easypay: EasyPayDetailResponse? = easyPayDetail + if (method == PaymentMethod.EASY_PAY && easyPayDetail == null) { + easypay = easypayDetail(amount) + } + + var transfer: TransferDetailResponse? = transferDetail + if (method == PaymentMethod.TRANSFER && transferDetail == null) { + transfer = transferDetail() + } + + return PaymentGatewayResponse( + paymentKey = paymentKey, + status = PaymentStatus.DONE, + orderId = orderId, + type = PaymentType.NORMAL, + totalAmount = amount, + vat = (amount * 0.1).toInt(), + suppliedAmount = (amount * 0.9).toInt(), + method = method, + card = card, + easyPay = easypay, + transfer = transfer, + requestedAt = KoreaDateTime.nowWithOffset(), + approvedAt = KoreaDateTime.nowWithOffset().plusSeconds(5) + ) + } fun cancelResponse( amount: Int,