전화번호 정규화 유틸 추가 및 적용:
- PhoneNumberUtil 도입: 한국번호 정규화/숫자 추출 지원 - 유틸 적용: 모든 저장 및 조회에 정규형 강제 - 초대 매칭 오류 수정: 휴대폰 형식 차이 대응
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package com.eactive.apim.portal.common.util;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class PhoneNumberUtilTest {
|
||||
|
||||
@Test
|
||||
@DisplayName("휴대폰 11자리 → 010-XXXX-XXXX (멱등)")
|
||||
void mobile11() {
|
||||
assertEquals("010-1234-5678", PhoneNumberUtil.normalize("01012345678"));
|
||||
assertEquals("010-1234-5678", PhoneNumberUtil.normalize("010-1234-5678"));
|
||||
assertEquals("010-9912-0000", PhoneNumberUtil.normalize("01099120000"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("휴대폰 10자리 → 01X-XXX-XXXX")
|
||||
void mobile10() {
|
||||
assertEquals("011-123-4567", PhoneNumberUtil.normalize("0111234567"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("서울 02 → 9자리 02-XXX-XXXX / 10자리 02-XXXX-XXXX")
|
||||
void seoul() {
|
||||
assertEquals("02-123-4567", PhoneNumberUtil.normalize("021234567"));
|
||||
assertEquals("02-1234-5678", PhoneNumberUtil.normalize("0212345678"));
|
||||
assertEquals("02-1234-5678", PhoneNumberUtil.normalize("02-1234-5678"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("지역/070 → 10자리 0XX-XXX-XXXX / 11자리 0XX-XXXX-XXXX")
|
||||
void area() {
|
||||
assertEquals("031-234-5678", PhoneNumberUtil.normalize("0312345678"));
|
||||
assertEquals("070-1234-5678", PhoneNumberUtil.normalize("07012345678"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("안심번호 050X 12자리 → 0XXX-XXXX-XXXX")
|
||||
void safetyNumber() {
|
||||
assertEquals("0507-1234-5678", PhoneNumberUtil.normalize("050712345678"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("대표번호 15XX/16XX/18XX 8자리 → XXXX-XXXX")
|
||||
void representative() {
|
||||
assertEquals("1588-1234", PhoneNumberUtil.normalize("15881234"));
|
||||
assertEquals("1644-5678", PhoneNumberUtil.normalize("16445678"));
|
||||
assertEquals("1800-1234", PhoneNumberUtil.normalize("18001234"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("미해당 패턴/null/blank 는 원본 유지")
|
||||
void passthrough() {
|
||||
assertEquals("123", PhoneNumberUtil.normalize("123"));
|
||||
assertEquals("abc", PhoneNumberUtil.normalize("abc"));
|
||||
assertEquals("", PhoneNumberUtil.normalize(""));
|
||||
assertNull(PhoneNumberUtil.normalize(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("digitsOnly 는 숫자만 추출, null 유지")
|
||||
void digitsOnly() {
|
||||
assertEquals("01012345678", PhoneNumberUtil.digitsOnly("010-1234-5678"));
|
||||
assertEquals("0212345678", PhoneNumberUtil.digitsOnly("02-1234-5678"));
|
||||
assertNull(PhoneNumberUtil.digitsOnly(null));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user