generated from pricelees/issue-pr-template
test: Payment 및 관련 Fixture 추가
This commit is contained in:
parent
54207c2826
commit
cd6f44ca60
@ -11,6 +11,7 @@ import roomescape.member.web.MemberController
|
||||
import roomescape.member.web.MembersResponse
|
||||
import roomescape.util.MemberFixture
|
||||
import roomescape.util.RoomescapeApiTest
|
||||
import kotlin.random.Random
|
||||
|
||||
@WebMvcTest(controllers = [MemberController::class])
|
||||
class MemberControllerTest(
|
||||
@ -22,9 +23,9 @@ class MemberControllerTest(
|
||||
val endpoint = "/members"
|
||||
|
||||
every { memberRepository.findAll() } returns listOf(
|
||||
MemberFixture.create(name = "name1"),
|
||||
MemberFixture.create(name = "name2"),
|
||||
MemberFixture.create(name = "name3"),
|
||||
MemberFixture.create(id = Random.nextLong(), name = "name1"),
|
||||
MemberFixture.create(id = Random.nextLong(), name = "name2"),
|
||||
MemberFixture.create(id = Random.nextLong(), name = "name3"),
|
||||
)
|
||||
|
||||
`when`("관리자가 보내면") {
|
||||
|
||||
@ -1,37 +1,81 @@
|
||||
package roomescape.util
|
||||
|
||||
import roomescape.member.infrastructure.persistence.Member
|
||||
import roomescape.member.infrastructure.persistence.Role
|
||||
import roomescape.auth.infrastructure.jwt.JwtHandler
|
||||
import roomescape.auth.web.LoginRequest
|
||||
import java.util.concurrent.atomic.AtomicLong
|
||||
import roomescape.member.infrastructure.persistence.Member
|
||||
import roomescape.member.infrastructure.persistence.Role
|
||||
import roomescape.payment.infrastructure.persistence.CanceledPaymentEntity
|
||||
import roomescape.payment.infrastructure.persistence.PaymentEntity
|
||||
import roomescape.payment.web.PaymentApprove
|
||||
import roomescape.payment.web.PaymentCancel
|
||||
import roomescape.reservation.domain.Reservation
|
||||
import roomescape.reservation.domain.ReservationStatus
|
||||
import roomescape.reservation.domain.ReservationTime
|
||||
import roomescape.theme.domain.Theme
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalTime
|
||||
import java.time.OffsetDateTime
|
||||
import kotlin.random.Random
|
||||
|
||||
object MemberFixture {
|
||||
const val NOT_LOGGED_IN_USERID: Long = 0
|
||||
|
||||
val idCounter: AtomicLong = AtomicLong(1L)
|
||||
|
||||
fun create(
|
||||
id: Long? = idCounter.incrementAndGet(),
|
||||
id: Long? = null,
|
||||
name: String = "sangdol",
|
||||
account: String = "default",
|
||||
password: String = "password",
|
||||
role: Role = Role.ADMIN
|
||||
): Member = Member(id, name, "$account@email.com", password, role)
|
||||
|
||||
fun admin(): Member = create(account = "admin", role = Role.ADMIN)
|
||||
fun admin(): Member = create(
|
||||
id = 2L,
|
||||
account = "admin",
|
||||
role = Role.ADMIN
|
||||
)
|
||||
fun adminLoginRequest(): LoginRequest = LoginRequest(
|
||||
email = admin().email,
|
||||
password = admin().password
|
||||
)
|
||||
|
||||
fun user(): Member = create(account = "user", role = Role.MEMBER)
|
||||
fun user(): Member = create(
|
||||
id = 1L,
|
||||
account = "user",
|
||||
role = Role.MEMBER
|
||||
)
|
||||
fun userLoginRequest(): LoginRequest = LoginRequest(
|
||||
email = user().email,
|
||||
password = user().password
|
||||
)
|
||||
}
|
||||
|
||||
object ReservationTimeFixture {
|
||||
fun create(
|
||||
id: Long? = null,
|
||||
startAt: LocalTime = LocalTime.now().plusHours(1),
|
||||
): ReservationTime = ReservationTime(id, startAt)
|
||||
}
|
||||
|
||||
object ThemeFixture {
|
||||
fun create(
|
||||
id: Long? = null,
|
||||
name: String = "Default Theme",
|
||||
description: String = "Default Description",
|
||||
thumbnail: String = "https://example.com/default-thumbnail.jpg"
|
||||
): Theme = Theme(id, name, description, thumbnail)
|
||||
}
|
||||
|
||||
object ReservationFixture {
|
||||
fun create(
|
||||
id: Long? = null,
|
||||
date: LocalDate = LocalDate.now().plusWeeks(1),
|
||||
theme: Theme = ThemeFixture.create(),
|
||||
reservationTime: ReservationTime = ReservationTimeFixture.create(),
|
||||
member: Member = MemberFixture.create(),
|
||||
status: ReservationStatus = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
||||
): Reservation = Reservation(id, date, reservationTime, theme, member, status)
|
||||
}
|
||||
|
||||
object JwtFixture {
|
||||
const val SECRET_KEY: String = "daijawligagaf@LIJ$@U)9nagnalkkgalijaddljfi"
|
||||
const val EXPIRATION_TIME: Long = 1000 * 60 * 60
|
||||
@ -41,3 +85,70 @@ object JwtFixture {
|
||||
expirationTime: Long = EXPIRATION_TIME
|
||||
): JwtHandler = JwtHandler(secretKey, expirationTime)
|
||||
}
|
||||
|
||||
object PaymentFixture {
|
||||
const val PAYMENT_KEY: String = "paymentKey"
|
||||
const val ORDER_ID: String = "orderId"
|
||||
const val AMOUNT: Long = 10000L
|
||||
|
||||
fun create(
|
||||
id: Long? = null,
|
||||
orderId: String = ORDER_ID,
|
||||
paymentKey: String = PAYMENT_KEY,
|
||||
totalAmount: Long = AMOUNT,
|
||||
reservationId: Long = Random.nextLong(),
|
||||
approvedAt: OffsetDateTime = OffsetDateTime.now()
|
||||
): PaymentEntity = PaymentEntity(
|
||||
id = id,
|
||||
orderId = orderId,
|
||||
paymentKey = paymentKey,
|
||||
totalAmount = totalAmount,
|
||||
reservation = ReservationFixture.create(id = reservationId),
|
||||
approvedAt = approvedAt
|
||||
)
|
||||
|
||||
fun createCanceled(
|
||||
id: Long? = null,
|
||||
paymentKey: String = PAYMENT_KEY,
|
||||
cancelReason: String = "Test Cancel",
|
||||
cancelAmount: Long = AMOUNT,
|
||||
approvedAt: OffsetDateTime = OffsetDateTime.now(),
|
||||
canceledAt: OffsetDateTime = approvedAt.plusHours(1)
|
||||
): CanceledPaymentEntity = CanceledPaymentEntity(
|
||||
id = id,
|
||||
paymentKey = paymentKey,
|
||||
cancelReason = cancelReason,
|
||||
cancelAmount = cancelAmount,
|
||||
approvedAt = approvedAt,
|
||||
canceledAt = canceledAt
|
||||
|
||||
)
|
||||
|
||||
fun createApproveRequest(): PaymentApprove.Request = PaymentApprove.Request(
|
||||
paymentKey = PAYMENT_KEY,
|
||||
orderId = ORDER_ID,
|
||||
amount = AMOUNT,
|
||||
paymentType = "CARD"
|
||||
)
|
||||
|
||||
fun createApproveResponse(): PaymentApprove.Response = PaymentApprove.Response(
|
||||
paymentKey = PAYMENT_KEY,
|
||||
orderId = ORDER_ID,
|
||||
approvedAt = OffsetDateTime.now(),
|
||||
totalAmount = AMOUNT
|
||||
)
|
||||
|
||||
fun createCancelRequest(): PaymentCancel.Request = PaymentCancel.Request(
|
||||
paymentKey = PAYMENT_KEY,
|
||||
amount = AMOUNT,
|
||||
cancelReason = "Test Cancel"
|
||||
)
|
||||
|
||||
fun createCancelResponse(): PaymentCancel.Response = PaymentCancel.Response(
|
||||
cancelStatus = "SUCCESS",
|
||||
cancelReason = "Test Cancel",
|
||||
cancelAmount = AMOUNT,
|
||||
canceledAt = OffsetDateTime.now().plusMinutes(1)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user