generated from pricelees/issue-pr-template
[#50] Tosspay API Mocking 서버 구현 #51
@ -0,0 +1,38 @@
|
||||
package com.sangdol.tosspaymock.business.domain.cancel
|
||||
|
||||
import com.sangdol.tosspaymock.business.domain.RandomPaymentValueGenerator
|
||||
import java.time.OffsetDateTime
|
||||
|
||||
class Cancellation(
|
||||
val transactionKey: String,
|
||||
val cancelReason: String,
|
||||
val taxExemptionAmount: Int = 0,
|
||||
val canceledAt: OffsetDateTime,
|
||||
val cardDiscountAmount: Int,
|
||||
val transferDiscountAmount: Int,
|
||||
val easyPayDiscountAmount: Int,
|
||||
val receiptKey: String? = null,
|
||||
val cancelStatus: String = "DONE",
|
||||
val cancelRequestId: String? = null,
|
||||
val cancelAmount: Int,
|
||||
val taxFreeAmount: Int = 0,
|
||||
val refundableAmount: Int = 0,
|
||||
) {
|
||||
companion object {
|
||||
fun random(
|
||||
cancelReason: String,
|
||||
cancelAmount: Int,
|
||||
easyPayDiscountAmount: Int,
|
||||
cardDiscountAmount: Int,
|
||||
transferDiscountAmount: Int,
|
||||
) = Cancellation(
|
||||
transactionKey = RandomPaymentValueGenerator.transactionKey(),
|
||||
cancelReason = cancelReason,
|
||||
canceledAt = OffsetDateTime.now(),
|
||||
cardDiscountAmount = cardDiscountAmount,
|
||||
transferDiscountAmount = transferDiscountAmount,
|
||||
easyPayDiscountAmount = easyPayDiscountAmount,
|
||||
cancelAmount = cancelAmount,
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.sangdol.tosspaymock.business.domain.card
|
||||
|
||||
import com.sangdol.tosspaymock.business.domain.RandomCardValueGenerator
|
||||
|
||||
class Card(
|
||||
val issuerCode: CardIssuerCode,
|
||||
val acquirerCode: CardIssuerCode,
|
||||
val number: String,
|
||||
val installmentPlanMonths: Int,
|
||||
val isInterestFree: Boolean = true,
|
||||
val interestPayer: String? = null,
|
||||
val approveNo: String,
|
||||
val useCardPoint: Boolean,
|
||||
val cardType: CardType,
|
||||
val ownerType: CardOwnerType,
|
||||
val acquireStatus: CardAcquireStatus,
|
||||
val amount: Int,
|
||||
) {
|
||||
companion object {
|
||||
val availableCardTypes = listOf(CardType.CREDIT, CardType.CHECK)
|
||||
val availableCardOwnerTypes = CardOwnerType.entries - CardOwnerType.UNKNOWN
|
||||
fun random(approvedAmount: Int): Card {
|
||||
return Card(
|
||||
issuerCode = CardIssuerCode.entries.random(),
|
||||
acquirerCode = CardIssuerCode.entries.random(),
|
||||
number = RandomCardValueGenerator.cardNumber(),
|
||||
installmentPlanMonths = RandomCardValueGenerator.installmentPlanMonths(approvedAmount),
|
||||
isInterestFree = true,
|
||||
interestPayer = null,
|
||||
approveNo = RandomCardValueGenerator.approvalNumber(),
|
||||
useCardPoint = false,
|
||||
cardType = availableCardTypes.random(),
|
||||
ownerType = availableCardOwnerTypes.random(),
|
||||
acquireStatus = CardAcquireStatus.COMPLETED,
|
||||
amount = approvedAmount
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,31 @@
|
||||
package com.sangdol.tosspaymock.business.domain.easypay
|
||||
|
||||
import com.sangdol.tosspaymock.business.domain.RandomEasypayValueGenerator
|
||||
|
||||
class Easypay(
|
||||
val provider: EasypayProvider,
|
||||
val amount: Int,
|
||||
val discountAmount: Int
|
||||
) {
|
||||
companion object {
|
||||
fun randomWithPrepaid(amount: Int): Easypay {
|
||||
val point = RandomEasypayValueGenerator.point(amount)
|
||||
|
||||
return Easypay(
|
||||
provider = EasypayProvider.entries.random(),
|
||||
amount = (amount - point),
|
||||
discountAmount = point
|
||||
)
|
||||
}
|
||||
|
||||
fun randomWithCard(amount: Int): Easypay {
|
||||
val point = RandomEasypayValueGenerator.point(amount)
|
||||
|
||||
return Easypay(
|
||||
provider = EasypayProvider.entries.random(),
|
||||
amount = 0,
|
||||
discountAmount = point
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.sangdol.tosspaymock.business.domain.transfer
|
||||
|
||||
class BankTransfer(
|
||||
val bankCode: BankCode,
|
||||
val settlementStatus: SettlementStatus,
|
||||
) {
|
||||
companion object {
|
||||
fun random(): BankTransfer {
|
||||
return BankTransfer(
|
||||
bankCode = BankCode.entries.random(),
|
||||
settlementStatus = SettlementStatus.COMPLETED
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user