From 3193a905db122a58e90cc25f8ca86cdc8a765e44 Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 15 Jul 2025 17:34:11 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=93=B0=EC=9D=B4=EB=8A=94=20=EC=83=98?= =?UTF-8?q?=ED=94=8C=20=EC=9D=91=EB=8B=B5=20=EC=83=81=EC=88=98=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EC=9D=B8=20SampleTossPaymentConst=EC=9D=98?= =?UTF-8?q?=20=EC=BD=94=ED=8B=80=EB=A6=B0=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ntConst.java => SampleTossPaymentConst.kt} | 110 ++++++++++++------ .../client/TossPaymentClientTest.java | 1 + 2 files changed, 74 insertions(+), 37 deletions(-) rename src/test/java/roomescape/payment/{infrastructure/client/SampleTossPaymentConst.java => SampleTossPaymentConst.kt} (65%) diff --git a/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.java b/src/test/java/roomescape/payment/SampleTossPaymentConst.kt similarity index 65% rename from src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.java rename to src/test/java/roomescape/payment/SampleTossPaymentConst.kt index 99923a11..9ed6b179 100644 --- a/src/test/java/roomescape/payment/infrastructure/client/SampleTossPaymentConst.java +++ b/src/test/java/roomescape/payment/SampleTossPaymentConst.kt @@ -1,44 +1,73 @@ -package roomescape.payment.infrastructure.client; +package roomescape.payment -import roomescape.payment.web.dto.request.PaymentCancelRequest; -import roomescape.payment.web.dto.request.PaymentRequest; +import roomescape.payment.SampleTossPaymentConst.amount +import roomescape.payment.web.dto.request.PaymentCancelRequest +import roomescape.payment.web.dto.request.PaymentRequest +import kotlin.math.roundToLong -public class SampleTossPaymentConst { +object SampleTossPaymentConst { + @JvmField + val paymentKey: String = "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1" - public static final PaymentRequest paymentRequest = new PaymentRequest( - "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1", "MC4wODU4ODQwMzg4NDk0", 1000L, "카드"); + @JvmField + val orderId: String = "MC4wODU4ODQwMzg4NDk0" - public static final String paymentRequestJson = """ + @JvmField + val amount: Long = 1000L + + @JvmField + val paymentType: String = "카드" + + @JvmField + val cancelReason: String = "테스트 결제 취소" + + @JvmField + val paymentRequest: PaymentRequest = PaymentRequest( + paymentKey, + orderId, + amount, + paymentType + ) + + @JvmField + val paymentRequestJson: String = """ { - "paymentKey": "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1", - "orderId": "MC4wODU4ODQwMzg4NDk0", - "amount": 1000, - "paymentType": "카드" + "paymentKey": "$paymentKey", + "orderId": "$orderId", + "amount": $amount, + "paymentType": "$paymentType" } - """; + """.trimIndent() - public static final PaymentCancelRequest cancelRequest = new PaymentCancelRequest( - "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1", 1000L, "테스트 결제 취소"); + @JvmField + val cancelRequest: PaymentCancelRequest = PaymentCancelRequest( + paymentKey, + amount, + cancelReason + ) - public static final String cancelRequestJson = """ + @JvmField + val cancelRequestJson: String = """ { - "cancelReason": "테스트 결제 취소" + "cancelReason": "$cancelReason" } - """; + """.trimIndent() - public static final String tossPaymentErrorJson = """ + @JvmField + val tossPaymentErrorJson: String = """ { "code": "ERROR_CODE", "message": "Error message" - } - """; + } + """.trimIndent() - public static final String confirmJson = """ + @JvmField + val confirmJson: String = """ { "mId": "tosspayments", "lastTransactionKey": "9C62B18EEF0DE3EB7F4422EB6D14BC6E", - "paymentKey": "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1", - "orderId": "MC4wODU4ODQwMzg4NDk0", + "paymentKey": "$paymentKey", + "orderId": "$orderId", "orderName": "토스 티셔츠 외 2건", "taxExemptionAmount": 0, "status": "DONE", @@ -88,22 +117,24 @@ public class SampleTossPaymentConst { "url": "https://api.tosspayments.com/v1/payments/5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1/checkout" }, "currency": "KRW", - "totalAmount": 1000, - "balanceAmount": 1000, - "suppliedAmount": 909, - "vat": 91, + "totalAmount": $amount, + "balanceAmount": $amount, + "suppliedAmount": ${(amount / 1.1).roundToLong()}, + "vat": ${amount - (amount / 1.1).roundToLong()}, "taxFreeAmount": 0, - "method": "카드", + "method": "$paymentType", "version": "2022-11-16" } - """; + + """.trimIndent() - public static final String cancelJson = """ + @JvmField + val cancelJson: String = """ { "mId": "tosspayments", "lastTransactionKey": "090A796806E726BBB929F4A2CA7DB9A7", - "paymentKey": "5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1", - "orderId": "MC4wODU4ODQwMzg4NDk0", + "paymentKey": "$paymentKey", + "orderId": "$orderId", "orderName": "토스 티셔츠 외 2건", "taxExemptionAmount": 0, "status": "CANCELED", @@ -135,12 +166,12 @@ public class SampleTossPaymentConst { "cancels": [ { "transactionKey": "090A796806E726BBB929F4A2CA7DB9A7", - "cancelReason": "테스트 결제 취소", + "cancelReason": "$cancelReason", "taxExemptionAmount": 0, "canceledAt": "2024-02-13T12:20:23+09:00", "easyPayDiscountAmount": 0, "receiptKey": null, - "cancelAmount": 1000, + "cancelAmount": $amount, "taxFreeAmount": 0, "refundableAmount": 0, "cancelStatus": "DONE", @@ -166,13 +197,18 @@ public class SampleTossPaymentConst { "url": "https://api.tosspayments.com/v1/payments/5EnNZRJGvaBX7zk2yd8ydw26XvwXkLrx9POLqKQjmAw4b0e1/checkout" }, "currency": "KRW", - "totalAmount": 1000, + "totalAmount": $amount, "balanceAmount": 0, "suppliedAmount": 0, "vat": 0, "taxFreeAmount": 0, - "method": "카드", + "method": "$paymentType", "version": "2022-11-16" } - """; + + """.trimIndent() } + +fun main() { + println((amount / 1.1).roundToLong()) +} \ No newline at end of file diff --git a/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.java b/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.java index 6a844547..ff252897 100644 --- a/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.java +++ b/src/test/java/roomescape/payment/infrastructure/client/TossPaymentClientTest.java @@ -18,6 +18,7 @@ import org.springframework.test.web.client.MockRestServiceServer; import roomescape.common.exception.ErrorType; import roomescape.common.exception.RoomescapeException; +import roomescape.payment.SampleTossPaymentConst; import roomescape.payment.web.dto.request.PaymentCancelRequest; import roomescape.payment.web.dto.request.PaymentRequest; import roomescape.payment.web.dto.response.PaymentCancelResponse;