From c457f1f51ee4609d5c4b0ee860badf1c00c57afe Mon Sep 17 00:00:00 2001 From: hoon7566 Date: Thu, 24 Mar 2022 17:22:16 +0900 Subject: [PATCH] =?UTF-8?q?test(store-service):=20item=20test=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - item test 추가 --- .../web/ItemCustomerApiControllerTest.java | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/store-service/src/test/java/com/justpickup/storeservice/domain/item/web/ItemCustomerApiControllerTest.java b/store-service/src/test/java/com/justpickup/storeservice/domain/item/web/ItemCustomerApiControllerTest.java index c3349ac..9cecc2c 100644 --- a/store-service/src/test/java/com/justpickup/storeservice/domain/item/web/ItemCustomerApiControllerTest.java +++ b/store-service/src/test/java/com/justpickup/storeservice/domain/item/web/ItemCustomerApiControllerTest.java @@ -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 itemIds = List.of("1","2"); List 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("카테고리 고유번호") + ) + )); + + } + } \ No newline at end of file