test(store-service): item test 추가

- item test 추가
This commit is contained in:
hoon7566
2022-03-24 17:22:16 +09:00
parent 363850f091
commit c457f1f51e

View File

@@ -2,11 +2,15 @@ package com.justpickup.storeservice.domain.item.web;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.justpickup.storeservice.config.TestConfig;
import com.justpickup.storeservice.domain.category.dto.CategoryDto;
import com.justpickup.storeservice.domain.favoritestore.repository.FavoriteStoreRepository;
import com.justpickup.storeservice.domain.item.dto.FetchItemDto;
import com.justpickup.storeservice.domain.item.dto.GetItemDto;
import com.justpickup.storeservice.domain.item.dto.ItemDto;
import com.justpickup.storeservice.domain.item.service.ItemService;
import com.justpickup.storeservice.domain.itemoption.dto.ItemOptionDto;
import com.justpickup.storeservice.domain.itemoption.entity.OptionType;
import com.justpickup.storeservice.domain.store.dto.StoreDto;
import com.justpickup.storeservice.domain.store.repository.StoreRepository;
import com.justpickup.storeservice.global.dto.Code;
import com.justpickup.storeservice.global.entity.Yn;
@@ -58,7 +62,7 @@ class ItemCustomerApiControllerTest {
@Test
@DisplayName("상품리스트 조회")
void getItem() throws Exception {
void getItemAndItemOptions() throws Exception {
// GIVEN
List<String> itemIds = List.of("1","2");
List<GetItemDto> willReturnDtoList =
@@ -131,4 +135,68 @@ class ItemCustomerApiControllerTest {
));
}
@Test
@DisplayName("상품 조회")
void fetchItem() throws Exception {
// GIVEN
Long itemId = 1L;
FetchItemDto fetchItemDto=
FetchItemDto.builder()
.id(1L)
.salesYn(Yn.Y)
.price(1500L)
.name("아메리카노")
.categoryDto(
CategoryDto.builder()
.id(1L)
.name("Coffee")
.build()
)
.itemOptions(
List.of(ItemOptionDto.builder()
.id(1L)
.name("Hot")
.optionType(OptionType.REQUIRED)
.build(),
ItemOptionDto.builder()
.id(2L)
.name("add shot")
.optionType(OptionType.OTHER)
.build())
)
.storeDto(StoreDto.builder().id(1L).build())
.build();
given(itemService.fetchItem(itemId ))
.willReturn(fetchItemDto);
// WHEN
ResultActions actions = mockMvc.perform(get("/api/customer/item/{itemId}", itemId));
// THEN
actions.andExpect(status().isOk())
.andDo(print())
.andDo(document("customer-item-get",
pathParameters(
parameterWithName("itemId").description("상품 고유 번호")
),
responseFields(
fieldWithPath("code").description("결과 코드 SUCCESS/ERROR"),
fieldWithPath("message").description("메시지"),
fieldWithPath("data.id").description("상품 고유 번호"),
fieldWithPath("data.name").description("상품 이름"),
fieldWithPath("data.salesYn").description("화면 표시 여부 Y/N"),
fieldWithPath("data.price").description("상품 가격"),
fieldWithPath("data.itemOptions[*].id").description("아이템 옵션 고유 번호"),
fieldWithPath("data.itemOptions[*].optionType").description("옵션 타입"),
fieldWithPath("data.itemOptions[*].name").description("옵션명"),
fieldWithPath("data.storeId").description("매장 고유번호"),
fieldWithPath("data.categoryId").description("카테고리 고유번호")
)
));
}
}