[공통] util → framework 유틸 (ACM-CM-002)

This commit is contained in:
forge-bot 2026-07-18 11:03:14 +00:00
parent 92c06b9c9b
commit 9f25c6689f

View file

@ -0,0 +1,161 @@
package com.klaro.acquirecore.framework.util;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
import java.time.LocalDateTime;
import static org.junit.jupiter.api.Assertions.*;
class DateUtilTest {
@Test
void parseDate_withValidDateString_returnsLocalDate() {
LocalDate result = DateUtil.parseDate("2024-01-15");
assertEquals(LocalDate.of(2024, 1, 15), result);
}
@Test
void parseDate_withNull_throwsException() {
assertThrows(NullPointerException.class, () -> DateUtil.parseDate(null));
}
@Test
void formatDate_withValidDate_returnsFormattedString() {
LocalDate date = LocalDate.of(2024, 1, 15);
String result = DateUtil.formatDate(date);
assertEquals("2024-01-15", result);
}
@Test
void formatDate_withNull_throwsException() {
assertThrows(NullPointerException.class, () -> DateUtil.formatDate(null));
}
@Test
void daysBetween_calculatesCorrectDays() {
LocalDate start = LocalDate.of(2024, 1, 1);
LocalDate end = LocalDate.of(2024, 1, 11);
long result = DateUtil.daysBetween(start, end);
assertEquals(10, result);
}
@Test
void addDays_addsCorrectDays() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDate result = DateUtil.addDays(date, 5);
assertEquals(LocalDate.of(2024, 1, 20), result);
}
@Test
void addDays_withNegativeValue_subtractsDays() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDate result = DateUtil.addDays(date, -5);
assertEquals(LocalDate.of(2024, 1, 10), result);
}
@Test
void isBetween_withDateInRange_returnsTrue() {
LocalDate date = LocalDate.of(2024, 6, 15);
LocalDate start = LocalDate.of(2024, 1, 1);
LocalDate end = LocalDate.of(2024, 12, 31);
assertTrue(DateUtil.isBetween(date, start, end));
}
@Test
void isBetween_withDateOutOfRange_returnsFalse() {
LocalDate date = LocalDate.of(2025, 1, 1);
LocalDate start = LocalDate.of(2024, 1, 1);
LocalDate end = LocalDate.of(2024, 12, 31);
assertFalse(DateUtil.isBetween(date, start, end));
}
@Test
void isValidDate_withValidDate_returnsTrue() {
assertTrue(DateUtil.isValidDate("2024-01-15"));
}
@Test
void isValidDate_withInvalidDate_returnsFalse() {
assertFalse(DateUtil.isValidDate("invalid-date"));
}
@Test
void isValidDate_withNull_returnsFalse() {
assertFalse(DateUtil.isValidDate(null));
}
@Test
void today_returnsCurrentDate() {
LocalDate result = DateUtil.today();
assertEquals(LocalDate.now(), result);
}
@Test
void now_returnsCurrentDateTime() {
LocalDateTime result = DateUtil.now();
assertNotNull(result);
}
@Test
void parseDateTime_withValidDateTimeString_returnsLocalDateTime() {
LocalDateTime result = DateUtil.parseDateTime("2024-01-15 10:30:45");
assertEquals(LocalDateTime.of(2024, 1, 15, 10, 30, 45), result);
}
@Test
void formatDateTime_withValidDateTime_returnsFormattedString() {
LocalDateTime dateTime = LocalDateTime.of(2024, 1, 15, 10, 30, 45);
String result = DateUtil.formatDateTime(dateTime);
assertEquals("2024-01-15 10:30:45", result);
}
@Test
void formatDateKorean_withValidDate_returnsKoreanFormat() {
LocalDate date = LocalDate.of(2024, 1, 15);
String result = DateUtil.formatDateKorean(date);
assertEquals("2024년 01월 15일", result);
}
@Test
void startOfDay_returnsStartOfDayDateTime() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDateTime result = DateUtil.startOfDay(date);
assertEquals(LocalDateTime.of(2024, 1, 15, 0, 0, 0), result);
}
@Test
void endOfDay_returnsEndOfDayDateTime() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDateTime result = DateUtil.endOfDay(date);
assertEquals(LocalDateTime.of(2024, 1, 15, 23, 59, 59, 999999999), result);
}
@Test
void addMonths_addsCorrectMonths() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDate result = DateUtil.addMonths(date, 3);
assertEquals(LocalDate.of(2024, 4, 15), result);
}
@Test
void addYears_addsCorrectYears() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDate result = DateUtil.addYears(date, 1);
assertEquals(LocalDate.of(2025, 1, 15), result);
}
@Test
void isBefore_withEarlierDate_returnsTrue() {
LocalDate date = LocalDate.of(2024, 1, 15);
LocalDate dateToCompare = LocalDate.of(2024, 1, 20);
assertTrue(DateUtil.isBefore(date, dateToCompare));
}
@Test
void isAfter_withLaterDate_returnsTrue() {
LocalDate date = LocalDate.of(2024, 1, 20);
LocalDate dateToCompare = LocalDate.of(2024, 1, 15);
assertTrue(DateUtil.isAfter(date, dateToCompare));
}
}