From 9f25c6689ff01a79ff6a1bb5c0f57c96fef8a0a2 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Sat, 18 Jul 2026 11:03:14 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B3=B5=ED=86=B5]=20util=20=E2=86=92=20frame?= =?UTF-8?q?work=20=EC=9C=A0=ED=8B=B8=20(ACM-CM-002)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/util/DateUtilTest.java | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 boot/common-framework/src/test/java/com/klaro/acquirecore/framework/util/DateUtilTest.java diff --git a/boot/common-framework/src/test/java/com/klaro/acquirecore/framework/util/DateUtilTest.java b/boot/common-framework/src/test/java/com/klaro/acquirecore/framework/util/DateUtilTest.java new file mode 100644 index 0000000..d40e7d2 --- /dev/null +++ b/boot/common-framework/src/test/java/com/klaro/acquirecore/framework/util/DateUtilTest.java @@ -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)); + } +}