[공통] util → framework 유틸 (ACM-CM-002)
Some checks failed
ci / test (pull_request) Failing after 7s

This commit is contained in:
forge-bot 2026-07-18 11:09:18 +00:00
parent f2cc439327
commit 903a0a4c0e

View file

@ -0,0 +1,161 @@
package com.klaro.acquirecore.framework.util;
import org.junit.jupiter.api.Test;
import java.math.BigDecimal;
import java.time.LocalDate;
import static org.junit.jupiter.api.Assertions.*;
class FrameworkUtilTest {
// DateUtil Tests
@Test
void dateUtil_parse_ValidDate() {
LocalDate result = DateUtil.parse("2024-01-15");
assertNotNull(result);
assertEquals(2024, result.getYear());
assertEquals(1, result.getMonthValue());
assertEquals(15, result.getDayOfMonth());
}
@Test
void dateUtil_parse_InvalidDate() {
assertNull(DateUtil.parse("invalid"));
assertNull(DateUtil.parse(null));
assertNull(DateUtil.parse(""));
}
@Test
void dateUtil_format() {
assertEquals("2024-03-20", DateUtil.format(LocalDate.of(2024, 3, 20)));
assertEquals("", DateUtil.format((LocalDate) null));
}
@Test
void dateUtil_diffDays() {
assertEquals(10, DateUtil.diffDays(LocalDate.of(2024, 1, 1), LocalDate.of(2024, 1, 11)));
assertEquals(-5, DateUtil.diffDays(LocalDate.of(2024, 1, 15), LocalDate.of(2024, 1, 10)));
assertEquals(0, DateUtil.diffDays(null, LocalDate.now()));
}
@Test
void dateUtil_addDays() {
assertEquals(LocalDate.of(2024, 1, 20), DateUtil.addDays(LocalDate.of(2024, 1, 15), 5));
assertEquals(LocalDate.of(2024, 1, 5), DateUtil.addDays(LocalDate.of(2024, 1, 15), -10));
assertNull(DateUtil.addDays(null, 5));
}
@Test
void dateUtil_today() {
assertEquals(LocalDate.now(), DateUtil.today());
}
// AmountUtil Tests
@Test
void amountUtil_parse_ValidAmount() {
assertEquals(new BigDecimal("1000.00"), AmountUtil.parse("1000"));
assertEquals(new BigDecimal("1000.50"), AmountUtil.parse("1000.50"));
assertEquals(new BigDecimal("-500.25"), AmountUtil.parse("-500.25"));
assertEquals(new BigDecimal("1000.00"), AmountUtil.parse("KRW 1000"));
}
@Test
void amountUtil_parse_InvalidAmount() {
assertNull(AmountUtil.parse("invalid"));
assertNull(AmountUtil.parse(null));
assertNull(AmountUtil.parse(""));
}
@Test
void amountUtil_format() {
assertEquals("KRW 1000.50", AmountUtil.format(new BigDecimal("1000.50")));
assertEquals("USD 1000.50", AmountUtil.format(new BigDecimal("1000.50"), "USD"));
assertEquals("", AmountUtil.format(null));
}
@Test
void amountUtil_add() {
assertEquals(new BigDecimal("150.75"), AmountUtil.add(new BigDecimal("100.50"), new BigDecimal("50.25")));
assertNull(AmountUtil.add(null, new BigDecimal("10")));
}
@Test
void amountUtil_subtract() {
assertEquals(new BigDecimal("50.25"), AmountUtil.subtract(new BigDecimal("100.50"), new BigDecimal("50.25")));
}
@Test
void amountUtil_multiply() {
assertEquals(new BigDecimal("301.50"), AmountUtil.multiply(new BigDecimal("100.50"), 3));
assertEquals(new BigDecimal("150.00"), AmountUtil.multiply(new BigDecimal("100.00"), new BigDecimal("1.5")));
}
@Test
void amountUtil_divide() {
assertEquals(new BigDecimal("25.00"), AmountUtil.divide(new BigDecimal("100.00"), new BigDecimal("4")));
assertNull(AmountUtil.divide(new BigDecimal("100"), BigDecimal.ZERO));
}
@Test
void amountUtil_isPositive() {
assertTrue(AmountUtil.isPositive(new BigDecimal("100")));
assertFalse(AmountUtil.isPositive(new BigDecimal("-100")));
assertFalse(AmountUtil.isPositive(BigDecimal.ZERO));
}
// MessageUtil Tests
@Test
void messageUtil_encode_ByteArray() {
String result = MessageUtil.encode("TEST", "Hello World".getBytes());
assertNotNull(result);
assertTrue(result.startsWith("TEST|11|"));
assertTrue(result.endsWith("Hello World"));
}
@Test
void messageUtil_encode_NullType() {
assertNull(MessageUtil.encode(null, "payload"));
assertNull(MessageUtil.encode("", "payload"));
}
@Test
void messageUtil_decode_ValidMessage() {
MessageUtil.MessageFrame frame = MessageUtil.decode("TEST|11|Hello World");
assertNotNull(frame);
assertEquals("TEST", frame.getType());
assertEquals(11, frame.getLength());
assertEquals("Hello World", frame.getPayloadAsString());
}
@Test
void messageUtil_decode_InvalidMessage() {
assertNull(MessageUtil.decode(null));
assertNull(MessageUtil.decode(""));
assertNull(MessageUtil.decode("invalid"));
}
@Test
void messageUtil_checksum() {
assertEquals(198, MessageUtil.checksum("ABC".getBytes()));
assertEquals(0, MessageUtil.checksum((byte[]) null));
assertEquals(198, MessageUtil.checksum("ABC"));
}
@Test
void messageUtil_base64() {
assertEquals("SGVsbG8=", MessageUtil.encodeBase64("Hello".getBytes()));
assertEquals("Hello", new String(MessageUtil.decodeBase64("SGVsbG8=")));
assertNull(MessageUtil.decodeBase64("!!!invalid!!!"));
}
@Test
void messageUtil_roundTrip() {
String type = "DATA";
String payload = "Round trip test";
String encoded = MessageUtil.encode(type, payload);
MessageUtil.MessageFrame decoded = MessageUtil.decode(encoded);
assertNotNull(decoded);
assertEquals(type, decoded.getType());
assertEquals(payload, decoded.getPayloadAsString());
}
}