[매입] mg_recv_svc → 전문수신 @Service (ACM-MG-004)
Some checks failed
ci / test (pull_request) Failing after 6s
Some checks failed
ci / test (pull_request) Failing after 6s
This commit is contained in:
parent
7ff117469f
commit
ceec115bb7
1 changed files with 94 additions and 0 deletions
|
|
@ -0,0 +1,94 @@
|
||||||
|
package com.klaro.acquirecore.acquiring.service;
|
||||||
|
|
||||||
|
import com.klaro.acquirecore.acquiring.codec.MessageCodec;
|
||||||
|
import com.klaro.acquirecore.acquiring.codec.UnpackedMessage;
|
||||||
|
import com.klaro.acquirecore.acquiring.dto.TxRequest;
|
||||||
|
import com.klaro.acquirecore.acquiring.dto.TxResponse;
|
||||||
|
import com.klaro.acquirecore.acquiring.repository.TxRepository;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
class TxServiceTest {
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private TxRepository txRepository;
|
||||||
|
|
||||||
|
private MessageCodec messageCodec;
|
||||||
|
private TxService txService;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void setUp() {
|
||||||
|
messageCodec = new MessageCodec();
|
||||||
|
txService = new TxService(messageCodec, txRepository);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void processMessage_validMessage_returnsApproved() {
|
||||||
|
String rawMessage = "0100TRX123456789MER00000012345 41111111111111112025/1230N ";
|
||||||
|
TxResponse response = txService.processMessage(rawMessage.getBytes());
|
||||||
|
|
||||||
|
assertNotNull(response);
|
||||||
|
assertEquals("00", response.getRespCode());
|
||||||
|
assertEquals("Approved", response.getRespMsg());
|
||||||
|
verify(txRepository, times(1)).save(any(TxRequest.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void processMessage_emptyMessage_returnsError() {
|
||||||
|
TxResponse response = txService.processMessage(new byte[0]);
|
||||||
|
|
||||||
|
assertNotNull(response);
|
||||||
|
assertEquals("99", response.getRespCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void processMessage_nullMessage_returnsError() {
|
||||||
|
TxResponse response = txService.processMessage(null);
|
||||||
|
|
||||||
|
assertNotNull(response);
|
||||||
|
assertEquals("99", response.getRespCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void codec_unpackValidMessage_parsesFields() {
|
||||||
|
String raw = "0100TRX123456789MER00000012345 41111111111111112025/1230N ";
|
||||||
|
UnpackedMessage unpacked = messageCodec.unpack(raw.getBytes());
|
||||||
|
|
||||||
|
assertEquals("0100", unpacked.getTxType());
|
||||||
|
assertEquals("TRX123456789", unpacked.getTraceNo());
|
||||||
|
assertEquals("MER00000012345", unpacked.getMerchantId());
|
||||||
|
assertEquals("4111111111111111", unpacked.getCardNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void codec_unpackEmpty_throwsException() {
|
||||||
|
assertThrows(IllegalArgumentException.class, () -> messageCodec.unpack(new byte[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void codec_packUnpacked_roundTrips() {
|
||||||
|
UnpackedMessage original = new UnpackedMessage();
|
||||||
|
original.setTxType("0100");
|
||||||
|
original.setTraceNo("TRX123456789");
|
||||||
|
original.setMerchantId("MER00000012345");
|
||||||
|
original.setAmount("000000100000");
|
||||||
|
original.setCardNo("4111111111111111");
|
||||||
|
original.setExpiryDate("2025/1230");
|
||||||
|
original.setInstallments("00");
|
||||||
|
original.setFiller("");
|
||||||
|
|
||||||
|
byte[] packed = messageCodec.pack(original);
|
||||||
|
UnpackedMessage result = messageCodec.unpack(packed);
|
||||||
|
|
||||||
|
assertEquals(original.getTxType(), result.getTxType());
|
||||||
|
assertEquals(original.getTraceNo(), result.getTraceNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in a new issue