test(store-service): item test 추가
- item test 추가
This commit is contained in:
@@ -2,11 +2,15 @@ package com.justpickup.storeservice.domain.item.web;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.justpickup.storeservice.config.TestConfig;
|
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.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.GetItemDto;
|
||||||
import com.justpickup.storeservice.domain.item.dto.ItemDto;
|
import com.justpickup.storeservice.domain.item.dto.ItemDto;
|
||||||
import com.justpickup.storeservice.domain.item.service.ItemService;
|
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.itemoption.entity.OptionType;
|
||||||
|
import com.justpickup.storeservice.domain.store.dto.StoreDto;
|
||||||
import com.justpickup.storeservice.domain.store.repository.StoreRepository;
|
import com.justpickup.storeservice.domain.store.repository.StoreRepository;
|
||||||
import com.justpickup.storeservice.global.dto.Code;
|
import com.justpickup.storeservice.global.dto.Code;
|
||||||
import com.justpickup.storeservice.global.entity.Yn;
|
import com.justpickup.storeservice.global.entity.Yn;
|
||||||
@@ -58,7 +62,7 @@ class ItemCustomerApiControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("상품리스트 조회")
|
@DisplayName("상품리스트 조회")
|
||||||
void getItem() throws Exception {
|
void getItemAndItemOptions() throws Exception {
|
||||||
// GIVEN
|
// GIVEN
|
||||||
List<String> itemIds = List.of("1","2");
|
List<String> itemIds = List.of("1","2");
|
||||||
List<GetItemDto> willReturnDtoList =
|
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("카테고리 고유번호")
|
||||||
|
)
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user