generated from pricelees/issue-pr-template
refactor: Theme 클래스 코틀린 전환 및 클래스명 변경(-> ThemeEntity)
This commit is contained in:
parent
b6dd89c9d4
commit
c9ab0aff95
@ -18,7 +18,7 @@ import jakarta.persistence.ManyToOne;
|
||||
import roomescape.common.exception.ErrorType;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.member.infrastructure.persistence.Member;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
|
||||
@Entity
|
||||
public class Reservation {
|
||||
@ -35,7 +35,7 @@ public class Reservation {
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "theme_id", nullable = false)
|
||||
private Theme theme;
|
||||
private ThemeEntity theme;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "member_id", nullable = false)
|
||||
@ -50,7 +50,7 @@ public class Reservation {
|
||||
public Reservation(
|
||||
LocalDate date,
|
||||
ReservationTime reservationTime,
|
||||
Theme theme,
|
||||
ThemeEntity theme,
|
||||
Member member,
|
||||
ReservationStatus status
|
||||
) {
|
||||
@ -61,7 +61,7 @@ public class Reservation {
|
||||
Long id,
|
||||
LocalDate date,
|
||||
ReservationTime reservationTime,
|
||||
Theme theme,
|
||||
ThemeEntity theme,
|
||||
Member member,
|
||||
ReservationStatus status
|
||||
) {
|
||||
@ -74,7 +74,7 @@ public class Reservation {
|
||||
this.reservationStatus = status;
|
||||
}
|
||||
|
||||
private void validateIsNull(LocalDate date, ReservationTime reservationTime, Theme theme, Member member,
|
||||
private void validateIsNull(LocalDate date, ReservationTime reservationTime, ThemeEntity theme, Member 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),
|
||||
@ -98,7 +98,7 @@ public class Reservation {
|
||||
return reservationTime;
|
||||
}
|
||||
|
||||
public Theme getTheme() {
|
||||
public ThemeEntity getTheme() {
|
||||
return theme;
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ import roomescape.reservation.dto.request.WaitingRequest;
|
||||
import roomescape.reservation.dto.response.MyReservationsResponse;
|
||||
import roomescape.reservation.dto.response.ReservationResponse;
|
||||
import roomescape.reservation.dto.response.ReservationsResponse;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.business.ThemeService;
|
||||
|
||||
@Service
|
||||
@ -146,7 +146,7 @@ public class ReservationService {
|
||||
private Reservation getReservationForSave(Long timeId, Long themeId, LocalDate date, Long memberId,
|
||||
ReservationStatus status) {
|
||||
ReservationTime time = reservationTimeService.findTimeById(timeId);
|
||||
Theme theme = themeService.findThemeById(themeId);
|
||||
ThemeEntity theme = themeService.findThemeById(themeId);
|
||||
Member member = memberService.findById(memberId);
|
||||
|
||||
validateDateAndTime(date, time);
|
||||
|
||||
@ -9,7 +9,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import roomescape.common.exception.ErrorType;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
import roomescape.theme.web.ThemeRequest;
|
||||
import roomescape.theme.web.ThemeResponse;
|
||||
@ -26,7 +26,7 @@ public class ThemeService {
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public Theme findThemeById(Long id) {
|
||||
public ThemeEntity findThemeById(Long id) {
|
||||
return themeRepository.findById(id)
|
||||
.orElseThrow(() -> new RoomescapeException(ErrorType.THEME_NOT_FOUND,
|
||||
String.format("[themeId: %d]", id), HttpStatus.BAD_REQUEST));
|
||||
@ -59,7 +59,7 @@ public class ThemeService {
|
||||
|
||||
public ThemeResponse addTheme(ThemeRequest request) {
|
||||
validateIsSameThemeNameExist(request.name());
|
||||
Theme theme = themeRepository.save(new Theme(request.name(), request.description(), request.thumbnail()));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(request.name(), request.description(), request.thumbnail()));
|
||||
|
||||
return ThemeResponse.from(theme);
|
||||
}
|
||||
|
||||
@ -1,65 +1,15 @@
|
||||
package roomescape.theme.infrastructure.persistence;
|
||||
package roomescape.theme.infrastructure.persistence
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.*
|
||||
|
||||
@Entity
|
||||
public class Theme {
|
||||
|
||||
@Table(name = "theme")
|
||||
class ThemeEntity(
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
var id: Long? = null,
|
||||
|
||||
private String name;
|
||||
|
||||
private String description;
|
||||
|
||||
private String thumbnail;
|
||||
|
||||
protected Theme() {
|
||||
}
|
||||
|
||||
public Theme(String name, String description, String thumbnail) {
|
||||
this(null, name, description, thumbnail);
|
||||
}
|
||||
|
||||
public Theme(
|
||||
Long id,
|
||||
String name,
|
||||
String description,
|
||||
String thumbnail
|
||||
) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.thumbnail = thumbnail;
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public String getThumbnail() {
|
||||
return thumbnail;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Theme{" +
|
||||
"id=" + id +
|
||||
", name=" + name +
|
||||
", description=" + description +
|
||||
", thumbnail=" + thumbnail +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
var name: String,
|
||||
var description: String,
|
||||
var thumbnail: String
|
||||
)
|
||||
@ -6,18 +6,18 @@ import java.util.List;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
public interface ThemeRepository extends JpaRepository<Theme, Long> {
|
||||
public interface ThemeRepository extends JpaRepository<ThemeEntity, Long> {
|
||||
|
||||
@Query(value = """
|
||||
SELECT t
|
||||
FROM Theme t
|
||||
FROM ThemeEntity t
|
||||
RIGHT JOIN Reservation 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
|
||||
LIMIT :limit
|
||||
""")
|
||||
List<Theme> findTopNThemeBetweenStartDateAndEndDate(LocalDate startDate, LocalDate endDate, int limit);
|
||||
List<ThemeEntity> findTopNThemeBetweenStartDateAndEndDate(LocalDate startDate, LocalDate endDate, int limit);
|
||||
|
||||
boolean existsByName(String name);
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema
|
||||
import jakarta.validation.constraints.NotBlank
|
||||
import jakarta.validation.constraints.Size
|
||||
import org.hibernate.validator.constraints.URL
|
||||
import roomescape.theme.infrastructure.persistence.Theme
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
|
||||
@Schema(name = "테마 저장 요청", description = "테마 정보를 저장할 때 사용합니다.")
|
||||
@JvmRecord
|
||||
@ -42,14 +42,14 @@ data class ThemeResponse(
|
||||
) {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun from(theme: Theme): ThemeResponse {
|
||||
return ThemeResponse(theme.id, theme.name, theme.description, theme.thumbnail)
|
||||
fun from(themeEntity: ThemeEntity): ThemeResponse {
|
||||
return ThemeResponse(themeEntity.id!!, themeEntity.name, themeEntity.description, themeEntity.thumbnail)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun Theme.toResponse(): ThemeResponse = ThemeResponse(
|
||||
id = this.id,
|
||||
fun ThemeEntity.toResponse(): ThemeResponse = ThemeResponse(
|
||||
id = this.id!!,
|
||||
name = this.name,
|
||||
description = this.description,
|
||||
thumbnail = this.thumbnail
|
||||
@ -62,3 +62,7 @@ data class ThemesResponse(
|
||||
@field:Schema(description = "모든 테마 목록")
|
||||
val themes: List<ThemeResponse>
|
||||
)
|
||||
|
||||
fun List<ThemeEntity>.toResponse(): ThemesResponse = ThemesResponse(
|
||||
themes = this.map { it.toResponse()}
|
||||
)
|
||||
|
||||
@ -27,7 +27,7 @@ import roomescape.reservation.domain.ReservationStatus;
|
||||
import roomescape.reservation.domain.ReservationTime;
|
||||
import roomescape.reservation.domain.repository.ReservationRepository;
|
||||
import roomescape.reservation.domain.repository.ReservationTimeRepository;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@SpringBootTest
|
||||
@ -57,7 +57,7 @@ class PaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "email@email.com", "password", Role.MEMBER));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member,
|
||||
ReservationStatus.CONFIRMED));
|
||||
|
||||
@ -79,7 +79,7 @@ class PaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "email@email.com", "password", Role.MEMBER));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member,
|
||||
ReservationStatus.CONFIRMED));
|
||||
|
||||
@ -116,7 +116,7 @@ class PaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "email@email.com", "password", Role.MEMBER));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
Reservation reservation = reservationRepository.save(new Reservation(date, time, theme, member,
|
||||
ReservationStatus.CONFIRMED));
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ import roomescape.reservation.domain.repository.ReservationTimeRepository;
|
||||
import roomescape.reservation.dto.request.AdminReservationRequest;
|
||||
import roomescape.reservation.dto.request.ReservationRequest;
|
||||
import roomescape.reservation.dto.request.WaitingRequest;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
@ -89,7 +89,7 @@ public class ReservationControllerTest {
|
||||
LocalDate date = LocalDate.now().plusDays(1L);
|
||||
|
||||
reservationTimeRepository.save(new ReservationTime(time));
|
||||
themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
|
||||
Map<String, String> reservationParams = Map.of(
|
||||
"date", date.toString(),
|
||||
@ -124,7 +124,7 @@ public class ReservationControllerTest {
|
||||
String accessTokenCookie = getAccessTokenCookieByLogin("email@email.com", "password");
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member1 = memberRepository.save(new Member(null, "name1", "email1r@email.com", "password", Role.MEMBER));
|
||||
|
||||
// when
|
||||
@ -152,7 +152,7 @@ public class ReservationControllerTest {
|
||||
String accessTokenCookie = getAccessTokenCookieByLogin("email@email.com", "password");
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member waitingMember = memberRepository.save(
|
||||
new Member(null, "name1", "email1r@email.com", "password", Role.MEMBER));
|
||||
|
||||
@ -179,7 +179,7 @@ public class ReservationControllerTest {
|
||||
String accessTokenCookie = getAdminAccessTokenCookieByLogin("admin@admin.com", "12341234");
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
// when
|
||||
@ -208,7 +208,7 @@ public class ReservationControllerTest {
|
||||
String accessTokenCookie = getAccessTokenCookieByLogin(member.getEmail(), member.getPassword());
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Reservation reservation = reservationRepository.save(
|
||||
new Reservation(LocalDate.now(), reservationTime, theme, member, ReservationStatus.CONFIRMED));
|
||||
|
||||
@ -228,7 +228,7 @@ public class ReservationControllerTest {
|
||||
String adminTokenCookie = getAdminAccessTokenCookieByLogin("admin@email.com", "password");
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member confirmedMember = memberRepository.save(
|
||||
new Member(null, "name1", "email@email.com", "password", Role.MEMBER));
|
||||
Member waitingMember = memberRepository.save(
|
||||
@ -256,7 +256,7 @@ public class ReservationControllerTest {
|
||||
String accessTokenCookie = getAccessTokenCookieByLogin(member.getEmail(), member.getPassword());
|
||||
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member anotherMember = memberRepository.save(
|
||||
new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
@ -337,7 +337,7 @@ public class ReservationControllerTest {
|
||||
void getAllReservations(String requestURI, String responseFieldName, int expectedSize) {
|
||||
// given
|
||||
LocalDate date = LocalDate.now().plusDays(1);
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
ReservationTime time1 = reservationTimeRepository.save(new ReservationTime(LocalTime.of(18, 30)));
|
||||
ReservationTime time2 = reservationTimeRepository.save(new ReservationTime(LocalTime.of(19, 30)));
|
||||
@ -366,7 +366,7 @@ public class ReservationControllerTest {
|
||||
void removeNotPaidReservation() {
|
||||
// given
|
||||
LocalDate date = LocalDate.now().plusDays(1);
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
String accessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password");
|
||||
|
||||
@ -390,7 +390,7 @@ public class ReservationControllerTest {
|
||||
// given
|
||||
String accessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password");
|
||||
LocalDate date = LocalDate.now().plusDays(1);
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
@ -421,7 +421,7 @@ public class ReservationControllerTest {
|
||||
LocalDateTime localDateTime = LocalDateTime.now().minusHours(1L).withNano(0);
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
String accessToken = getAccessTokenCookieByLogin(member.getEmail(), member.getPassword());
|
||||
|
||||
@ -514,7 +514,7 @@ public class ReservationControllerTest {
|
||||
LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0);
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
Member member1 = memberRepository.save(new Member(null, "name1", "email1@email.com", "password", Role.MEMBER));
|
||||
|
||||
@ -540,7 +540,7 @@ public class ReservationControllerTest {
|
||||
LocalDateTime localDateTime = LocalDateTime.now().plusHours(1L);
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
String accessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password");
|
||||
@ -585,7 +585,7 @@ public class ReservationControllerTest {
|
||||
LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0);
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
String adminAccessToken = getAdminAccessTokenCookieByLogin("admin@email.com", "password");
|
||||
|
||||
@ -29,7 +29,7 @@ import roomescape.reservation.domain.ReservationStatus;
|
||||
import roomescape.reservation.domain.ReservationTime;
|
||||
import roomescape.reservation.domain.repository.ReservationRepository;
|
||||
import roomescape.reservation.domain.repository.ReservationTimeRepository;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
||||
@ -224,7 +224,7 @@ public class ReservationTimeControllerTest {
|
||||
ReservationTime reservationTime1 = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 0)));
|
||||
ReservationTime reservationTime2 = reservationTimeRepository.save(new ReservationTime(LocalTime.of(17, 30)));
|
||||
ReservationTime reservationTime3 = reservationTimeRepository.save(new ReservationTime(LocalTime.of(18, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명1", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명1", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
reservationRepository.save(
|
||||
|
||||
@ -13,14 +13,14 @@ import org.junit.jupiter.params.provider.MethodSource;
|
||||
import roomescape.member.infrastructure.persistence.Member;
|
||||
import roomescape.member.infrastructure.persistence.Role;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
|
||||
public class ReservationTest {
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource("validateConstructorParameterBlankSource")
|
||||
@DisplayName("객체 생성 시, null 또는 공백이 존재하면 예외를 발생한다.")
|
||||
void validateConstructorParameterBlank(LocalDate date, ReservationTime reservationTime, Theme theme,
|
||||
void validateConstructorParameterBlank(LocalDate date, ReservationTime reservationTime, ThemeEntity theme,
|
||||
Member member) {
|
||||
|
||||
// when & then
|
||||
@ -33,12 +33,12 @@ public class ReservationTest {
|
||||
return Stream.of(
|
||||
Arguments.of(null,
|
||||
new ReservationTime(LocalTime.now().plusHours(1)),
|
||||
new Theme("테마명", "설명", "썸네일URI"),
|
||||
new ThemeEntity(null, "테마명", "설명", "썸네일URI"),
|
||||
new Member(null, "name", "email@email.com", "password", Role.MEMBER)),
|
||||
Arguments.of(
|
||||
LocalDate.now(),
|
||||
null,
|
||||
new Theme("테마명", "설명", "썸네일URI"),
|
||||
new ThemeEntity(null, "테마명", "설명", "썸네일URI"),
|
||||
new Member(null, "name", "email@email.com", "password", Role.MEMBER)),
|
||||
Arguments.of(
|
||||
LocalDate.now(),
|
||||
@ -48,7 +48,7 @@ public class ReservationTest {
|
||||
Arguments.of(
|
||||
LocalDate.now(),
|
||||
new ReservationTime(LocalTime.now().plusHours(1)),
|
||||
new Theme("테마명", "설명", "썸네일URI"),
|
||||
new ThemeEntity(null, "테마명", "설명", "썸네일URI"),
|
||||
null)
|
||||
);
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@ import roomescape.member.infrastructure.persistence.Role;
|
||||
import roomescape.reservation.domain.Reservation;
|
||||
import roomescape.reservation.domain.ReservationStatus;
|
||||
import roomescape.reservation.domain.ReservationTime;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@DataJpaTest
|
||||
@ -52,7 +52,7 @@ class ReservationSearchSpecificationTest {
|
||||
LocalDateTime dateTime = LocalDateTime.now();
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
ReservationTime time = timeRepository.save(new ReservationTime(dateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "description", "thumbnail"));
|
||||
|
||||
reservation1 = reservationRepository.save(
|
||||
new Reservation(dateTime.toLocalDate(), time, theme, member, ReservationStatus.CONFIRMED));
|
||||
|
||||
@ -27,7 +27,7 @@ import roomescape.reservation.dto.request.ReservationRequest;
|
||||
import roomescape.reservation.dto.request.WaitingRequest;
|
||||
import roomescape.reservation.dto.response.ReservationResponse;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
import roomescape.theme.business.ThemeService;
|
||||
|
||||
@ -52,7 +52,7 @@ class ReservationServiceTest {
|
||||
void reservationAlreadyExistFail() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member1 = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
Member member2 = memberRepository.save(new Member(null, "name2", "email2@email.com", "password", Role.MEMBER));
|
||||
LocalDate date = LocalDate.now().plusDays(1L);
|
||||
@ -74,7 +74,7 @@ class ReservationServiceTest {
|
||||
void requestWaitWhenAlreadyReserveFail() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
LocalDate date = LocalDate.now().plusDays(1L);
|
||||
|
||||
@ -94,7 +94,7 @@ class ReservationServiceTest {
|
||||
void requestWaitTwiceFail() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
Member member1 = memberRepository.save(new Member(null, "name1", "email1@email.com", "password", Role.MEMBER));
|
||||
LocalDate date = LocalDate.now().plusDays(1L);
|
||||
@ -118,7 +118,7 @@ class ReservationServiceTest {
|
||||
void beforeDateReservationFail() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
LocalDate beforeDate = LocalDate.now().minusDays(1L);
|
||||
|
||||
@ -135,7 +135,7 @@ class ReservationServiceTest {
|
||||
// given
|
||||
LocalDateTime beforeTime = LocalDateTime.now().minusHours(1L).withNano(0);
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(beforeTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
// when & then
|
||||
@ -151,7 +151,7 @@ class ReservationServiceTest {
|
||||
// given
|
||||
LocalDateTime beforeTime = LocalDateTime.now().minusDays(1L).withNano(0);
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(beforeTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Long NotExistMemberId = 1L;
|
||||
|
||||
// when & then
|
||||
@ -179,7 +179,7 @@ class ReservationServiceTest {
|
||||
void confirmWaitingWhenReservationExist() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member admin = memberRepository.save(new Member(null, "admin", "admin@email.com", "password", Role.ADMIN));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
Member member1 = memberRepository.save(new Member(null, "name1", "email1@email.com", "password", Role.MEMBER));
|
||||
@ -202,7 +202,7 @@ class ReservationServiceTest {
|
||||
void approveWaiting() {
|
||||
// given
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(new ReservationTime(LocalTime.of(12, 30)));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member admin = memberRepository.save(new Member(null, "admin", "admin@email.com", "password", Role.ADMIN));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ import roomescape.reservation.domain.repository.ReservationRepository;
|
||||
import roomescape.reservation.domain.repository.ReservationTimeRepository;
|
||||
import roomescape.reservation.dto.request.ReservationTimeRequest;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@SpringBootTest
|
||||
@ -74,7 +74,7 @@ class ReservationTimeServiceTest {
|
||||
LocalDateTime localDateTime = LocalDateTime.now().plusDays(1L).withNano(0);
|
||||
ReservationTime reservationTime = reservationTimeRepository.save(
|
||||
new ReservationTime(localDateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("테마명", "설명", "썸네일URL"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "테마명", "설명", "썸네일URL"));
|
||||
Member member = memberRepository.save(new Member(null, "name", "email@email.com", "password", Role.MEMBER));
|
||||
|
||||
// when
|
||||
|
||||
@ -28,7 +28,7 @@ import roomescape.reservation.domain.repository.ReservationRepository;
|
||||
import roomescape.reservation.domain.repository.ReservationTimeRepository;
|
||||
import roomescape.reservation.dto.request.ReservationRequest;
|
||||
import roomescape.reservation.dto.response.ReservationResponse;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
|
||||
@SpringBootTest
|
||||
@ -60,7 +60,7 @@ class ReservationWithPaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "email@email.com", "password", Role.MEMBER));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
ReservationRequest reservationRequest = new ReservationRequest(date, time.getId(), theme.getId(), "payment-key",
|
||||
"order-id", 10000L, "NORMAL");
|
||||
|
||||
@ -96,7 +96,7 @@ class ReservationWithPaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "admin@email.com", "password", Role.ADMIN));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
ReservationRequest reservationRequest = new ReservationRequest(date, time.getId(), theme.getId(), "payment-key",
|
||||
"order-id", 10000L, "NORMAL");
|
||||
|
||||
@ -124,7 +124,7 @@ class ReservationWithPaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "admin@email.com", "password", Role.ADMIN));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
|
||||
Reservation saved = reservationRepository.save(
|
||||
new Reservation(date, time, theme, member, ReservationStatus.CONFIRMED_PAYMENT_REQUIRED));
|
||||
@ -146,7 +146,7 @@ class ReservationWithPaymentServiceTest {
|
||||
LocalDate date = localDateTime.toLocalDate();
|
||||
ReservationTime time = reservationTimeRepository.save(new ReservationTime(localDateTime.toLocalTime()));
|
||||
Member member = memberRepository.save(new Member(null, "member", "admin@email.com", "password", Role.ADMIN));
|
||||
Theme theme = themeRepository.save(new Theme("name", "desc", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity(null, "name", "desc", "thumbnail"));
|
||||
ReservationRequest reservationRequest = new ReservationRequest(date, time.getId(), theme.getId(), "payment-key",
|
||||
"order-id", 10000L, "NORMAL");
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ import roomescape.reservation.dto.response.ReservationTimeResponse;
|
||||
import roomescape.reservation.service.ReservationService;
|
||||
import roomescape.reservation.service.ReservationTimeService;
|
||||
import roomescape.common.exception.RoomescapeException;
|
||||
import roomescape.theme.infrastructure.persistence.Theme;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity;
|
||||
import roomescape.theme.infrastructure.persistence.ThemeRepository;
|
||||
import roomescape.theme.web.ThemeRequest;
|
||||
import roomescape.theme.web.ThemeResponse;
|
||||
@ -53,10 +53,10 @@ class ThemeServiceTest {
|
||||
@DisplayName("테마를 조회한다.")
|
||||
void findThemeById() {
|
||||
// given
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity("name", "description", "thumbnail"));
|
||||
|
||||
// when
|
||||
Theme foundTheme = themeService.findThemeById(theme.getId());
|
||||
ThemeEntity foundTheme = themeService.findThemeById(theme.getId());
|
||||
|
||||
// then
|
||||
assertThat(foundTheme).isEqualTo(theme);
|
||||
@ -66,7 +66,7 @@ class ThemeServiceTest {
|
||||
@DisplayName("존재하지 않는 ID로 테마를 조회하면 예외가 발생한다.")
|
||||
void findThemeByNotExistId() {
|
||||
// given
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity("name", "description", "thumbnail"));
|
||||
|
||||
// when
|
||||
Long notExistId = theme.getId() + 1;
|
||||
@ -80,8 +80,8 @@ class ThemeServiceTest {
|
||||
@DisplayName("모든 테마를 조회한다.")
|
||||
void findAllThemes() {
|
||||
// given
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
Theme theme1 = themeRepository.save(new Theme("name1", "description1", "thumbnail1"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity("name", "description", "thumbnail"));
|
||||
ThemeEntity theme1 = themeRepository.save(new ThemeEntity("name1", "description1", "thumbnail1"));
|
||||
|
||||
// when
|
||||
ThemesResponse found = themeService.findAllThemes();
|
||||
@ -111,7 +111,7 @@ class ThemeServiceTest {
|
||||
ThemeResponse themeResponse = themeService.addTheme(new ThemeRequest("name", "description", "thumbnail"));
|
||||
|
||||
// when
|
||||
Theme found = themeRepository.findById(themeResponse.id()).orElse(null);
|
||||
ThemeEntity found = themeRepository.findById(themeResponse.id()).orElse(null);
|
||||
|
||||
// then
|
||||
assertThat(found).isNotNull();
|
||||
@ -135,7 +135,7 @@ class ThemeServiceTest {
|
||||
@DisplayName("테마를 삭제한다.")
|
||||
void removeThemeById() {
|
||||
// given
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity("name", "description", "thumbnail"));
|
||||
|
||||
// when
|
||||
themeService.removeThemeById(theme.getId());
|
||||
@ -151,7 +151,7 @@ class ThemeServiceTest {
|
||||
LocalDateTime dateTime = LocalDateTime.now().plusDays(1);
|
||||
ReservationTimeResponse time = reservationTimeService.addTime(
|
||||
new ReservationTimeRequest(dateTime.toLocalTime()));
|
||||
Theme theme = themeRepository.save(new Theme("name", "description", "thumbnail"));
|
||||
ThemeEntity theme = themeRepository.save(new ThemeEntity("name", "description", "thumbnail"));
|
||||
Member member = memberRepository.save(new Member(null, "member", "password", "name", Role.MEMBER));
|
||||
reservationService.addReservation(
|
||||
new ReservationRequest(dateTime.toLocalDate(), time.id(), theme.getId(), "paymentKey", "orderId", 1000L,
|
||||
|
||||
@ -4,7 +4,7 @@ import jakarta.persistence.EntityManager
|
||||
import roomescape.member.infrastructure.persistence.Member
|
||||
import roomescape.reservation.domain.ReservationStatus
|
||||
import roomescape.reservation.domain.ReservationTime
|
||||
import roomescape.theme.infrastructure.persistence.Theme
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
import roomescape.util.MemberFixture
|
||||
import roomescape.util.ReservationFixture
|
||||
import roomescape.util.ReservationTimeFixture
|
||||
@ -18,8 +18,8 @@ object TestThemeCreateUtil {
|
||||
name: String,
|
||||
reservedCount: Int,
|
||||
date: LocalDate,
|
||||
): Long {
|
||||
val theme: Theme = ThemeFixture.create(name = name).also { entityManager.persist(it) }
|
||||
): ThemeEntity {
|
||||
val themeEntity: ThemeEntity = ThemeFixture.create(name = name).also { entityManager.persist(it) }
|
||||
val member: Member = MemberFixture.create().also { entityManager.persist(it) }
|
||||
|
||||
for (i in 1..reservedCount) {
|
||||
@ -29,7 +29,7 @@ object TestThemeCreateUtil {
|
||||
|
||||
ReservationFixture.create(
|
||||
date = date,
|
||||
theme = theme,
|
||||
themeEntity = themeEntity,
|
||||
member = member,
|
||||
reservationTime = time,
|
||||
status = ReservationStatus.CONFIRMED
|
||||
@ -39,6 +39,6 @@ object TestThemeCreateUtil {
|
||||
entityManager.flush()
|
||||
entityManager.clear()
|
||||
|
||||
return theme.id
|
||||
return themeEntity
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ import roomescape.payment.web.PaymentCancel
|
||||
import roomescape.reservation.domain.Reservation
|
||||
import roomescape.reservation.domain.ReservationStatus
|
||||
import roomescape.reservation.domain.ReservationTime
|
||||
import roomescape.theme.infrastructure.persistence.Theme
|
||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||
import java.time.LocalDate
|
||||
import java.time.LocalTime
|
||||
import java.time.OffsetDateTime
|
||||
@ -62,18 +62,18 @@ object ThemeFixture {
|
||||
name: String = "Default Theme",
|
||||
description: String = "Default Description",
|
||||
thumbnail: String = "https://example.com/default-thumbnail.jpg"
|
||||
): Theme = Theme(id, name, description, thumbnail)
|
||||
): ThemeEntity = ThemeEntity(id, name, description, thumbnail)
|
||||
}
|
||||
|
||||
object ReservationFixture {
|
||||
fun create(
|
||||
id: Long? = null,
|
||||
date: LocalDate = LocalDate.now().plusWeeks(1),
|
||||
theme: Theme = ThemeFixture.create(),
|
||||
themeEntity: ThemeEntity = ThemeFixture.create(),
|
||||
reservationTime: ReservationTime = ReservationTimeFixture.create(),
|
||||
member: Member = MemberFixture.create(),
|
||||
status: ReservationStatus = ReservationStatus.CONFIRMED_PAYMENT_REQUIRED
|
||||
): Reservation = Reservation(id, date, reservationTime, theme, member, status)
|
||||
): Reservation = Reservation(id, date, reservationTime, themeEntity, member, status)
|
||||
}
|
||||
|
||||
object JwtFixture {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user