From a16903dfedda1408feb4aa66f030e3934e742ddc Mon Sep 17 00:00:00 2001 From: Minjoon Kim <59060780+sanbonai06@users.noreply.github.com> Date: Tue, 28 Feb 2023 01:32:21 +0900 Subject: [PATCH] =?UTF-8?q?test=20:=20=EB=B0=9C=EA=B8=89=20=ED=8B=B0?= =?UTF-8?q?=EC=BC=93=20=EA=B4=80=EB=A0=A8=20vo=EB=93=A4=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EB=B0=9C=EA=B8=89=ED=8B=B0=EC=BC=93=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=EA=B0=92=EC=97=90=20=ED=8B=B0=EC=BC=93=20payType=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#487)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test: 발급티켓 관련 vo들 테스트코드 추가 * refactor : 발급 티켓 응답값에 티켓 payType 추가 --- .../domain/common/vo/IssuedTicketInfoVo.java | 11 ++- .../domain/IssuedTicketItemInfoVo.java | 12 ++- .../domain/IssuedTicketUserInfoVo.java | 7 +- .../adaptor/IssuedTicketAdaptorTest.java | 8 ++ .../domain/IssuedTicketItemInfoVoTest.java | 76 +++++++++++++++++++ .../IssuedTicketOptionAnswerTest.java | 5 +- .../{ => domain}/IssuedTicketTest.java | 7 +- .../domain/IssuedTicketUserInfoVoTest.java | 62 +++++++++++++++ 8 files changed, 173 insertions(+), 15 deletions(-) create mode 100644 DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptorTest.java create mode 100644 DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVoTest.java rename DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/{ => domain}/IssuedTicketOptionAnswerTest.java (92%) rename DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/{ => domain}/IssuedTicketTest.java (92%) create mode 100644 DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVoTest.java diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/IssuedTicketInfoVo.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/IssuedTicketInfoVo.java index 17a371a6..b82e482a 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/IssuedTicketInfoVo.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/common/vo/IssuedTicketInfoVo.java @@ -4,7 +4,7 @@ import band.gosrock.common.annotation.DateFormat; import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicket; import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketStatus; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketUserInfoVo; +import band.gosrock.domain.domains.ticket_item.domain.TicketPayType; import java.time.LocalDateTime; import lombok.Builder; import lombok.Getter; @@ -33,6 +33,11 @@ public class IssuedTicketInfoVo { */ private final String ticketName; + /* + 발급 티켓 지불 방식 + */ + private final TicketPayType payType; + /* 발급 티켓 가격 */ @@ -55,19 +60,17 @@ public class IssuedTicketInfoVo { */ private final Money optionPrice; - private final IssuedTicketUserInfoVo userInfo; - public static IssuedTicketInfoVo from(IssuedTicket issuedTicket) { return IssuedTicketInfoVo.builder() .issuedTicketId(issuedTicket.getId()) .issuedTicketNo(issuedTicket.getIssuedTicketNo()) .uuid(issuedTicket.getUuid()) .ticketName(issuedTicket.getItemInfo().getTicketName()) + .payType(issuedTicket.getItemInfo().getPayType()) .ticketPrice(issuedTicket.getItemInfo().getPrice()) .createdAt(issuedTicket.getCreatedAt()) .issuedTicketStatus(issuedTicket.getIssuedTicketStatus()) .optionPrice(issuedTicket.sumOptionPrice()) - .userInfo(issuedTicket.getUserInfo()) .enteredAt(issuedTicket.getEnteredAt()) .build(); } diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVo.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVo.java index d8f1e0b2..642ed70e 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVo.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVo.java @@ -3,6 +3,7 @@ import band.gosrock.domain.common.vo.Money; import band.gosrock.domain.domains.ticket_item.domain.TicketItem; +import band.gosrock.domain.domains.ticket_item.domain.TicketPayType; import band.gosrock.domain.domains.ticket_item.domain.TicketType; import javax.persistence.Embeddable; import javax.persistence.EnumType; @@ -21,15 +22,23 @@ public class IssuedTicketItemInfoVo { @Enumerated(EnumType.STRING) private TicketType ticketType; + @Enumerated(EnumType.STRING) + private TicketPayType payType; + private String ticketName; private Money price; @Builder public IssuedTicketItemInfoVo( - Long ticketItemId, TicketType ticketType, String ticketName, Money price) { + Long ticketItemId, + TicketType ticketType, + TicketPayType payType, + String ticketName, + Money price) { this.ticketItemId = ticketItemId; this.ticketType = ticketType; + this.payType = payType; this.ticketName = ticketName; this.price = price; } @@ -38,6 +47,7 @@ public static IssuedTicketItemInfoVo from(TicketItem item) { return IssuedTicketItemInfoVo.builder() .ticketItemId(item.getId()) .ticketType(item.getType()) + .payType(item.getPayType()) .ticketName(item.getName()) .price(item.getPrice()) .build(); diff --git a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVo.java b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVo.java index 8fb05f23..a10e3046 100644 --- a/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVo.java +++ b/DuDoong-Domain/src/main/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVo.java @@ -19,10 +19,14 @@ public class IssuedTicketUserInfoVo { private PhoneNumberVo phoneNumber; + private String email; + @Builder - public IssuedTicketUserInfoVo(Long userId, String userName, PhoneNumberVo phoneNumber) { + public IssuedTicketUserInfoVo( + Long userId, String userName, String email, PhoneNumberVo phoneNumber) { this.userId = userId; this.userName = userName; + this.email = email; this.phoneNumber = phoneNumber; } @@ -31,6 +35,7 @@ public static IssuedTicketUserInfoVo from(User user) { .userId(user.getId()) .userName(user.getProfile().getName()) .phoneNumber(user.getProfile().getPhoneNumberVo()) + .email(user.getProfile().getEmail()) .build(); } } diff --git a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptorTest.java b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptorTest.java new file mode 100644 index 00000000..9de26e8c --- /dev/null +++ b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/adaptor/IssuedTicketAdaptorTest.java @@ -0,0 +1,8 @@ +package band.gosrock.domain.domains.issuedTicket.adaptor; + + +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +public class IssuedTicketAdaptorTest {} diff --git a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVoTest.java b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVoTest.java new file mode 100644 index 00000000..462f9206 --- /dev/null +++ b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketItemInfoVoTest.java @@ -0,0 +1,76 @@ +package band.gosrock.domain.domains.issuedTicket.domain; + +import static org.junit.jupiter.api.Assertions.assertAll; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import band.gosrock.domain.common.vo.Money; +import band.gosrock.domain.domains.ticket_item.domain.TicketItem; +import band.gosrock.domain.domains.ticket_item.domain.TicketPayType; +import band.gosrock.domain.domains.ticket_item.domain.TicketType; +import java.time.LocalDateTime; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +public class IssuedTicketItemInfoVoTest { + + IssuedTicketItemInfoVo itemInfoVo; + + private final TicketType ticketType = TicketType.FIRST_COME_FIRST_SERVED; + + private final TicketPayType payType = TicketPayType.DUDOONG_TICKET; + + private final Money w3000 = Money.wons(3000L); + + private final LocalDateTime startAt = LocalDateTime.now(); + + private final LocalDateTime endAt = startAt.plusDays(1L); + + @BeforeEach + void setUp() { + itemInfoVo = + IssuedTicketItemInfoVo.builder() + .ticketItemId(1L) + .ticketType(ticketType) + .payType(payType) + .ticketName("testTicket") + .price(w3000) + .build(); + } + + @Test + public void 티켓_아이템_정보를_발급티켓_아이템_인포로_정상적으로_변환_테스트() { + // given + TicketItem newTicketItem = + TicketItem.builder() + .payType(TicketPayType.DUDOONG_TICKET) + .name("testTicket") + .description("test") + .price(w3000) + .quantity(1L) + .supplyCount(1L) + .purchaseLimit(1L) + .type(ticketType) + .bankName("test") + .accountHolder("test") + .accountNumber("test") + .isQuantityPublic(true) + .isSellable(true) + .saleStartAt(startAt) + .saleEndAt(endAt) + .eventId(1L) + .build(); + + // when + IssuedTicketItemInfoVo itemInfoVoForTest = IssuedTicketItemInfoVo.from(newTicketItem); + + // then + assertAll( + () -> assertEquals(itemInfoVo.getPrice(), itemInfoVoForTest.getPrice()), + () -> assertEquals(itemInfoVo.getTicketName(), itemInfoVoForTest.getTicketName()), + () -> assertEquals(itemInfoVo.getTicketType(), itemInfoVoForTest.getTicketType()), + () -> assertEquals(itemInfoVo.getPayType(), itemInfoVoForTest.getPayType())); + } +} diff --git a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketOptionAnswerTest.java b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketOptionAnswerTest.java similarity index 92% rename from DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketOptionAnswerTest.java rename to DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketOptionAnswerTest.java index ddc10e56..6e19a689 100644 --- a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketOptionAnswerTest.java +++ b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketOptionAnswerTest.java @@ -1,11 +1,10 @@ -package band.gosrock.domain.domains.issuedTicket; +package band.gosrock.domain.domains.issuedTicket.domain; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.BDDMockito.given; import band.gosrock.domain.common.vo.Money; import band.gosrock.domain.common.vo.OptionAnswerVo; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketOptionAnswer; import band.gosrock.domain.domains.ticket_item.domain.Option; import band.gosrock.domain.domains.ticket_item.domain.OptionGroupType; import org.junit.jupiter.api.BeforeEach; diff --git a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketTest.java b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketTest.java similarity index 92% rename from DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketTest.java rename to DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketTest.java index bc108035..d3969180 100644 --- a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/IssuedTicketTest.java +++ b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketTest.java @@ -1,15 +1,10 @@ -package band.gosrock.domain.domains.issuedTicket; +package band.gosrock.domain.domains.issuedTicket.domain; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.BDDMockito.given; import band.gosrock.domain.common.vo.Money; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicket; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketItemInfoVo; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketOptionAnswer; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketStatus; -import band.gosrock.domain.domains.issuedTicket.domain.IssuedTicketUserInfoVo; import band.gosrock.domain.domains.issuedTicket.exception.CanNotCancelEntranceException; import band.gosrock.domain.domains.issuedTicket.exception.CanNotCancelException; import band.gosrock.domain.domains.issuedTicket.exception.CanNotEntranceException; diff --git a/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVoTest.java b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVoTest.java new file mode 100644 index 00000000..696d5b7e --- /dev/null +++ b/DuDoong-Domain/src/test/java/band/gosrock/domain/domains/issuedTicket/domain/IssuedTicketUserInfoVoTest.java @@ -0,0 +1,62 @@ +package band.gosrock.domain.domains.issuedTicket.domain; + +import static org.junit.jupiter.api.Assertions.assertAll; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.BDDMockito.given; + +import band.gosrock.domain.common.vo.PhoneNumberVo; +import band.gosrock.domain.domains.user.domain.Profile; +import band.gosrock.domain.domains.user.domain.User; +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 IssuedTicketUserInfoVoTest { + + @Mock User user; + + IssuedTicketUserInfoVo userInfoVo; + + Profile profile; + + private final PhoneNumberVo phoneNumberVo = PhoneNumberVo.valueOf("010-1234-5678"); + + @BeforeEach + void setUp() { + userInfoVo = + IssuedTicketUserInfoVo.builder() + .userId(1L) + .userName("test") + .phoneNumber(phoneNumberVo) + .email("test@test.com") + .build(); + profile = + Profile.builder() + .profileImage("test") + .phoneNumber("010-1234-5678") + .name("test") + .email("test@test.com") + .build(); + } + + @Test + public void 유저_정보를_발급티켓_유저_인포로_변환_테스트() { + // given + given(user.getProfile()).willReturn(profile); + + // when + IssuedTicketUserInfoVo userInfoVoForTest = IssuedTicketUserInfoVo.from(user); + + // then + assertAll( + () -> assertEquals(userInfoVo.getUserName(), userInfoVoForTest.getUserName()), + () -> + assertEquals( + userInfoVo.getPhoneNumber().getPhoneNumber(), + userInfoVoForTest.getPhoneNumber().getPhoneNumber()), + () -> assertEquals(userInfoVo.getEmail(), userInfoVoForTest.getEmail())); + } +}