diff --git a/src/main/java/roomescape/payment/business/PaymentService.kt b/src/main/java/roomescape/payment/business/PaymentService.kt index 9d092ed6..8a406fad 100644 --- a/src/main/java/roomescape/payment/business/PaymentService.kt +++ b/src/main/java/roomescape/payment/business/PaymentService.kt @@ -13,7 +13,7 @@ import roomescape.payment.web.PaymentApprove import roomescape.payment.web.PaymentCancel import roomescape.payment.web.ReservationPaymentResponse import roomescape.payment.web.toReservationPaymentResponse -import roomescape.reservation.infrastructure.persistence.Reservation +import roomescape.reservation.infrastructure.persistence.ReservationEntity import java.time.OffsetDateTime @Service @@ -24,7 +24,7 @@ class PaymentService( @Transactional fun savePayment( paymentResponse: PaymentApprove.Response, - reservation: Reservation + reservation: ReservationEntity ): ReservationPaymentResponse = PaymentEntity( orderId = paymentResponse.orderId, paymentKey = paymentResponse.paymentKey, diff --git a/src/main/java/roomescape/payment/infrastructure/persistence/PaymentEntity.kt b/src/main/java/roomescape/payment/infrastructure/persistence/PaymentEntity.kt index bcc52d20..88f25dbe 100644 --- a/src/main/java/roomescape/payment/infrastructure/persistence/PaymentEntity.kt +++ b/src/main/java/roomescape/payment/infrastructure/persistence/PaymentEntity.kt @@ -1,7 +1,7 @@ package roomescape.payment.infrastructure.persistence import jakarta.persistence.* -import roomescape.reservation.infrastructure.persistence.Reservation +import roomescape.reservation.infrastructure.persistence.ReservationEntity import java.time.OffsetDateTime @Entity @@ -22,7 +22,7 @@ class PaymentEntity( @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "reservation_id", nullable = false) - var reservation: Reservation, + var reservation: ReservationEntity, @Column(nullable = false) var approvedAt: OffsetDateTime diff --git a/src/main/java/roomescape/reservation/business/ReservationService.java b/src/main/java/roomescape/reservation/business/ReservationService.java index fc1747d5..e38c0f98 100644 --- a/src/main/java/roomescape/reservation/business/ReservationService.java +++ b/src/main/java/roomescape/reservation/business/ReservationService.java @@ -13,7 +13,7 @@ import roomescape.common.exception.ErrorType; import roomescape.common.exception.RoomescapeException; import roomescape.member.business.MemberService; import roomescape.member.infrastructure.persistence.MemberEntity; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationSearchSpecification; import roomescape.reservation.infrastructure.persistence.ReservationStatus; @@ -50,7 +50,7 @@ public class ReservationService { @Transactional(readOnly = true) public ReservationsResponse findAllReservations() { - Specification spec = new ReservationSearchSpecification().confirmed().build(); + Specification spec = new ReservationSearchSpecification().confirmed().build(); List response = findAllReservationByStatus(spec); return new ReservationsResponse(response); @@ -58,13 +58,13 @@ public class ReservationService { @Transactional(readOnly = true) public ReservationsResponse findAllWaiting() { - Specification spec = new ReservationSearchSpecification().waiting().build(); + Specification spec = new ReservationSearchSpecification().waiting().build(); List response = findAllReservationByStatus(spec); return new ReservationsResponse(response); } - private List findAllReservationByStatus(Specification spec) { + private List findAllReservationByStatus(Specification spec) { return reservationRepository.findAll(spec) .stream() .map(ReservationResponse::from) @@ -76,9 +76,9 @@ public class ReservationService { reservationRepository.deleteById(reservationId); } - public Reservation addReservation(ReservationRequest request, Long memberId) { + public ReservationEntity addReservation(ReservationRequest request, Long memberId) { validateIsReservationExist(request.themeId, request.timeId, request.date); - Reservation reservation = getReservationForSave(request.timeId, request.themeId, request.date, memberId, + ReservationEntity reservation = getReservationForSave(request.timeId, request.themeId, request.date, memberId, ReservationStatus.CONFIRMED); return reservationRepository.save(reservation); } @@ -97,13 +97,13 @@ public class ReservationService { private ReservationResponse addReservationWithoutPayment(Long themeId, Long timeId, LocalDate date, Long memberId, ReservationStatus status) { - Reservation reservation = getReservationForSave(timeId, themeId, date, memberId, status); - Reservation saved = reservationRepository.save(reservation); + ReservationEntity reservation = getReservationForSave(timeId, themeId, date, memberId, status); + ReservationEntity saved = reservationRepository.save(reservation); return ReservationResponse.from(saved); } private void validateMemberAlreadyReserve(Long themeId, Long timeId, LocalDate date, Long memberId) { - Specification spec = new ReservationSearchSpecification() + Specification spec = new ReservationSearchSpecification() .sameMemberId(memberId) .sameThemeId(themeId) .sameTimeId(timeId) @@ -116,7 +116,7 @@ public class ReservationService { } private void validateIsReservationExist(Long themeId, Long timeId, LocalDate date) { - Specification spec = new ReservationSearchSpecification() + Specification spec = new ReservationSearchSpecification() .confirmed() .sameThemeId(themeId) .sameTimeId(timeId) @@ -143,21 +143,21 @@ public class ReservationService { } } - private Reservation getReservationForSave(Long timeId, Long themeId, LocalDate date, Long memberId, + private ReservationEntity getReservationForSave(Long timeId, Long themeId, LocalDate date, Long memberId, ReservationStatus status) { ReservationTimeEntity time = reservationTimeService.findTimeById(timeId); ThemeEntity theme = themeService.findThemeById(themeId); MemberEntity member = memberService.findById(memberId); validateDateAndTime(date, time); - return new Reservation(date, time, theme, member, status); + return new ReservationEntity(null, date, time, theme, member, status); } @Transactional(readOnly = true) public ReservationsResponse findFilteredReservations(Long themeId, Long memberId, LocalDate dateFrom, LocalDate dateTo) { validateDateForSearch(dateFrom, dateTo); - Specification spec = new ReservationSearchSpecification() + Specification spec = new ReservationSearchSpecification() .confirmed() .sameThemeId(themeId) .sameMemberId(memberId) @@ -197,8 +197,8 @@ public class ReservationService { } public void cancelWaiting(Long reservationId, Long memberId) { - Reservation waiting = reservationRepository.findById(reservationId) - .filter(Reservation::isWaiting) + ReservationEntity waiting = reservationRepository.findById(reservationId) + .filter(ReservationEntity::isWaiting) .filter(r -> r.isSameMember(memberId)) .orElseThrow(() -> throwReservationNotFound(reservationId)); reservationRepository.delete(waiting); @@ -206,8 +206,8 @@ public class ReservationService { public void denyWaiting(Long reservationId, Long memberId) { validateIsMemberAdmin(memberId); - Reservation waiting = reservationRepository.findById(reservationId) - .filter(Reservation::isWaiting) + ReservationEntity waiting = reservationRepository.findById(reservationId) + .filter(ReservationEntity::isWaiting) .orElseThrow(() -> throwReservationNotFound(reservationId)); reservationRepository.delete(waiting); } diff --git a/src/main/java/roomescape/reservation/business/ReservationTimeService.java b/src/main/java/roomescape/reservation/business/ReservationTimeService.java index 21c77a7a..1d72210c 100644 --- a/src/main/java/roomescape/reservation/business/ReservationTimeService.java +++ b/src/main/java/roomescape/reservation/business/ReservationTimeService.java @@ -9,7 +9,7 @@ import org.springframework.transaction.annotation.Transactional; import roomescape.common.exception.ErrorType; import roomescape.common.exception.RoomescapeException; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; import roomescape.reservation.infrastructure.persistence.ReservationTimeRepository; @@ -72,7 +72,7 @@ public class ReservationTimeService { public void removeTimeById(Long id) { ReservationTimeEntity reservationTime = findTimeById(id); - List usingTimeReservations = reservationRepository.findByReservationTime(reservationTime); + List usingTimeReservations = reservationRepository.findByReservationTime(reservationTime); if (!usingTimeReservations.isEmpty()) { throw new RoomescapeException(ErrorType.TIME_IS_USED_CONFLICT, String.format("[timeId: %d]", id), @@ -85,7 +85,7 @@ public class ReservationTimeService { @Transactional(readOnly = true) public ReservationTimeInfosResponse findAllAvailableTimesByDateAndTheme(LocalDate date, Long themeId) { List allTimes = reservationTimeRepository.findAll(); - List reservations = reservationRepository.findByThemeId(themeId); + List reservations = reservationRepository.findByThemeId(themeId); List response = allTimes.stream() .map(time -> new ReservationTimeInfoResponse(time.getId(), time.getStartAt(), @@ -95,7 +95,8 @@ public class ReservationTimeService { return new ReservationTimeInfosResponse(response); } - private boolean isReservationBooked(List reservations, LocalDate date, ReservationTimeEntity time) { + private boolean isReservationBooked(List reservations, LocalDate date, + ReservationTimeEntity time) { return reservations.stream() .anyMatch(reservation -> reservation.isSameDateAndTime(date, time)); } diff --git a/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.java b/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.java index 9e01b26b..13a78758 100644 --- a/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.java +++ b/src/main/java/roomescape/reservation/business/ReservationWithPaymentService.java @@ -9,7 +9,7 @@ import roomescape.payment.business.PaymentService; import roomescape.payment.web.PaymentApprove; import roomescape.payment.web.PaymentCancel; import roomescape.payment.web.ReservationPaymentResponse; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.web.ReservationRequest; import roomescape.reservation.web.ReservationResponse; @@ -29,7 +29,7 @@ public class ReservationWithPaymentService { public ReservationResponse addReservationWithPayment(ReservationRequest request, PaymentApprove.Response paymentInfo, Long memberId) { - Reservation reservation = reservationService.addReservation(request, memberId); + ReservationEntity reservation = reservationService.addReservation(request, memberId); ReservationPaymentResponse reservationPaymentResponse = paymentService.savePayment(paymentInfo, reservation); return reservationPaymentResponse.reservation(); diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt index 81b8583c..cd8970e3 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationEntity.kt @@ -1,127 +1,59 @@ -package roomescape.reservation.infrastructure.persistence; +package roomescape.reservation.infrastructure.persistence -import java.time.LocalDate; - -import org.springframework.http.HttpStatus; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import roomescape.common.exception.ErrorType; -import roomescape.common.exception.RoomescapeException; -import roomescape.member.infrastructure.persistence.MemberEntity; -import roomescape.theme.infrastructure.persistence.ThemeEntity; +import com.fasterxml.jackson.annotation.JsonIgnore +import io.swagger.v3.oas.annotations.media.Schema +import jakarta.persistence.* +import roomescape.member.infrastructure.persistence.MemberEntity +import roomescape.theme.infrastructure.persistence.ThemeEntity +import java.time.LocalDate @Entity -public class Reservation { +@Table(name = "reservation") +class ReservationEntity( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + var id: Long? = null, - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + var date: LocalDate, - private LocalDate date; + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "time_id", nullable = false) + var reservationTime: ReservationTimeEntity, - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "time_id", nullable = false) - private ReservationTimeEntity reservationTime; + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "theme_id", nullable = false) + var theme: ThemeEntity, - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "theme_id", nullable = false) - private ThemeEntity theme; + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", nullable = false) + var member: MemberEntity, - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "member_id", nullable = false) - private MemberEntity member; + @Enumerated(value = EnumType.STRING) + var reservationStatus: ReservationStatus +) { - @Enumerated(value = EnumType.STRING) - private ReservationStatus reservationStatus; + @JsonIgnore + fun isSameDateAndTime(date: LocalDate?, time: ReservationTimeEntity): Boolean { + return this.date == date && time.startAt == this.reservationTime.startAt + } - protected Reservation() { - } + @JsonIgnore + fun isWaiting(): Boolean = reservationStatus == ReservationStatus.WAITING - public Reservation( - LocalDate date, - ReservationTimeEntity reservationTime, - ThemeEntity theme, - MemberEntity member, - ReservationStatus status - ) { - this(null, date, reservationTime, theme, member, status); - } - - public Reservation( - Long id, - LocalDate date, - ReservationTimeEntity reservationTime, - ThemeEntity theme, - MemberEntity member, - ReservationStatus status - ) { - validateIsNull(date, reservationTime, theme, member, status); - this.id = id; - this.date = date; - this.reservationTime = reservationTime; - this.theme = theme; - this.member = member; - this.reservationStatus = status; - } - - private void validateIsNull(LocalDate date, ReservationTimeEntity reservationTime, ThemeEntity theme, MemberEntity member, - ReservationStatus reservationStatus) { - if (date == null || reservationTime == null || theme == null || member == null || reservationStatus == null) { - throw new RoomescapeException(ErrorType.REQUEST_DATA_BLANK, String.format("[values: %s]", this), - HttpStatus.BAD_REQUEST); - } - } - - public Long getMemberId() { - return member.getId(); - } - - public Long getId() { - return id; - } - - public LocalDate getDate() { - return date; - } - - public ReservationTimeEntity getReservationTime() { - return reservationTime; - } - - public ThemeEntity getTheme() { - return theme; - } - - public MemberEntity getMember() { - return member; - } - - public ReservationStatus getReservationStatus() { - return reservationStatus; - } - - @JsonIgnore - public boolean isSameDateAndTime(LocalDate date, ReservationTimeEntity time) { - return this.date.equals(date) && time.getStartAt().equals(this.reservationTime.getStartAt()); - } - - @JsonIgnore - public boolean isWaiting() { - return reservationStatus == ReservationStatus.WAITING; - } - - @JsonIgnore - public boolean isSameMember(Long memberId) { - return getMemberId().equals(memberId); - } + @JsonIgnore + fun isSameMember(memberId: Long): Boolean { + return this.member.id == memberId + } +} + +@Schema(description = "예약 상태를 나타냅니다.", allowableValues = ["CONFIRMED", "CONFIRMED_PAYMENT_REQUIRED", "WAITING"]) +enum class ReservationStatus { + @Schema(description = "결제가 완료된 예약") + CONFIRMED, + + @Schema(description = "결제가 필요한 예약") + CONFIRMED_PAYMENT_REQUIRED, + + @Schema(description = "대기 중인 예약") + WAITING } diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.java b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.java index 3635d4ff..5b36ee61 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.java +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationRepository.java @@ -10,15 +10,16 @@ import org.springframework.data.repository.query.Param; import roomescape.reservation.web.MyReservationResponse; -public interface ReservationRepository extends JpaRepository, JpaSpecificationExecutor { +public interface ReservationRepository + extends JpaRepository, JpaSpecificationExecutor { - List findByReservationTime(ReservationTimeEntity reservationTime); + List findByReservationTime(ReservationTimeEntity reservationTime); - List findByThemeId(Long themeId); + List findByThemeId(Long themeId); @Modifying @Query(""" - UPDATE Reservation r + UPDATE ReservationEntity r SET r.reservationStatus = :status WHERE r.id = :id """) @@ -27,13 +28,13 @@ public interface ReservationRepository extends JpaRepository, @Query(""" SELECT EXISTS ( - SELECT 1 FROM Reservation r + SELECT 1 FROM ReservationEntity r WHERE r.theme.id = r2.theme.id AND r.reservationTime.id = r2.reservationTime.id AND r.date = r2.date AND r.reservationStatus != 'WAITING' ) - FROM Reservation r2 + FROM ReservationEntity r2 WHERE r2.id = :id """) boolean isExistConfirmedReservation(@Param("id") Long reservationId); @@ -45,11 +46,11 @@ public interface ReservationRepository extends JpaRepository, r.date, r.reservationTime.startAt, r.reservationStatus, - (SELECT COUNT (r2) * 1L FROM Reservation r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.reservationTime = r.reservationTime AND r2.id < r.id), + (SELECT COUNT (r2) * 1L FROM ReservationEntity r2 WHERE r2.theme = r.theme AND r2.date = r.date AND r2.reservationTime = r.reservationTime AND r2.id < r.id), p.paymentKey, p.totalAmount ) - FROM Reservation r + FROM ReservationEntity r JOIN r.theme t LEFT JOIN PaymentEntity p ON p.reservation = r diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecification.kt b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecification.kt index 7d18b86d..ca55ce2e 100644 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecification.kt +++ b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecification.kt @@ -6,7 +6,7 @@ import roomescape.theme.infrastructure.persistence.ThemeEntity import java.time.LocalDate class ReservationSearchSpecification( - private var spec: Specification = Specification { _, _, _ -> null } + private var spec: Specification = Specification { _, _, _ -> null } ) { fun sameThemeId(themeId: Long?): ReservationSearchSpecification = andIfNotNull(themeId?.let { Specification { root, _, cb -> @@ -64,11 +64,11 @@ class ReservationSearchSpecification( } }) - fun build(): Specification { + fun build(): Specification { return this.spec } - private fun andIfNotNull(condition: Specification?): ReservationSearchSpecification { + private fun andIfNotNull(condition: Specification?): ReservationSearchSpecification { condition?.let { this.spec = this.spec.and(condition) } return this } diff --git a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationStatus.java b/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationStatus.java deleted file mode 100644 index d5f10221..00000000 --- a/src/main/java/roomescape/reservation/infrastructure/persistence/ReservationStatus.java +++ /dev/null @@ -1,13 +0,0 @@ -package roomescape.reservation.infrastructure.persistence; - -import io.swagger.v3.oas.annotations.media.Schema; - -@Schema(description = "예약 상태를 나타냅니다.", allowableValues = {"CONFIRMED", "CONFIRMED_PAYMENT_REQUIRED", "WAITING"}) -public enum ReservationStatus { - @Schema(description = "결제가 완료된 예약") - CONFIRMED, - @Schema(description = "결제가 필요한 예약") - CONFIRMED_PAYMENT_REQUIRED, - @Schema(description = "대기 중인 예약") - WAITING; -} diff --git a/src/main/java/roomescape/reservation/web/ReservationResponse.kt b/src/main/java/roomescape/reservation/web/ReservationResponse.kt index e7f41596..548b5d56 100644 --- a/src/main/java/roomescape/reservation/web/ReservationResponse.kt +++ b/src/main/java/roomescape/reservation/web/ReservationResponse.kt @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty import io.swagger.v3.oas.annotations.media.Schema import roomescape.member.web.MemberResponse import roomescape.member.web.MemberResponse.Companion.fromEntity -import roomescape.reservation.infrastructure.persistence.Reservation +import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity import roomescape.theme.web.ThemeResponse @@ -73,9 +73,9 @@ data class ReservationResponse( ) { companion object { @JvmStatic - fun from(reservation: Reservation): ReservationResponse { + fun from(reservation: ReservationEntity): ReservationResponse { return ReservationResponse( - reservation.id, + reservation.id!!, reservation.date, fromEntity(reservation.member), ReservationTimeResponse.Companion.from(reservation.reservationTime), diff --git a/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.kt b/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.kt index f0ea0b5a..83b02cfe 100644 --- a/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.kt +++ b/src/main/java/roomescape/theme/infrastructure/persistence/ThemeRepository.kt @@ -9,7 +9,7 @@ interface ThemeRepository : JpaRepository { @Query(value = """ SELECT t FROM ThemeEntity t - RIGHT JOIN Reservation r ON t.id = r.theme.id + RIGHT JOIN ReservationEntity r ON t.id = r.theme.id WHERE r.date BETWEEN :startDate AND :endDate GROUP BY r.theme.id ORDER BY COUNT(r.theme.id) DESC, t.id ASC @@ -24,7 +24,7 @@ interface ThemeRepository : JpaRepository { @Query(value = """ SELECT EXISTS( SELECT 1 - FROM Reservation r + FROM ReservationEntity r WHERE r.theme.id = :id ) """) diff --git a/src/test/java/roomescape/payment/business/PaymentServiceTest.java b/src/test/java/roomescape/payment/business/PaymentServiceTest.java index 7d48ef0d..dffdd39a 100644 --- a/src/test/java/roomescape/payment/business/PaymentServiceTest.java +++ b/src/test/java/roomescape/payment/business/PaymentServiceTest.java @@ -22,7 +22,7 @@ import roomescape.payment.infrastructure.persistence.CanceledPaymentRepository; import roomescape.payment.web.PaymentApprove; import roomescape.payment.web.PaymentCancel; import roomescape.payment.web.ReservationPaymentResponse; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -55,12 +55,14 @@ class PaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusHours(1L); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "email@email.com", "password", Role.MEMBER)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); - Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member, - ReservationStatus.CONFIRMED)); + ReservationEntity reservation = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, + ReservationStatus.CONFIRMED)); // when ReservationPaymentResponse reservationPaymentResponse = paymentService.savePayment(paymentInfo, reservation); @@ -78,12 +80,14 @@ class PaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusHours(1L); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "email@email.com", "password", Role.MEMBER)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); - Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member, - ReservationStatus.CONFIRMED)); + ReservationEntity reservation = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, + ReservationStatus.CONFIRMED)); paymentService.savePayment(paymentInfo, reservation); @@ -116,12 +120,14 @@ class PaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusHours(1L); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "email@email.com", "password", Role.MEMBER)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); - Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member, - ReservationStatus.CONFIRMED)); + ReservationEntity reservation = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, + ReservationStatus.CONFIRMED)); paymentService.savePayment(paymentInfo, reservation); paymentService.cancelPaymentByAdmin(reservation.getId()); diff --git a/src/test/java/roomescape/payment/infrastructure/persistence/PaymentRepositoryTest.kt b/src/test/java/roomescape/payment/infrastructure/persistence/PaymentRepositoryTest.kt index ab3217d0..f398564d 100644 --- a/src/test/java/roomescape/payment/infrastructure/persistence/PaymentRepositoryTest.kt +++ b/src/test/java/roomescape/payment/infrastructure/persistence/PaymentRepositoryTest.kt @@ -98,6 +98,6 @@ class PaymentRepositoryTest( entityManager.flush() entityManager.clear() - }.id + }.id!! } } diff --git a/src/test/java/roomescape/reservation/business/ReservationServiceTest.java b/src/test/java/roomescape/reservation/business/ReservationServiceTest.java index cf6aa519..d9a2a2c9 100644 --- a/src/test/java/roomescape/reservation/business/ReservationServiceTest.java +++ b/src/test/java/roomescape/reservation/business/ReservationServiceTest.java @@ -19,7 +19,7 @@ import roomescape.member.business.MemberService; import roomescape.member.infrastructure.persistence.MemberEntity; import roomescape.member.infrastructure.persistence.MemberRepository; import roomescape.member.infrastructure.persistence.Role; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -233,7 +233,7 @@ class ReservationServiceTest { reservationService.approveWaiting(waiting.id, admin.getId()); // then - Reservation confirmed = reservationRepository.findById(waiting.id).get(); + ReservationEntity confirmed = reservationRepository.findById(waiting.id).get(); assertThat(confirmed.getReservationStatus()).isEqualTo(ReservationStatus.CONFIRMED_PAYMENT_REQUIRED); } } diff --git a/src/test/java/roomescape/reservation/business/ReservationTimeServiceTest.java b/src/test/java/roomescape/reservation/business/ReservationTimeServiceTest.java index 32cccb52..041afa70 100644 --- a/src/test/java/roomescape/reservation/business/ReservationTimeServiceTest.java +++ b/src/test/java/roomescape/reservation/business/ReservationTimeServiceTest.java @@ -17,7 +17,7 @@ import roomescape.common.exception.RoomescapeException; import roomescape.member.infrastructure.persistence.MemberEntity; import roomescape.member.infrastructure.persistence.MemberRepository; import roomescape.member.infrastructure.persistence.Role; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -57,7 +57,8 @@ class ReservationTimeServiceTest { @DisplayName("존재하지 않는 ID로 시간을 조회하면 예외가 발생한다.") void findTimeByIdFail() { // given - ReservationTimeEntity saved = reservationTimeRepository.save(new ReservationTimeEntity(null, LocalTime.of(12, 30))); + ReservationTimeEntity saved = reservationTimeRepository.save( + new ReservationTimeEntity(null, LocalTime.of(12, 30))); // when Long invalidTimeId = saved.getId() + 1; @@ -79,8 +80,9 @@ class ReservationTimeServiceTest { new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)); // when - reservationRepository.save(new Reservation(localDateTime.toLocalDate(), reservationTime, theme, member, - ReservationStatus.CONFIRMED)); + reservationRepository.save( + new ReservationEntity(null, localDateTime.toLocalDate(), reservationTime, theme, member, + ReservationStatus.CONFIRMED)); // then assertThatThrownBy(() -> reservationTimeService.removeTimeById(reservationTime.getId())) diff --git a/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.java b/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.java index ebe9f602..06942c89 100644 --- a/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.java +++ b/src/test/java/roomescape/reservation/business/ReservationWithPaymentServiceTest.java @@ -21,7 +21,7 @@ import roomescape.payment.infrastructure.persistence.PaymentEntity; import roomescape.payment.infrastructure.persistence.PaymentRepository; import roomescape.payment.web.PaymentApprove; import roomescape.payment.web.PaymentCancel; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -58,7 +58,8 @@ class ReservationWithPaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "email@email.com", "password", Role.MEMBER)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); @@ -95,7 +96,8 @@ class ReservationWithPaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "admin@email.com", "password", Role.ADMIN)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); @@ -124,13 +126,14 @@ class ReservationWithPaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusHours(1L); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "admin@email.com", "password", Role.ADMIN)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); - Reservation saved = reservationRepository.save( - new Reservation(date, time, theme, member, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)); + ReservationEntity saved = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)); // when boolean result = reservationWithPaymentService.isNotPaidReservation(saved.getId()); @@ -147,7 +150,8 @@ class ReservationWithPaymentServiceTest { OffsetDateTime.now(), 10000L); LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0); LocalDate date = localDateTime.toLocalDate(); - ReservationTimeEntity time = reservationTimeRepository.save(new ReservationTimeEntity(null, localDateTime.toLocalTime())); + ReservationTimeEntity time = reservationTimeRepository.save( + new ReservationTimeEntity(null, localDateTime.toLocalTime())); MemberEntity member = memberRepository.save( new MemberEntity(null, "member", "admin@email.com", "password", Role.ADMIN)); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail")); diff --git a/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecificationTest.kt b/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecificationTest.kt index 263be63e..34f96d9f 100644 --- a/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecificationTest.kt +++ b/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationSearchSpecificationTest.kt @@ -21,19 +21,19 @@ class ReservationSearchSpecificationTest( ) : StringSpec() { init { - lateinit var confirmedNow: Reservation - lateinit var confirmedNotPaidYesterday: Reservation - lateinit var waitingTomorrow: Reservation + lateinit var confirmedNow: ReservationEntity + lateinit var confirmedNotPaidYesterday: ReservationEntity + lateinit var waitingTomorrow: ReservationEntity lateinit var member: MemberEntity lateinit var reservationTime: ReservationTimeEntity lateinit var theme: ThemeEntity "동일한 테마의 예약을 조회한다" { val spec = ReservationSearchSpecification() - .sameThemeId(theme.id) - .build() + .sameThemeId(theme.id) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 3 @@ -43,10 +43,10 @@ class ReservationSearchSpecificationTest( "동일한 회원의 예약을 조회한다" { val spec = ReservationSearchSpecification() - .sameMemberId(member.id) - .build() + .sameMemberId(member.id) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 3 @@ -56,10 +56,10 @@ class ReservationSearchSpecificationTest( "동일한 예약 시간의 예약을 조회한다" { val spec = ReservationSearchSpecification() - .sameTimeId(reservationTime.id) - .build() + .sameTimeId(reservationTime.id) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 3 @@ -69,10 +69,10 @@ class ReservationSearchSpecificationTest( "동일한 날짜의 예약을 조회한다" { val spec = ReservationSearchSpecification() - .sameDate(LocalDate.now()) - .build() + .sameDate(LocalDate.now()) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 1 @@ -85,7 +85,7 @@ class ReservationSearchSpecificationTest( .confirmed() .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 2 @@ -95,10 +95,10 @@ class ReservationSearchSpecificationTest( "대기 상태인 예약을 조회한다" { val spec = ReservationSearchSpecification() - .waiting() - .build() + .waiting() + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 1 @@ -108,10 +108,10 @@ class ReservationSearchSpecificationTest( "예약 날짜가 오늘 이후인 예약을 조회한다" { val spec = ReservationSearchSpecification() - .dateStartFrom(LocalDate.now()) - .build() + .dateStartFrom(LocalDate.now()) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 2 @@ -121,10 +121,10 @@ class ReservationSearchSpecificationTest( "예약 날짜가 내일 이전인 예약을 조회한다" { val spec = ReservationSearchSpecification() - .dateEndAt(LocalDate.now().plusDays(1)) - .build() + .dateEndAt(LocalDate.now().plusDays(1)) + .build() - val results: List = reservationRepository.findAll(spec) + val results: List = reservationRepository.findAll(spec) assertSoftly(results) { this shouldHaveSize 3 diff --git a/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationTest.java b/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationTest.java deleted file mode 100644 index 9c0bf1e4..00000000 --- a/src/test/java/roomescape/reservation/infrastructure/persistence/ReservationTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package roomescape.reservation.infrastructure.persistence; - -import java.time.LocalDate; -import java.time.LocalTime; -import java.util.stream.Stream; - -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -import roomescape.common.exception.RoomescapeException; -import roomescape.member.infrastructure.persistence.MemberEntity; -import roomescape.member.infrastructure.persistence.Role; -import roomescape.theme.infrastructure.persistence.ThemeEntity; - -public class ReservationTest { - - @ParameterizedTest - @MethodSource("validateConstructorParameterBlankSource") - @DisplayName("객체 생성 시, null 또는 공백이 존재하면 예외를 발생한다.") - void validateConstructorParameterBlank(LocalDate date, ReservationTimeEntity reservationTime, ThemeEntity theme, - MemberEntity member) { - - // when & then - Assertions.assertThatThrownBy( - () -> new Reservation(date, reservationTime, theme, member, ReservationStatus.CONFIRMED)) - .isInstanceOf(RoomescapeException.class); - } - - static Stream validateConstructorParameterBlankSource() { - return Stream.of( - Arguments.of(null, - new ReservationTimeEntity(null, LocalTime.now().plusHours(1)), - new ThemeEntity(null, "테마명", "설명", "썸네일URI"), - new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)), - Arguments.of( - LocalDate.now(), - null, - new ThemeEntity(null, "테마명", "설명", "썸네일URI"), - new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)), - Arguments.of( - LocalDate.now(), - new ReservationTimeEntity(null, LocalTime.now().plusHours(1)), - null, - new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)), - Arguments.of( - LocalDate.now(), - new ReservationTimeEntity(null, LocalTime.now().plusHours(1)), - new ThemeEntity(null, "테마명", "설명", "썸네일URI"), - null) - ); - } -} diff --git a/src/test/java/roomescape/reservation/web/ReservationControllerTest.java b/src/test/java/roomescape/reservation/web/ReservationControllerTest.java index 5099ec66..fb382f10 100644 --- a/src/test/java/roomescape/reservation/web/ReservationControllerTest.java +++ b/src/test/java/roomescape/reservation/web/ReservationControllerTest.java @@ -42,7 +42,7 @@ import roomescape.payment.infrastructure.persistence.PaymentEntity; import roomescape.payment.infrastructure.persistence.PaymentRepository; import roomescape.payment.web.PaymentApprove; import roomescape.payment.web.PaymentCancel; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -129,10 +129,11 @@ public class ReservationControllerTest { new MemberEntity(null, "name1", "email1r@email.com", "password", Role.MEMBER)); // when - reservationRepository.save(new Reservation(LocalDate.now().plusDays(1), reservationTime, theme, member1, - ReservationStatus.CONFIRMED)); - Reservation waiting = reservationRepository.save( - new Reservation(LocalDate.now().plusDays(1), reservationTime, theme, member, + reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(1), reservationTime, theme, member1, + ReservationStatus.CONFIRMED)); + ReservationEntity waiting = reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(1), reservationTime, theme, member, ReservationStatus.WAITING)); // then @@ -159,10 +160,11 @@ public class ReservationControllerTest { new MemberEntity(null, "name1", "email1r@email.com", "password", Role.MEMBER)); // when - reservationRepository.save(new Reservation(LocalDate.now().plusDays(1), reservationTime, theme, confirmedMember, - ReservationStatus.CONFIRMED)); - Reservation waiting = reservationRepository.save( - new Reservation(LocalDate.now().plusDays(1), reservationTime, theme, waitingMember, + reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(1), reservationTime, theme, confirmedMember, + ReservationStatus.CONFIRMED)); + ReservationEntity waiting = reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(1), reservationTime, theme, waitingMember, ReservationStatus.WAITING)); // then @@ -188,11 +190,13 @@ public class ReservationControllerTest { // when reservationRepository.save( - new Reservation(LocalDate.now(), reservationTime, theme, member, ReservationStatus.CONFIRMED)); - reservationRepository.save(new Reservation(LocalDate.now().plusDays(1), reservationTime, theme, member, - ReservationStatus.CONFIRMED)); - reservationRepository.save(new Reservation(LocalDate.now().plusDays(2), reservationTime, theme, member, - ReservationStatus.CONFIRMED)); + new ReservationEntity(null, LocalDate.now(), reservationTime, theme, member, ReservationStatus.CONFIRMED)); + reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(1), reservationTime, theme, member, + ReservationStatus.CONFIRMED)); + reservationRepository.save( + new ReservationEntity(null, LocalDate.now().plusDays(2), reservationTime, theme, member, + ReservationStatus.CONFIRMED)); // then RestAssured.given().log().all() @@ -215,8 +219,8 @@ public class ReservationControllerTest { ReservationTimeEntity reservationTime = reservationTimeRepository.save( new ReservationTimeEntity(null, LocalTime.of(17, 30))); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL")); - Reservation reservation = reservationRepository.save( - new Reservation(LocalDate.now(), reservationTime, theme, member, ReservationStatus.CONFIRMED)); + ReservationEntity reservation = reservationRepository.save( + new ReservationEntity(null, LocalDate.now(), reservationTime, theme, member, ReservationStatus.CONFIRMED)); // when & then RestAssured.given().log().all() @@ -242,9 +246,11 @@ public class ReservationControllerTest { new MemberEntity(null, "name1", "email1@email.com", "password", Role.MEMBER)); reservationRepository.save( - new Reservation(LocalDate.now(), reservationTime, theme, confirmedMember, ReservationStatus.CONFIRMED)); - Reservation waiting = reservationRepository.save( - new Reservation(LocalDate.now(), reservationTime, theme, waitingMember, ReservationStatus.WAITING)); + new ReservationEntity(null, LocalDate.now(), reservationTime, theme, confirmedMember, + ReservationStatus.CONFIRMED)); + ReservationEntity waiting = reservationRepository.save( + new ReservationEntity(null, LocalDate.now(), reservationTime, theme, waitingMember, + ReservationStatus.WAITING)); // when & then RestAssured.given().log().all() @@ -269,8 +275,9 @@ public class ReservationControllerTest { MemberEntity anotherMember = memberRepository.save( new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)); - Reservation reservation = reservationRepository.save( - new Reservation(LocalDate.now(), reservationTime, theme, anotherMember, ReservationStatus.CONFIRMED)); + ReservationEntity reservation = reservationRepository.save( + new ReservationEntity(null, LocalDate.now(), reservationTime, theme, anotherMember, + ReservationStatus.CONFIRMED)); // when & then RestAssured.given().log().all() @@ -359,10 +366,10 @@ public class ReservationControllerTest { String accessToken = getAccessTokenCookieByLogin("email@email.com", "password"); // when : 예약은 2개, 예약 대기는 1개 조회되어야 한다. - reservationRepository.save(new Reservation(date, time, theme, member, ReservationStatus.CONFIRMED)); + reservationRepository.save(new ReservationEntity(null, date, time, theme, member, ReservationStatus.CONFIRMED)); reservationRepository.save( - new Reservation(date, time1, theme, member, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)); - reservationRepository.save(new Reservation(date, time2, theme, member, ReservationStatus.WAITING)); + new ReservationEntity(null, date, time1, theme, member, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)); + reservationRepository.save(new ReservationEntity(null, date, time2, theme, member, ReservationStatus.WAITING)); // then RestAssured.given().log().all() @@ -385,7 +392,7 @@ public class ReservationControllerTest { String accessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password"); // when - Reservation saved = reservationRepository.save(new Reservation(date, time, theme, + ReservationEntity saved = reservationRepository.save(new ReservationEntity(null, date, time, theme, memberRepository.save(new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)), ReservationStatus.CONFIRMED_PAYMENT_REQUIRED)); @@ -410,8 +417,8 @@ public class ReservationControllerTest { MemberEntity member = memberRepository.save( new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)); - Reservation saved = reservationRepository.save( - new Reservation(date, time, theme, member, ReservationStatus.CONFIRMED)); + ReservationEntity saved = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, ReservationStatus.CONFIRMED)); PaymentEntity savedPaymentEntity = paymentRepository.save( new PaymentEntity(null, "pk", "oi", 1000L, saved, OffsetDateTime.now().minusHours(1L))); @@ -540,7 +547,8 @@ public class ReservationControllerTest { new MemberEntity(null, "name1", "email1@email.com", "password", Role.MEMBER)); String accessToken = getAccessTokenCookieByLogin(member.getEmail(), member.getPassword()); - reservationRepository.save(new Reservation(date, time, theme, member1, ReservationStatus.CONFIRMED)); + reservationRepository.save( + new ReservationEntity(null, date, time, theme, member1, ReservationStatus.CONFIRMED)); // when & then RestAssured.given().log().all() @@ -567,8 +575,8 @@ public class ReservationControllerTest { new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)); String accessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password"); - Reservation waiting = reservationRepository.save( - new Reservation(date, time, theme, member, ReservationStatus.WAITING)); + ReservationEntity waiting = reservationRepository.save( + new ReservationEntity(null, date, time, theme, member, ReservationStatus.WAITING)); // when RestAssured.given().log().all() diff --git a/src/test/java/roomescape/reservation/web/ReservationTimeControllerTest.java b/src/test/java/roomescape/reservation/web/ReservationTimeControllerTest.java index 8fd946a5..4848d971 100644 --- a/src/test/java/roomescape/reservation/web/ReservationTimeControllerTest.java +++ b/src/test/java/roomescape/reservation/web/ReservationTimeControllerTest.java @@ -24,7 +24,7 @@ import io.restassured.http.Header; import roomescape.member.infrastructure.persistence.MemberEntity; import roomescape.member.infrastructure.persistence.MemberRepository; import roomescape.member.infrastructure.persistence.Role; -import roomescape.reservation.infrastructure.persistence.Reservation; +import roomescape.reservation.infrastructure.persistence.ReservationEntity; import roomescape.reservation.infrastructure.persistence.ReservationRepository; import roomescape.reservation.infrastructure.persistence.ReservationStatus; import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity; @@ -221,19 +221,25 @@ public class ReservationTimeControllerTest { void readReservationByDateAndThemeId() { // given LocalDate today = LocalDate.now(); - ReservationTimeEntity reservationTime1 = reservationTimeRepository.save(new ReservationTimeEntity(null, LocalTime.of(17, 0))); - ReservationTimeEntity reservationTime2 = reservationTimeRepository.save(new ReservationTimeEntity(null, LocalTime.of(17, 30))); - ReservationTimeEntity reservationTime3 = reservationTimeRepository.save(new ReservationTimeEntity(null, LocalTime.of(18, 30))); + ReservationTimeEntity reservationTime1 = reservationTimeRepository.save( + new ReservationTimeEntity(null, LocalTime.of(17, 0))); + ReservationTimeEntity reservationTime2 = reservationTimeRepository.save( + new ReservationTimeEntity(null, LocalTime.of(17, 30))); + ReservationTimeEntity reservationTime3 = reservationTimeRepository.save( + new ReservationTimeEntity(null, LocalTime.of(18, 30))); ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명1", "설명", "썸네일URL")); MemberEntity member = memberRepository.save( new MemberEntity(null, "name", "email@email.com", "password", Role.MEMBER)); reservationRepository.save( - new Reservation(today.plusDays(1), reservationTime1, theme, member, ReservationStatus.CONFIRMED)); + new ReservationEntity(null, today.plusDays(1), reservationTime1, theme, member, + ReservationStatus.CONFIRMED)); reservationRepository.save( - new Reservation(today.plusDays(1), reservationTime2, theme, member, ReservationStatus.CONFIRMED)); + new ReservationEntity(null, today.plusDays(1), reservationTime2, theme, member, + ReservationStatus.CONFIRMED)); reservationRepository.save( - new Reservation(today.plusDays(1), reservationTime3, theme, member, ReservationStatus.CONFIRMED)); + new ReservationEntity(null, today.plusDays(1), reservationTime3, theme, member, + ReservationStatus.CONFIRMED)); // when & then RestAssured.given().log().all() diff --git a/src/test/java/roomescape/util/Fixtures.kt b/src/test/java/roomescape/util/Fixtures.kt index a1d4e01a..7b6c3026 100644 --- a/src/test/java/roomescape/util/Fixtures.kt +++ b/src/test/java/roomescape/util/Fixtures.kt @@ -8,7 +8,7 @@ import roomescape.payment.infrastructure.persistence.CanceledPaymentEntity import roomescape.payment.infrastructure.persistence.PaymentEntity import roomescape.payment.web.PaymentApprove import roomescape.payment.web.PaymentCancel -import roomescape.reservation.infrastructure.persistence.Reservation +import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus import roomescape.reservation.infrastructure.persistence.ReservationTimeEntity import roomescape.theme.infrastructure.persistence.ThemeEntity @@ -75,7 +75,7 @@ object ReservationFixture { reservationTime: ReservationTimeEntity = ReservationTimeFixture.create(), member: MemberEntity = MemberFixture.create(), status: ReservationStatus = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED - ): Reservation = Reservation(id, date, reservationTime, theme, member, status) + ): ReservationEntity = ReservationEntity(id, date, reservationTime, theme, member, status) } object JwtFixture {