From b41ce4d065b63a737dc1b4c84b7d9c9bb06a81c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EB=AF=BC=EC=88=98?= Date: Wed, 10 Jan 2024 20:51:40 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20Controller=20=EB=B0=8F=20DateProvider?= =?UTF-8?q?=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DateProviderTest: findNearestWeekDay() 관련 테스트 코드 작성 - EveryCalendarControllerTest: URL validate 관련 테스트 코드 작성 issue: #35 --- .../EveryCalendarControllerTest.java | 20 +++++++++ .../Provider/DateProviderTest.java | 45 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/test/java/dev/whteb/everyCalendar/Controller/EveryCalendarControllerTest.java create mode 100644 src/test/java/dev/whteb/everyCalendar/Provider/DateProviderTest.java diff --git a/src/test/java/dev/whteb/everyCalendar/Controller/EveryCalendarControllerTest.java b/src/test/java/dev/whteb/everyCalendar/Controller/EveryCalendarControllerTest.java new file mode 100644 index 0000000..94555f9 --- /dev/null +++ b/src/test/java/dev/whteb/everyCalendar/Controller/EveryCalendarControllerTest.java @@ -0,0 +1,20 @@ +package dev.whteb.everyCalendar.Controller; + + +import dev.whteb.everyCalendar.DTO.GetIcsDTO; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Date; + +class EveryCalendarControllerTest { + + @Test + void 캘린더_URL이_잘못된_경우_예외를_던진다() { + EveryCalendarController everyCalendarController = new EveryCalendarController(null); + Assertions.assertThrows(Exception.class, () -> { + everyCalendarController.getIcs(new GetIcsDTO("https://whiteb.dev/@3a123adkl1", new Date(), new Date()), null); + }); + + } +} \ No newline at end of file diff --git a/src/test/java/dev/whteb/everyCalendar/Provider/DateProviderTest.java b/src/test/java/dev/whteb/everyCalendar/Provider/DateProviderTest.java new file mode 100644 index 0000000..8322514 --- /dev/null +++ b/src/test/java/dev/whteb/everyCalendar/Provider/DateProviderTest.java @@ -0,0 +1,45 @@ +package dev.whteb.everyCalendar.Provider; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import java.util.Calendar; +import java.util.Date; +import java.util.Locale; +import java.util.TimeZone; + +import static org.assertj.core.api.Assertions.assertThat; + +class DateProviderTest { + static Date base; + static DateProvider dateProvider; + @BeforeAll + static void beforeAll() { + base = getSpecificDate(2024, Calendar.JANUARY, 5); + dateProvider = new DateProvider(); + System.out.println("base = " + base); + } + + @Test + void 특정_요일_가장_가까운_날짜를_반환한다() { + Date thursday = dateProvider.findNearestWeekDay(Calendar.THURSDAY, base); + System.out.println("thursday = " + thursday); + assertThat(thursday).isEqualTo(getSpecificDate(2024, Calendar.JANUARY, 11)); + } + + @Test + void 시작일은_기간에_포함된다() { + Date friday = dateProvider.findNearestWeekDay(Calendar.FRIDAY, base); + System.out.println("friday = " + friday); + assertThat(friday.getTime()).isEqualTo(base.getTime()); + } + + static Date getSpecificDate(int year, int month, int date) { + Calendar calendar = Calendar.getInstance(Locale.KOREA); + calendar.setTimeZone(TimeZone.getTimeZone("Asia/Seoul")); + calendar.setTimeInMillis(0); + calendar.set(year, month, date, 0, 0, 0); + return new Date(calendar.getTimeInMillis()); + } + +} \ No newline at end of file