From 4cd0436c84b3f85d6b412e2ab6ce8789a3497fd4 Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 5 Aug 2025 17:32:49 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20TimeWithAvailability=20=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=ED=95=84=EB=93=9C=20=EC=A0=91=EA=B7=BC=20?= =?UTF-8?q?=EC=A0=9C=ED=95=9C=EC=9E=90=20public=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/domain/TimeWithAvailability.kt | 22 +++++-------------- .../roomescape/time/business/TimeService.kt | 13 ++++++++--- .../time/business/TimeServiceTest.kt | 6 ++--- .../time/implement/TimeFinderTest.kt | 2 +- 4 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/roomescape/theme/business/domain/TimeWithAvailability.kt b/src/main/kotlin/roomescape/theme/business/domain/TimeWithAvailability.kt index 9bae4dbd..ece3e97a 100644 --- a/src/main/kotlin/roomescape/theme/business/domain/TimeWithAvailability.kt +++ b/src/main/kotlin/roomescape/theme/business/domain/TimeWithAvailability.kt @@ -1,22 +1,12 @@ package roomescape.theme.business.domain -import roomescape.time.web.TimeWithAvailabilityResponse import java.time.LocalDate import java.time.LocalTime class TimeWithAvailability( - private val timeId: Long, - private val startAt: LocalTime, - private val date: LocalDate, - private val themeId: Long, - private val isReservable: Boolean -) { - fun toResponse() = TimeWithAvailabilityResponse( - id = timeId, - startAt = startAt, - isAvailable = isReservable - ) - - // for test - fun canReserve(): Boolean = isReservable -} + val timeId: Long, + val startAt: LocalTime, + val date: LocalDate, + val themeId: Long, + val isReservable: Boolean +) diff --git a/src/main/kotlin/roomescape/time/business/TimeService.kt b/src/main/kotlin/roomescape/time/business/TimeService.kt index 5bb389c4..6f25cf6c 100644 --- a/src/main/kotlin/roomescape/time/business/TimeService.kt +++ b/src/main/kotlin/roomescape/time/business/TimeService.kt @@ -3,7 +3,6 @@ package roomescape.time.business import io.github.oshai.kotlinlogging.KotlinLogging import org.springframework.stereotype.Service import org.springframework.transaction.annotation.Transactional -import roomescape.theme.business.domain.TimeWithAvailability import roomescape.time.implement.TimeFinder import roomescape.time.implement.TimeWriter import roomescape.time.infrastructure.persistence.TimeEntity @@ -39,9 +38,17 @@ class TimeService( fun findTimesWithAvailability(date: LocalDate, themeId: Long): TimeWithAvailabilityListResponse { log.info { "[TimeService.findTimesWithAvailability] 시작: date=$date, themeId=$themeId" } - val times: List = timeFinder.findAllWithAvailabilityByDateAndThemeId(date, themeId) + val times: List = + timeFinder.findAllWithAvailabilityByDateAndThemeId(date, themeId) + .map { + TimeWithAvailabilityResponse( + id = it.timeId, + startAt = it.startAt, + isAvailable = it.isReservable + ) + } - return TimeWithAvailabilityListResponse(times.map { it.toResponse() }) + return TimeWithAvailabilityListResponse(times) .also { log.info { "[TimeService.findTimesWithAvailability] ${it.times.size}개 반환: date=$date, themeId=$themeId" } } } diff --git a/src/test/kotlin/roomescape/time/business/TimeServiceTest.kt b/src/test/kotlin/roomescape/time/business/TimeServiceTest.kt index 0197e68a..cb17cd8c 100644 --- a/src/test/kotlin/roomescape/time/business/TimeServiceTest.kt +++ b/src/test/kotlin/roomescape/time/business/TimeServiceTest.kt @@ -94,7 +94,7 @@ class TimeServiceTest : FunSpec({ assertSoftly(response.times) { it shouldHaveSize times.size - it.map { time -> time.isAvailable } shouldContainExactly times.map { time -> time.canReserve() } + it.map { time -> time.isAvailable } shouldContainExactly times.map { time -> time.isReservable } } } @@ -114,7 +114,7 @@ class TimeServiceTest : FunSpec({ context("createTime") { val request = TimeCreateRequest(startAt = LocalTime.of(10, 0)) - test("정상 저장") { + test("정상 응답") { val time: TimeEntity = TimeFixture.create(startAt = request.startAt) every { @@ -139,7 +139,7 @@ class TimeServiceTest : FunSpec({ } context("deleteTime") { - test("정상 제거 및 응답") { + test("정상 응답") { val id = 1L val time = TimeFixture.create(id = id) diff --git a/src/test/kotlin/roomescape/time/implement/TimeFinderTest.kt b/src/test/kotlin/roomescape/time/implement/TimeFinderTest.kt index 6fb1c3a7..e8d4c9f7 100644 --- a/src/test/kotlin/roomescape/time/implement/TimeFinderTest.kt +++ b/src/test/kotlin/roomescape/time/implement/TimeFinderTest.kt @@ -102,7 +102,7 @@ class TimeFinderTest : FunSpec({ assertSoftly(result) { it shouldHaveSize 2 - it.all { time -> time.canReserve() } + it.all { time -> time.isReservable } } } }