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

This commit is contained in:
forge-bot 2026-07-18 11:03:17 +00:00
parent 3bb79c8477
commit ba246a4f91

View file

@ -0,0 +1,205 @@
package com.klaro.acquirecore.framework.util;
import org.junit.jupiter.api.Test;
import java.nio.charset.StandardCharsets;
import static org.junit.jupiter.api.Assertions.*;
class MessageUtilTest {
@Test
void encodeBase64_encodesString() {
String input = "Hello, World!";
String result = MessageUtil.encodeBase64(input);
assertEquals("SGVsbG8sIFdvcmxkIQ==", result);
}
@Test
void decodeBase64_decodesString() {
String encoded = "SGVsbG8sIFdvcmxkIQ==";
String result = MessageUtil.decodeBase64(encoded);
assertEquals("Hello, World!", result);
}
@Test
void encodeBase64Url_encodesUrlSafe() {
String input = "Hello+World/Test";
String result = MessageUtil.encodeBase64Url(input);
assertEquals("SGVsbG8rV29ybGQvVGVzdA==", result);
}
@Test
void decodeBase64Url_decodesUrlSafe() {
String encoded = "SGVsbG8rV29ybGQvVGVzdA==";
String result = MessageUtil.decodeBase64Url(encoded);
assertEquals("Hello+World/Test", result);
}
@Test
void encodeHex_encodesBytesToHex() {
byte[] bytes = {(byte) 0x48, (byte) 0x65, (byte) 0x6c, (byte) 0x6c, (byte) 0x6f};
String result = MessageUtil.encodeHex(bytes);
assertEquals("48656c6c6f", result);
}
@Test
void decodeHex_decodesHexToBytes() {
String hex = "48656c6c6f";
byte[] result = MessageUtil.decodeHex(hex);
assertArrayEquals(new byte[]{(byte) 0x48, (byte) 0x65, (byte) 0x6c, (byte) 0x6c, (byte) 0x6f}, result);
}
@Test
void urlEncode_encodesString() {
String input = "Hello World";
String result = MessageUtil.urlEncode(input);
assertEquals("Hello+World", result);
}
@Test
void urlDecode_decodesString() {
String encoded = "Hello+World";
String result = MessageUtil.urlDecode(encoded);
assertEquals("Hello World", result);
}
@Test
void mask_masksMiddleCharacters() {
String input = "1234567890";
String result = MessageUtil.mask(input);
assertEquals("1********0", result);
}
@Test
void mask_withCustomShowCount_masksCorrectly() {
String input = "1234567890";
String result = MessageUtil.mask(input, 2, 2);
assertEquals("12******90", result);
}
@Test
void maskEmail_masksEmailCorrectly() {
String email = "test@example.com";
String result = MessageUtil.maskEmail(email);
assertEquals("t***t@example.com", result);
}
@Test
void maskPhone_masksPhoneCorrectly() {
String phone = "010-1234-5678";
String result = MessageUtil.maskPhone(phone);
assertEquals("010-****-5678", result);
}
@Test
void isValidEmail_withValidEmail_returnsTrue() {
assertTrue(MessageUtil.isValidEmail("test@example.com"));
assertTrue(MessageUtil.isValidEmail("user.name+tag@domain.co.kr"));
}
@Test
void isValidEmail_withInvalidEmail_returnsFalse() {
assertFalse(MessageUtil.isValidEmail("invalid-email"));
assertFalse(MessageUtil.isValidEmail("@domain.com"));
assertFalse(MessageUtil.isValidEmail(null));
}
@Test
void isValidPhone_withValidPhone_returnsTrue() {
assertTrue(MessageUtil.isValidPhone("010-1234-5678"));
assertTrue(MessageUtil.isValidPhone("021234567"));
}
@Test
void isValidKoreanPhone_withValidKoreanPhone_returnsTrue() {
assertTrue(MessageUtil.isValidKoreanPhone("010-1234-5678"));
assertTrue(MessageUtil.isValidKoreanPhone("016-123-4567"));
}
@Test
void isEmpty_withNullOrEmpty_returnsTrue() {
assertTrue(MessageUtil.isEmpty(null));
assertTrue(MessageUtil.isEmpty(""));
}
@Test
void isEmpty_withNonEmpty_returnsFalse() {
assertFalse(MessageUtil.isEmpty("test"));
}
@Test
void isBlank_withWhitespace_returnsTrue() {
assertTrue(MessageUtil.isBlank(" "));
assertTrue(MessageUtil.isBlank(null));
}
@Test
void convertCharset_convertsCorrectly() {
String input = "안녕하세요";
String result = MessageUtil.convertCharset(input, StandardCharsets.UTF_8, StandardCharsets.ISO_8859_1);
assertNotNull(result);
}
@Test
void truncate_truncatesLongString() {
String input = "This is a long string";
String result = MessageUtil.truncate(input, 10);
assertEquals("This is a ", result);
}
@Test
void truncate_withShortString_returnsOriginal() {
String input = "Short";
String result = MessageUtil.truncate(input, 10);
assertEquals("Short", result);
}
@Test
void padLeft_padsWithSpaces() {
String input = "123";
String result = MessageUtil.padLeft(input, 10);
assertEquals(" 123", result);
}
@Test
void padRight_padsWithSpaces() {
String input = "123";
String result = MessageUtil.padRight(input, 10);
assertEquals("123 ", result);
}
@Test
void zeroPad_padsWithZeros() {
long value = 123;
String result = MessageUtil.zeroPad(value, 10);
assertEquals("0000000123", result);
}
@Test
void toBytes_convertsStringToBytes() {
String input = "Hello";
byte[] result = MessageUtil.toBytes(input);
assertArrayEquals(new byte[]{72, 101, 108, 108, 111}, result);
}
@Test
void toString_convertsBytesToString() {
byte[] bytes = {72, 101, 108, 108, 111};
String result = MessageUtil.toString(bytes);
assertEquals("Hello", result);
}
@Test
void encodeBase64_withKoreanCharacters_encodesCorrectly() {
String input = "안녕하세요";
String encoded = MessageUtil.encodeBase64(input);
String decoded = MessageUtil.decodeBase64(encoded);
assertEquals(input, decoded);
}
@Test
void decodeHex_withInvalidHex_throwsException() {
assertThrows(IllegalArgumentException.class, () -> MessageUtil.decodeHex("123"));
}
}