From c28de6ef7e644c1dfd9c72c176457661f6674b66 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Thu, 30 Jul 2026 09:33:52 +0000 Subject: [PATCH] =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EB=A7=A4=EC=9E=85=20?= =?UTF-8?q?=EC=8A=B9=EC=9D=B8=20=EA=B2=BD=EB=A1=9C=20Spring=20Boot=203=20?= =?UTF-8?q?=EC=A0=84=ED=99=98=20(ACX-E2E-1785394564819)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../approval/ApprovalServiceTest.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 proj-acquirex/src/test/java/com/acquirex/approval/ApprovalServiceTest.java diff --git a/proj-acquirex/src/test/java/com/acquirex/approval/ApprovalServiceTest.java b/proj-acquirex/src/test/java/com/acquirex/approval/ApprovalServiceTest.java new file mode 100644 index 0000000..a1ef3aa --- /dev/null +++ b/proj-acquirex/src/test/java/com/acquirex/approval/ApprovalServiceTest.java @@ -0,0 +1,63 @@ +package com.acquirex.approval; + +import com.acquirex.approval.domain.ApprovalDomain; +import com.acquirex.approval.domain.ApprovalDomain.Request; +import com.acquirex.approval.domain.ApprovalDomain.Response; +import com.acquirex.approval.domain.ApprovalDomain.Status; +import com.acquirex.approval.service.ApprovalService; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import java.math.BigDecimal; +import static org.junit.jupiter.api.Assertions.*; + +class ApprovalServiceTest { + private ApprovalService service; + + @BeforeEach + void setUp() { service = new ApprovalService(); } + + @Test + @DisplayName("유효한 요청으로 매입 승인 성공") + void processApproval_ValidRequest_Success() { + Request req = new Request("TXN-001", "MERCHANT-001", new BigDecimal("50000"), "1234567890123456"); + Response res = service.processApproval(req); + assertEquals(Status.APPROVED, res.getStatus()); + assertNotNull(res.getApprovalId()); + assertTrue(res.getApprovalId().startsWith("APR-")); + } + + @Test + @DisplayName("유효하지 않은 금액으로 매입 승인 거절") + void processApproval_InvalidAmount_Rejected() { + Request req = new Request("TXN-002", "MERCHANT-001", new BigDecimal("-1000"), "1234567890123456"); + assertEquals(Status.REJECTED, service.processApproval(req).getStatus()); + } + + @Test + @DisplayName("유효하지 않은 카드번호로 매입 승인 거절") + void processApproval_InvalidCardNumber_Rejected() { + Request req = new Request("TXN-003", "MERCHANT-001", new BigDecimal("50000"), "12345"); + assertEquals(Status.REJECTED, service.processApproval(req).getStatus()); + } + + @Test + @DisplayName("null 요청으로 매입 승인 거절") + void processApproval_NullRequest_Rejected() { + assertEquals(Status.REJECTED, service.processApproval(null).getStatus()); + } + + @Test + @DisplayName("유효한 승인 ID로 취소 성공") + void cancelApproval_ValidApprovalId_Success() { + Response res = service.cancelApproval("APR-12345678"); + assertEquals(Status.CANCELLED, res.getStatus()); + } + + @Test + @DisplayName("유효하지 않은 승인 ID로 취소 거절") + void cancelApproval_InvalidApprovalId_Rejected() { + assertEquals(Status.REJECTED, service.cancelApproval("").getStatus()); + assertEquals(Status.REJECTED, service.cancelApproval(null).getStatus()); + } +} \ No newline at end of file