test(test): 주문내역 컨트롤러 DTO 분리로 인한 테스트 재작성

- http header 추가
This commit is contained in:
bum12ark
2022-03-16 20:07:14 +09:00
parent 5e9b993d15
commit 7b2fda6165
5 changed files with 90 additions and 32 deletions

View File

@@ -72,16 +72,16 @@ operation::order-patch[snippets='curl-request,http-request,http-response,path-pa
=== 주문 페이지
- 페이지 offset : 6
operation::orderMain-get[snippets='curl-request,http-request,http-response,request-parameters,response-fields']
operation::orderMain-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']
=== 점주 서비스 - 주문 페이지 (잘못된 파라미터 형식)
operation::orderMain-get-badParameterException[snippets='curl-request,http-request,http-response,request-parameters,response-fields']
operation::orderMain-get-badParameterException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']
=== 점주 서비스 - 지난 주문 페이지
operation::prevOrder-get[snippets='curl-request,http-request,http-response,request-parameters,response-fields']
operation::prevOrder-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']
=== 점주 서비스 - 지난 주문 페이지 (잘못된 파라미터 형식)
operation::prevOrder-get-BindException[snippets='curl-request,http-request,http-response,request-parameters,response-fields']
operation::prevOrder-get-BindException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']
== Just Pick-up
=== 주문 내역 페이지

View File

@@ -4,6 +4,7 @@ import com.justpickup.orderservice.domain.order.entity.Order;
import com.justpickup.orderservice.domain.order.entity.OrderStatus;
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -23,12 +24,30 @@ public class OrderHistoryDto {
private String storeName;
private List<_OrderHistoryItem> orderItems = new ArrayList<>();
@Getter
@Builder
public OrderHistoryDto(Long id, LocalDateTime orderTime, long price, OrderStatus orderStatus, Long storeId, String storeName, List<_OrderHistoryItem> orderItems) {
this.id = id;
this.orderTime = orderTime;
this.price = price;
this.orderStatus = orderStatus;
this.storeId = storeId;
this.storeName = storeName;
this.orderItems = orderItems;
}
@Getter @NoArgsConstructor(access = AccessLevel.PROTECTED)
public static class _OrderHistoryItem {
private Long id;
private Long itemId;
private String itemName;
@Builder
public _OrderHistoryItem(Long id, Long itemId, String itemName) {
this.id = id;
this.itemId = itemId;
this.itemName = itemName;
}
public static _OrderHistoryItem of(OrderItem orderItem) {
_OrderHistoryItem orderHistoryItem = new _OrderHistoryItem();
orderHistoryItem.id = orderItem.getId();

View File

@@ -4,6 +4,7 @@ import com.justpickup.orderservice.domain.order.entity.Order;
import com.justpickup.orderservice.domain.order.entity.OrderStatus;
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
@@ -26,12 +27,30 @@ public class PrevOrderDto {
private List<_PrevOrderItem> orderItems = new ArrayList<>();
@Getter
@Builder
public PrevOrderDto(Long id, OrderStatus orderStatus, LocalDateTime orderTime, long orderPrice, Long userId, String userName, List<_PrevOrderItem> orderItems) {
this.id = id;
this.orderStatus = orderStatus;
this.orderTime = orderTime;
this.orderPrice = orderPrice;
this.userId = userId;
this.userName = userName;
this.orderItems = orderItems;
}
@Getter @NoArgsConstructor(access = AccessLevel.PROTECTED)
public static class _PrevOrderItem {
private Long id;
private Long itemId;
private String name;
@Builder
public _PrevOrderItem(Long id, Long itemId, String name) {
this.id = id;
this.itemId = itemId;
this.name = name;
}
// 생성 메소드
static _PrevOrderItem of(OrderItem orderItem) {
_PrevOrderItem prevOrderItem = new _PrevOrderItem();

View File

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.justpickup.orderservice.config.TestConfig;
import com.justpickup.orderservice.domain.order.dto.FetchOrderDto;
import com.justpickup.orderservice.domain.order.dto.OrderDto;
import com.justpickup.orderservice.domain.order.dto.OrderHistoryDto;
import com.justpickup.orderservice.domain.order.entity.OrderStatus;
import com.justpickup.orderservice.domain.order.repository.OrderRepository;
import com.justpickup.orderservice.domain.order.service.OrderService;
@@ -98,21 +99,25 @@ class OrderCustomerApiControllerTest {
;
}
private SliceImpl<OrderDto> getWillReturnOrderHistory(Pageable pageable) {
private SliceImpl<OrderHistoryDto> getWillReturnOrderHistory(Pageable pageable) {
List<OrderDto> contents = new ArrayList<>();
List<OrderHistoryDto> contents = new ArrayList<>();
for (long i = 1; i <= 3; i++) {
OrderItemDto orderItemDto_1 = OrderItemDto.builder().id(i * 10).itemId(i * 100).build();
OrderItemDto orderItemDto_2 = OrderItemDto.builder().id((i + 1) * 20L).itemId((i + 1) *200L).build();
OrderHistoryDto._OrderHistoryItem orderItemDto_1 =
OrderHistoryDto._OrderHistoryItem.builder()
.id(i * 10).itemId(i * 100).build();
OrderHistoryDto._OrderHistoryItem orderItemDto_2 =
OrderHistoryDto._OrderHistoryItem.builder()
.id((i + 1) * 20L).itemId((i + 1) *200L).build();
int hour = 20;
OrderDto orderDto = OrderDto.builder()
OrderHistoryDto orderDto = OrderHistoryDto.builder()
.id(i)
.orderTime(LocalDateTime.of(2022, 3, 7, --hour, 0, 0))
.orderStatus(OrderStatus.PLACED)
.storeId(i + 1000)
.orderPrice(i * 10_000)
.orderItemDtoList(List.of(orderItemDto_1, orderItemDto_2))
.price(i * 10_000)
.orderItems(List.of(orderItemDto_1, orderItemDto_2))
.build();
contents.add(orderDto);

View File

@@ -2,12 +2,9 @@ package com.justpickup.orderservice.domain.order.web;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.justpickup.orderservice.config.TestConfig;
import com.justpickup.orderservice.domain.order.dto.OrderDto;
import com.justpickup.orderservice.domain.order.dto.OrderMainDto;
import com.justpickup.orderservice.domain.order.dto.*;
import com.justpickup.orderservice.domain.order.dto.OrderMainDto._Order;
import com.justpickup.orderservice.domain.order.dto.OrderMainDto._OrderItem;
import com.justpickup.orderservice.domain.order.dto.OrderSearchCondition;
import com.justpickup.orderservice.domain.order.dto.PrevOrderSearch;
import com.justpickup.orderservice.domain.order.entity.OrderStatus;
import com.justpickup.orderservice.domain.order.repository.OrderRepository;
import com.justpickup.orderservice.domain.order.service.OrderService;
@@ -35,6 +32,8 @@ import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.BDDMockito.given;
import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName;
import static org.springframework.restdocs.headers.HeaderDocumentation.requestHeaders;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath;
@@ -80,6 +79,7 @@ class OrderOwnerApiControllerTest {
// WHEN
ResultActions actions = mockMvc.perform(get(url + "/order-main")
.header("user-id", "1")
.param("orderDate", orderDate)
.param("lastOrderId", String.valueOf(lastOrderId))
);
@@ -97,6 +97,9 @@ class OrderOwnerApiControllerTest {
parameterWithName("orderDate").description("주문 날짜 YYYY-MM-DD"),
parameterWithName("lastOrderId").optional().description("페이지의 마지막 주문 고유 번호")
),
requestHeaders(
headerWithName("user-id").description("유저 고유번호")
),
responseFields(
fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"),
fieldWithPath("message").description("메시지"),
@@ -142,6 +145,7 @@ class OrderOwnerApiControllerTest {
// WHEN
ResultActions actions = mockMvc.perform(get(url + "/order-main")
.header("user-id", "1")
.param("orderDate", orderDate)
.param("lastOrderId", String.valueOf(lastOrderId))
);
@@ -157,6 +161,9 @@ class OrderOwnerApiControllerTest {
parameterWithName("orderDate").description("주문 날짜 YYYY-MM-DD"),
parameterWithName("lastOrderId").optional().description("페이지의 마지막 주문 고유 번호")
),
requestHeaders(
headerWithName("user-id").description("유저 고유번호")
),
responseFields(
fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"),
fieldWithPath("message").description("메시지"),
@@ -167,44 +174,44 @@ class OrderOwnerApiControllerTest {
;
}
private List<OrderDto> getOrderMainDtoList() {
OrderItemDto orderItemDto_100 = OrderItemDto.builder()
private List<PrevOrderDto> getOrderMainDtoList() {
PrevOrderDto._PrevOrderItem orderItemDto_100 = PrevOrderDto._PrevOrderItem.builder()
.id(100L)
.itemId(100L)
.build();
orderItemDto_100.setItemName("아이템1");
OrderItemDto orderItemDto_101 = OrderItemDto.builder()
orderItemDto_100.changeName("아이템1");
PrevOrderDto._PrevOrderItem orderItemDto_101 = PrevOrderDto._PrevOrderItem.builder()
.id(101L)
.itemId(101L)
.build();
orderItemDto_101.setItemName("아이템2");
OrderItemDto orderItemDto_102 = OrderItemDto.builder()
orderItemDto_101.changeName("아이템2");
PrevOrderDto._PrevOrderItem orderItemDto_102 = PrevOrderDto._PrevOrderItem.builder()
.id(102L)
.itemId(102L)
.build();
orderItemDto_102.setItemName("아이템3");
OrderItemDto orderItemDto_103 = OrderItemDto.builder()
orderItemDto_102.changeName("아이템3");
PrevOrderDto._PrevOrderItem orderItemDto_103 = PrevOrderDto._PrevOrderItem.builder()
.id(103L)
.itemId(103L)
.build();
orderItemDto_103.setItemName("아이템2");
orderItemDto_103.changeName("아이템2");
OrderDto orderDto_1 = OrderDto.builder()
PrevOrderDto orderDto_1 = PrevOrderDto.builder()
.id(1L)
.userId(1L)
.orderItemDtoList(List.of(orderItemDto_100, orderItemDto_101))
.orderItems(List.of(orderItemDto_100, orderItemDto_101))
.orderStatus(OrderStatus.PLACED)
.orderTime(LocalDateTime.of(2022, 2, 3, 14, 0, 0))
.build();
orderDto_1.setUserName("닉네임");
OrderDto orderDto_2 = OrderDto.builder()
orderDto_1.changeUserName("닉네임");
PrevOrderDto orderDto_2 = PrevOrderDto.builder()
.id(2L)
.userId(1L)
.orderItemDtoList(List.of(orderItemDto_102, orderItemDto_103))
.orderItems(List.of(orderItemDto_102, orderItemDto_103))
.orderStatus(OrderStatus.FAIL)
.orderTime(LocalDateTime.of(2022, 2, 3, 15, 0, 0))
.build();
orderDto_2.setUserName("닉네임");
orderDto_2.changeUserName("닉네임");
return List.of(orderDto_1, orderDto_2);
}
@@ -226,6 +233,7 @@ class OrderOwnerApiControllerTest {
// WHEN
ResultActions actions = mockMvc.perform(get(url + "/prev-order")
.header("user-id", "1")
.param("startDate", startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.param("endDate", endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.param("page", page)
@@ -251,6 +259,9 @@ class OrderOwnerApiControllerTest {
parameterWithName("endDate").description("종료날짜 YYYY-MM-DD"),
parameterWithName("page").optional().description("검색 페이지 (0부터 시작)")
),
requestHeaders(
headerWithName("user-id").description("유저 고유번호")
),
responseFields(
fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"),
fieldWithPath("message").description("메시지"),
@@ -280,6 +291,7 @@ class OrderOwnerApiControllerTest {
// THEN
ResultActions actions = mockMvc.perform(get(url + "/prev-order")
.header("user-id", "1")
.param("startDate", startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.param("endDate", endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.param("page", page)
@@ -297,6 +309,9 @@ class OrderOwnerApiControllerTest {
parameterWithName("endDate").description("종료날짜 YYYY-MM-DD"),
parameterWithName("page").optional().description("검색 페이지 (0부터 시작)")
),
requestHeaders(
headerWithName("user-id").description("유저 고유번호")
),
responseFields(
fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"),
fieldWithPath("message").description("메시지"),