From 48411757a1c5c0a516d189f1e5119f09f61408f0 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Thu, 30 Jul 2026 11:34:50 +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 --- .../CardAcquisitionApprovalServiceTest.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 proj-acquirex/src/test/java/com/acquirex/approval/CardAcquisitionApprovalServiceTest.java diff --git a/proj-acquirex/src/test/java/com/acquirex/approval/CardAcquisitionApprovalServiceTest.java b/proj-acquirex/src/test/java/com/acquirex/approval/CardAcquisitionApprovalServiceTest.java new file mode 100644 index 0000000..db245b2 --- /dev/null +++ b/proj-acquirex/src/test/java/com/acquirex/approval/CardAcquisitionApprovalServiceTest.java @@ -0,0 +1,80 @@ +package com.acquirex.approval; + +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.*; + +@DisplayName("카드 매입 승인 서비스 테스트") +class CardAcquisitionApprovalServiceTest { + + private CardAcquisitionApprovalService approvalService; + + @BeforeEach + void setUp() { + approvalService = new CardAcquisitionApprovalService(); + } + + @Test + @DisplayName("소액 거래 승인 처리 성공") + void testSmallAmountApproval() { + CardAcquisitionApprovalRequest request = CardAcquisitionApprovalRequest.builder() + .merchantId("MERCHANT001") + .cardCompanyCode("CARD001") + .transactionAmount(new BigDecimal("50000")) + .transactionType("PURCHASE") + .build(); + + CardAcquisitionApprovalResponse response = approvalService.processApproval(request); + + assertNotNull(response); + assertNotNull(response.getApprovalId()); + assertTrue(response.getApprovalId().startsWith("APR-")); + assertEquals("MERCHANT001", response.getMerchantId()); + assertEquals(CardAcquisitionApprovalStatus.APPROVED, response.getStatus()); + assertEquals("0000", response.getResponseCode()); + } + + @Test + @DisplayName("대액 거래 처리 중 상태") + void testLargeAmountProcessing() { + CardAcquisitionApprovalRequest request = CardAcquisitionApprovalRequest.builder() + .merchantId("MERCHANT002") + .cardCompanyCode("CARD002") + .transactionAmount(new BigDecimal("150000")) + .transactionType("PURCHASE") + .build(); + + CardAcquisitionApprovalResponse response = approvalService.processApproval(request); + + assertNotNull(response); + assertEquals(CardAcquisitionApprovalStatus.PROCESSING, response.getStatus()); + } + + @Test + @DisplayName("승인 상태 조회 성공") + void testGetApprovalStatus() { + CardAcquisitionApprovalRequest request = CardAcquisitionApprovalRequest.builder() + .merchantId("MERCHANT003") + .cardCompanyCode("CARD003") + .transactionAmount(new BigDecimal("30000")) + .transactionType("PURCHASE") + .build(); + + CardAcquisitionApprovalResponse created = approvalService.processApproval(request); + CardAcquisitionApprovalResponse found = approvalService.getApprovalStatus(created.getApprovalId()); + + assertNotNull(found); + assertEquals(created.getApprovalId(), found.getApprovalId()); + } + + @Test + @DisplayName("존재하지 않는 승인 ID 조회 시 null 반환") + void testGetNonExistentApproval() { + CardAcquisitionApprovalResponse response = approvalService.getApprovalStatus("APR-NONEXIST"); + assertNull(response); + } +}