From 2eb0ef7f6ebe940a410594dd45392d064d0ee7af Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sat, 18 Jul 2026 11:05:38 +0000 Subject: [PATCH] =?UTF-8?q?[=EB=A7=A4=EC=9E=85]=20mg=5Frecv=5Fsvc=20?= =?UTF-8?q?=E2=86=92=20=EC=A0=84=EB=AC=B8=EC=88=98=EC=8B=A0=20@Service=20(?= =?UTF-8?q?ACM-MG-004)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acquiring/codec/MessageCodecTest.java | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 boot/modules/acquiring/src/test/java/com/klaro/acquirecore/acquiring/codec/MessageCodecTest.java diff --git a/boot/modules/acquiring/src/test/java/com/klaro/acquirecore/acquiring/codec/MessageCodecTest.java b/boot/modules/acquiring/src/test/java/com/klaro/acquirecore/acquiring/codec/MessageCodecTest.java new file mode 100644 index 0000000..e7f76da --- /dev/null +++ b/boot/modules/acquiring/src/test/java/com/klaro/acquirecore/acquiring/codec/MessageCodecTest.java @@ -0,0 +1,70 @@ +package com.klaro.acquirecore.acquiring.codec; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class MessageCodecTest { + + private MessageCodec codec; + + @BeforeEach + void setUp() { + codec = new MessageCodec(); + } + + @Test + void unpack_validMessage_parsesCorrectly() { + // given + String raw = "MSGT123456789012TX01MER00001 1234567890123456789000000012340A12345678ETX"; + byte[] rawMessage = raw.getBytes(); + + // when + ParsedMessage parsed = codec.unpack(rawMessage); + + // then + assertEquals("MSGT", parsed.getMessageType()); + assertEquals("123456789012", parsed.getTxId()); + assertEquals("TX01", parsed.getTxCode()); + assertEquals("MER00001", parsed.getMerchantId()); + assertEquals("12345678901234567890", parsed.getCardNumber()); + assertEquals("0000001234", parsed.getAmount()); + assertEquals("A12345678", parsed.getApprovalCode()); + assertEquals("ETX", parsed.getTrailer()); + } + + @Test + void unpack_nullMessage_throwsException() { + assertThrows(IllegalArgumentException.class, () -> codec.unpack(null)); + } + + @Test + void unpack_shortMessage_throwsException() { + byte[] shortMessage = new byte[10]; + assertThrows(IllegalArgumentException.class, () -> codec.unpack(shortMessage)); + } + + @Test + void pack_validMessage_packsCorrectly() { + // given + ParsedMessage parsed = new ParsedMessage(); + parsed.setMessageType("MSGT"); + parsed.setTxId("123456789012"); + parsed.setTxCode("TX01"); + parsed.setMerchantId("MER00001"); + parsed.setCardNumber("12345678901234567890"); + parsed.setAmount("0000001234"); + parsed.setApprovalCode("A12345678"); + + // when + byte[] packed = codec.pack(parsed); + + // then + assertNotNull(packed); + assertTrue(packed.length > 0); + String packedStr = new String(packed); + assertTrue(packedStr.startsWith("MSGT")); + assertTrue(packedStr.endsWith("ETX")); + } +}