Skip to content

Commit

Permalink
[Fix] - 여행 계획 UUID 하이버네이트 매핑 타입과 같도록 수정 (#220)
Browse files Browse the repository at this point in the history
* fix: 컬럼 정의 override 제거

* test: 공유 키 null 검증 추가
  • Loading branch information
Libienz authored Aug 5, 2024
1 parent f2f82f2 commit e5725c2
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ public class TravelPlan extends BaseEntity {
@Column(nullable = false)
private LocalDate startDate;

@Column(columnDefinition = "CHAR(36)", nullable = false)
@Column(nullable = false)
private UUID shareKey;

@JoinColumn(name = "author_id", nullable = false)
@ManyToOne(fetch = FetchType.LAZY)
private Member author;

public TravelPlan(Long id, String title, LocalDate startDate, UUID shareKey, Member author) {
validate(title, startDate, author);
validate(title, startDate, author, shareKey);
this.id = id;
this.title = title;
this.startDate = startDate;
Expand All @@ -55,16 +55,15 @@ public TravelPlan(String title, LocalDate startDate, UUID shareKey, Member autho
this(null, title, startDate, shareKey, author);
}


private void validate(String title, LocalDate startDate, Member author) {
validateNotNull(title, startDate, author);
private void validate(String title, LocalDate startDate, Member author, UUID shareKey) {
validateNotNull(title, startDate, author, shareKey);
validateNotBlank(title);
validateTitleLength(title);
}

private void validateNotNull(String title, LocalDate startDate, Member author) {
if (title == null || startDate == null || author == null) {
throw new BadRequestException("여행 계획에서 제목과 시작 날짜, 그리고 작성자는 비어 있을 수 없습니다");
private void validateNotNull(String title, LocalDate startDate, Member author, UUID shareKey) {
if (title == null || startDate == null || author == null || shareKey == null) {
throw new BadRequestException("여행 계획에서 제목과 시작 날짜, 공유 키, 그리고 작성자는 비어 있을 수 없습니다");
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ class TravelPlanTest {
private static final String VALID_TITLE = "제주도 여행 계획";
private static final UUID VALID_UUID = UUID.randomUUID();
private static final LocalDate VALID_START_DATE = LocalDate.now().plusDays(2);
public static final String EMPTY_FIELD_EXIST_MESSAGE = "여행 계획에서 제목과 시작 날짜, 공유 키, 그리고 작성자는 비어 있을 수 없습니다";

@DisplayName("올바른 여행 계획 생성 시에는 예외가 발생하지 않는다")
@Test
Expand All @@ -34,15 +35,23 @@ void createTravelPlanWithValidData() {
void createTravelPlanWithNullTitle() {
assertThatThrownBy(() -> new TravelPlan(null, VALID_START_DATE, VALID_UUID, VALID_AUTHOR))
.isInstanceOf(BadRequestException.class)
.hasMessage("여행 계획에서 제목과 시작 날짜, 그리고 작성자는 비어 있을 수 없습니다");
.hasMessage(EMPTY_FIELD_EXIST_MESSAGE);
}

@DisplayName("여행 계획의 시작 날짜가 비어 있는 경우 여행 계획 생성 시 예외가 발생한다")
@Test
void createTravelPlanWithNullStartDate() {
assertThatThrownBy(() -> new TravelPlan(VALID_TITLE, null, VALID_UUID, VALID_AUTHOR))
.isInstanceOf(BadRequestException.class)
.hasMessage("여행 계획에서 제목과 시작 날짜, 그리고 작성자는 비어 있을 수 없습니다");
.hasMessage(EMPTY_FIELD_EXIST_MESSAGE);
}

@DisplayName("여행 게획의 공유 키가 비어 있는 경우 여행 계획 생성 시 예외가 발생한다")
@Test
void createTravelPlanWithNullShareKey() {
assertThatThrownBy(() -> new TravelPlan(VALID_TITLE, null, VALID_UUID, VALID_AUTHOR))
.isInstanceOf(BadRequestException.class)
.hasMessage(EMPTY_FIELD_EXIST_MESSAGE);
}

@DisplayName("여행 계획 제목이 공백 문자로만 이루어져 있는 경우 생성 시 예외가 발생한다")
Expand Down

0 comments on commit e5725c2

Please sign in to comment.