Skip to content

Commit

Permalink
feat : 밸리데이션 정리 및 밸리데이션 테스트 코드 작성 (#345)
Browse files Browse the repository at this point in the history
  • Loading branch information
sanbonai06 authored Feb 12, 2023
1 parent ccd04d4 commit 4ebedfe
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ public EmailIssuedTicketInfo toEmailIssuedTicketInfo() {
티켓이 입장 미완료 상태가 아니면 취소 할 수 없음
*/
public void cancel() {
if (this.issuedTicketStatus != IssuedTicketStatus.ENTRANCE_INCOMPLETE) {
if (!this.issuedTicketStatus.isBeforeEntrance()) {
throw CanNotCancelException.EXCEPTION;
}
this.issuedTicketStatus = IssuedTicketStatus.CANCELED;
Expand All @@ -175,10 +175,10 @@ public void cancel() {
(입장 처리 도메인 이벤트 발행)
*/
public void entrance() {
if (this.issuedTicketStatus == IssuedTicketStatus.CANCELED) {
if (this.issuedTicketStatus.isCanceled()) {
throw CanNotEntranceException.EXCEPTION;
}
if (this.issuedTicketStatus == IssuedTicketStatus.ENTRANCE_COMPLETED) {
if (this.issuedTicketStatus.isAfterEntrance()) {
throw IssuedTicketAlreadyEntranceException.EXCEPTION;
}
this.issuedTicketStatus = IssuedTicketStatus.ENTRANCE_COMPLETED;
Expand All @@ -190,7 +190,7 @@ public void entrance() {
티켓이 입장 완료 상태가 아니면 입장 취소 할 수 없음
*/
public void entranceCancel() {
if (this.issuedTicketStatus != IssuedTicketStatus.ENTRANCE_COMPLETED) {
if (!this.issuedTicketStatus.isAfterEntrance()) {
throw CanNotCancelEntranceException.EXCEPTION;
}
this.issuedTicketStatus = IssuedTicketStatus.ENTRANCE_INCOMPLETE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,8 @@ public Boolean isBeforeEntrance() {
public Boolean isAfterEntrance() {
return this == IssuedTicketStatus.ENTRANCE_COMPLETED;
}

public Boolean is(IssuedTicket issuedTicket) {
return issuedTicket.getIssuedTicketStatus() == IssuedTicketStatus.ENTRANCE_INCOMPLETE;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@

import band.gosrock.common.annotation.Validator;
import band.gosrock.domain.domains.event.adaptor.EventAdaptor;
import band.gosrock.domain.domains.event.domain.Event;
import band.gosrock.domain.domains.host.adaptor.HostAdaptor;
import band.gosrock.domain.domains.host.domain.Host;
import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicket;
import band.gosrock.domain.domains.issuedTicket.exception.IssuedTicketNotMatchedEventException;
import java.util.Objects;
Expand All @@ -17,12 +15,13 @@ public class IssuedTicketValidator {

private final EventAdaptor eventAdaptor;
private final HostAdaptor hostAdaptor;

public void validCanModifyIssuedTicketUser(IssuedTicket issuedTicket, Long currentUserId) {
Event event = eventAdaptor.findById(issuedTicket.getEventId());
Host host = hostAdaptor.findById(event.getHostId());
host.validateHostUser(currentUserId);
}
//
// public void validCanModifyIssuedTicketUser(IssuedTicket issuedTicket, Long currentUserId)
// {
// Event event = eventAdaptor.findById(issuedTicket.getEventId());
// Host host = hostAdaptor.findById(event.getHostId());
// host.validateHostUser(currentUserId);
// }

public void validIssuedTicketEventIdEqualEvent(IssuedTicket issuedTicket, Long eventId) {
if (!Objects.equals(issuedTicket.getEventId(), eventId)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package band.gosrock.domain.domains.issuedTicket.domain.validator;

import static org.mockito.BDDMockito.given;

import band.gosrock.domain.domains.event.adaptor.EventAdaptor;
import band.gosrock.domain.domains.host.adaptor.HostAdaptor;
import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicket;
import band.gosrock.domain.domains.issuedTicket.exception.IssuedTicketNotMatchedEventException;
import band.gosrock.domain.domains.issuedTicket.validator.IssuedTicketValidator;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

@ExtendWith(MockitoExtension.class)
public class IssuedTicketValidatorTest {

@Mock IssuedTicket issuedTicket;

@Mock EventAdaptor eventAdaptor;

@Mock HostAdaptor hostAdaptor;

IssuedTicketValidator issuedTicketValidator;

@BeforeEach
public void setUp() {
issuedTicketValidator = new IssuedTicketValidator(eventAdaptor, hostAdaptor);
}

@Test
public void 발급티켓_이벤트_검증_성공() {
// given
given(issuedTicket.getEventId()).willReturn(1L);
// when
issuedTicketValidator.validIssuedTicketEventIdEqualEvent(issuedTicket, 1L);
}

@Test
public void 발급티켓_이벤트_검증_실패() {
// given
given(issuedTicket.getEventId()).willReturn(2L);
// when
// then
Assertions.assertThrows(
IssuedTicketNotMatchedEventException.class,
() -> issuedTicketValidator.validIssuedTicketEventIdEqualEvent(issuedTicket, 1L));
}
}

0 comments on commit 4ebedfe

Please sign in to comment.