diff --git a/src/main/java/com/moabam/api/application/room/CertificationService.java b/src/main/java/com/moabam/api/application/room/CertificationService.java index 3a679550..e6a56ab3 100644 --- a/src/main/java/com/moabam/api/application/room/CertificationService.java +++ b/src/main/java/com/moabam/api/application/room/CertificationService.java @@ -1,5 +1,6 @@ package com.moabam.api.application.room; +import static com.moabam.global.common.util.GlobalConstant.*; import static com.moabam.global.error.model.ErrorMessage.*; import java.time.LocalDate; @@ -109,8 +110,13 @@ public Certification findCertification(Long certificationId) { private void validateCertifyTime(LocalDateTime now, int certifyTime) { LocalTime targetTime = LocalTime.of(certifyTime, 0); - LocalDateTime minusTenMinutes = LocalDateTime.of(now.toLocalDate(), targetTime).minusMinutes(10); - LocalDateTime plusTenMinutes = LocalDateTime.of(now.toLocalDate(), targetTime).plusMinutes(10); + LocalDateTime targetDateTime = LocalDateTime.of(now.toLocalDate(), targetTime); + if (certifyTime == MIDNIGHT_HOUR) { + targetDateTime = targetDateTime.plusDays(1); + } + + LocalDateTime minusTenMinutes = targetDateTime.minusMinutes(10); + LocalDateTime plusTenMinutes = targetDateTime.plusMinutes(10); if (now.isBefore(minusTenMinutes) || now.isAfter(plusTenMinutes)) { throw new BadRequestException(INVALID_CERTIFY_TIME); diff --git a/src/main/java/com/moabam/global/common/util/GlobalConstant.java b/src/main/java/com/moabam/global/common/util/GlobalConstant.java index a9f79ff3..259c3d13 100644 --- a/src/main/java/com/moabam/global/common/util/GlobalConstant.java +++ b/src/main/java/com/moabam/global/common/util/GlobalConstant.java @@ -12,6 +12,7 @@ public class GlobalConstant { public static final String DELIMITER = "/"; public static final String CHARSET_UTF_8 = ";charset=UTF-8"; public static final String SPACE = " "; + public static final int MIDNIGHT_HOUR = 0; public static final int ONE_HOUR = 1; public static final int HOURS_IN_A_DAY = 24; public static final int NOT_COMPLETED_RANK = 500; diff --git a/src/test/java/com/moabam/api/presentation/RoomControllerTest.java b/src/test/java/com/moabam/api/presentation/RoomControllerTest.java index a1c850e7..765d6f38 100644 --- a/src/test/java/com/moabam/api/presentation/RoomControllerTest.java +++ b/src/test/java/com/moabam/api/presentation/RoomControllerTest.java @@ -850,7 +850,7 @@ void get_room_details_test() throws Exception { dailyRoomCertificationRepository.save(dailyRoomCertification); DailyRoomCertification dailyRoomCertification1 = RoomFixture.dailyRoomCertification(room.getId(), - LocalDate.of(LocalDate.now().getYear(), LocalDate.now().getMonth(), LocalDate.now().getDayOfMonth() - 3)); + LocalDate.now().minusDays(3)); dailyRoomCertificationRepository.save(dailyRoomCertification1); // expected