From e45557d66985f33049762caf2947234d11f058c2 Mon Sep 17 00:00:00 2001 From: jsj3282 Date: Sat, 25 Sep 2021 19:43:47 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[#102]=20feat=20:=20=EC=B9=B4=ED=8E=98?= =?UTF-8?q?=EB=8B=B9=20=EC=A0=84=EC=B2=B4=20=EB=A9=94=EB=89=B4,=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4=EB=8B=B9=20=EC=A0=84=EC=B2=B4=20=EC=98=B5?= =?UTF-8?q?=EC=85=98=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MenuController.java | 25 +++++++++ .../flab/cafeguidebook/mapper/MenuMapper.java | 4 ++ .../cafeguidebook/mapper/OptionMapper.java | 4 ++ .../cafeguidebook/service/MenuService.java | 15 ++++++ .../cafeguidebook/service/OptionService.java | 6 +++ .../resources/mybatis/mapper/MenuMapper.xml | 5 ++ .../resources/mybatis/mapper/OptionMapper.xml | 5 ++ .../controller/MenuControllerTest.java | 42 ++++++++++++++- .../fixture/MenuDTOListFixtureProvider.java | 51 ++++++++++++++++++ .../fixture/OptionDTOListFixtureProvider.java | 52 +++++++++++++++++++ .../service/MenuServiceTest.java | 12 ++++- .../service/OptionServiceTest.java | 11 +++- 12 files changed, 228 insertions(+), 4 deletions(-) create mode 100644 src/test/java/com/flab/cafeguidebook/fixture/MenuDTOListFixtureProvider.java create mode 100644 src/test/java/com/flab/cafeguidebook/fixture/OptionDTOListFixtureProvider.java diff --git a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java index 1fd797e8..3dabeb67 100644 --- a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java +++ b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java @@ -1,9 +1,11 @@ package com.flab.cafeguidebook.controller; +import com.flab.cafeguidebook.domain.Option; import com.flab.cafeguidebook.dto.MenuDTO; import com.flab.cafeguidebook.dto.OptionDTO; import com.flab.cafeguidebook.service.MenuService; import com.flab.cafeguidebook.service.OptionService; +import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -11,6 +13,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -91,4 +94,26 @@ public ResponseEntity updateOption(@PathVariable long menuId, @PathVariable long return ResponseEntity.ok(optionDTO); } + @GetMapping(consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getAllMenu(@PathVariable long cafeId) { + List AllMenu = menuService.getAllMenu(cafeId); + if (AllMenu.size() > 0) { + return ResponseEntity.ok().body(AllMenu); + } else { + LOGGER.info("해당 카페의 전체 메뉴를 조회할 수 없습니다. cafeId = {}", cafeId); + return ResponseEntity.badRequest().build(); + } + } + + @GetMapping(value = "/{menuId}/options", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getAllOption(@PathVariable long cafeId, @PathVariable long menuId) { + List AllOption = optionService.getAllOption(menuId); + if (AllOption.size() > 0) { + return ResponseEntity.ok().body(AllOption); + } else { + LOGGER.info("해당 메뉴의 전체 옵션을 조회할 수 없습니다. cafeId = {}, menuId = {}", cafeId, menuId); + return ResponseEntity.badRequest().build(); + } + } + } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java index 08db10e6..e190bca9 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java @@ -1,6 +1,8 @@ package com.flab.cafeguidebook.mapper; import com.flab.cafeguidebook.domain.Menu; +import com.flab.cafeguidebook.dto.MenuDTO; +import java.util.List; import org.apache.ibatis.annotations.Mapper; @Mapper @@ -9,4 +11,6 @@ public interface MenuMapper { public int insertMenu(Menu menu); public int updateMenu(Menu menu); + + public List selectAllMenu(long cafeId); } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java index c85a93e0..7abfc800 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java @@ -1,6 +1,8 @@ package com.flab.cafeguidebook.mapper; import com.flab.cafeguidebook.domain.Option; +import com.flab.cafeguidebook.dto.OptionDTO; +import java.util.List; import org.apache.ibatis.annotations.Mapper; @Mapper @@ -9,4 +11,6 @@ public interface OptionMapper { public int insertOption(Option optionDTO); public int updateOption(Option optionDTO); + + public List selectAllOption(long menuId); } diff --git a/src/main/java/com/flab/cafeguidebook/service/MenuService.java b/src/main/java/com/flab/cafeguidebook/service/MenuService.java index 832f84ba..7a75feef 100644 --- a/src/main/java/com/flab/cafeguidebook/service/MenuService.java +++ b/src/main/java/com/flab/cafeguidebook/service/MenuService.java @@ -1,8 +1,15 @@ package com.flab.cafeguidebook.service; import com.flab.cafeguidebook.converter.MenuConverter.MenuDTOToMenuConverter; +import com.flab.cafeguidebook.converter.MenuConverter.MenuToMenuDTOConverter; +import com.flab.cafeguidebook.domain.Menu; import com.flab.cafeguidebook.dto.MenuDTO; import com.flab.cafeguidebook.mapper.MenuMapper; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,6 +19,9 @@ public class MenuService { @Autowired MenuDTOToMenuConverter menuDTOToMenuConverter; + @Autowired + MenuToMenuDTOConverter menuToMenuDTOConverter; + @Autowired private MenuMapper menuMapper; @@ -24,4 +34,9 @@ public boolean updateMenu(MenuDTO menuDTO) { int updateMenu = menuMapper.updateMenu(menuDTOToMenuConverter.convert(menuDTO)); return updateMenu == 1; } + + public List getAllMenu(long cafeId) { + List selectAllMenu = menuMapper.selectAllMenu(cafeId); + return selectAllMenu; + } } diff --git a/src/main/java/com/flab/cafeguidebook/service/OptionService.java b/src/main/java/com/flab/cafeguidebook/service/OptionService.java index 936ca255..ca57a2c2 100644 --- a/src/main/java/com/flab/cafeguidebook/service/OptionService.java +++ b/src/main/java/com/flab/cafeguidebook/service/OptionService.java @@ -3,6 +3,7 @@ import com.flab.cafeguidebook.converter.OptionConverter.OptionDTOToOptionConverter; import com.flab.cafeguidebook.dto.OptionDTO; import com.flab.cafeguidebook.mapper.OptionMapper; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,4 +25,9 @@ public boolean updateOption(OptionDTO optionDTO) { int updateOption = optionMapper.updateOption(optionDTOToOptionConverter.convert(optionDTO)); return updateOption == 1; } + + public List getAllOption(long menuId) { + List selectAllOption = optionMapper.selectAllOption(menuId); + return selectAllOption; + } } diff --git a/src/main/resources/mybatis/mapper/MenuMapper.xml b/src/main/resources/mybatis/mapper/MenuMapper.xml index 239c321d..a4dc2210 100644 --- a/src/main/resources/mybatis/mapper/MenuMapper.xml +++ b/src/main/resources/mybatis/mapper/MenuMapper.xml @@ -40,4 +40,9 @@ update_menu_date = now() WHERE menu_id = #{menuId} + diff --git a/src/main/resources/mybatis/mapper/OptionMapper.xml b/src/main/resources/mybatis/mapper/OptionMapper.xml index 6dbe6430..6d8133f3 100644 --- a/src/main/resources/mybatis/mapper/OptionMapper.xml +++ b/src/main/resources/mybatis/mapper/OptionMapper.xml @@ -20,4 +20,9 @@ option_status = #{optionStatus} WHERE option_id = #{optionId} + diff --git a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java index 50aaff67..e7a7ce60 100644 --- a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java +++ b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java @@ -1,6 +1,7 @@ package com.flab.cafeguidebook.controller; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.hamcrest.Matchers.hasSize; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -8,8 +9,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.flab.cafeguidebook.dto.MenuDTO; import com.flab.cafeguidebook.dto.OptionDTO; +import com.flab.cafeguidebook.fixture.MenuDTOListFixtureProvider; import com.flab.cafeguidebook.fixture.MenuDTOFixtureProvider; import com.flab.cafeguidebook.fixture.OptionDTOFixtureProvider; +import com.flab.cafeguidebook.fixture.OptionDTOListFixtureProvider; +import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -21,7 +25,8 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; -@ExtendWith({SpringExtension.class, MenuDTOFixtureProvider.class, OptionDTOFixtureProvider.class}) +@ExtendWith({SpringExtension.class, MenuDTOFixtureProvider.class, OptionDTOFixtureProvider.class, + MenuDTOListFixtureProvider.class, OptionDTOListFixtureProvider.class}) @SpringBootTest public class MenuControllerTest { @@ -126,4 +131,37 @@ public void updateOption(OptionDTO testOptionDTO) throws Exception { .andExpect(jsonPath("optionPrice").value(testOptionDTO.getOptionPrice())) .andExpect(jsonPath("optionStatus").value(optionStatusEnum)); } + + @Test + public void getAllMenu(List testMenuDTOList) throws Exception { + + for (int i = 0; i < testMenuDTOList.size(); i++) { + addMenu(testMenuDTOList.get(i)); + } + + mockMvc.perform(get("/owner/cafe/" + testMenuDTOList.get(0).getCafeId() + "/menu") + .contentType(MediaType.APPLICATION_JSON_UTF8) + .accept(MediaType.APPLICATION_JSON_UTF8)) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(testMenuDTOList.size()))); + } + + @Test + public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) throws Exception { + + addMenu(testMenuDTO); + + for (int i = 0; i < testOptionDTOList.size(); i++) { + addOption(testOptionDTOList.get(i)); + } + + mockMvc.perform(get("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testOptionDTOList.get(0).getMenuId() + "/options/") + .contentType(MediaType.APPLICATION_JSON_UTF8) + .accept(MediaType.APPLICATION_JSON_UTF8)) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(testOptionDTOList.size()))); + + } } diff --git a/src/test/java/com/flab/cafeguidebook/fixture/MenuDTOListFixtureProvider.java b/src/test/java/com/flab/cafeguidebook/fixture/MenuDTOListFixtureProvider.java new file mode 100644 index 00000000..52ac82ee --- /dev/null +++ b/src/test/java/com/flab/cafeguidebook/fixture/MenuDTOListFixtureProvider.java @@ -0,0 +1,51 @@ +package com.flab.cafeguidebook.fixture; + +import com.flab.cafeguidebook.dto.MenuDTO; +import java.lang.reflect.Parameter; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.ParameterContext; +import org.junit.jupiter.api.extension.ParameterResolutionException; +import org.junit.jupiter.api.extension.ParameterResolver; + +public class MenuDTOListFixtureProvider implements ParameterResolver { + + @Override + public boolean supportsParameter(ParameterContext parameterContext, + ExtensionContext extensionContext) throws ParameterResolutionException { + Parameter parameter = parameterContext.getParameter(); + + Type type = parameter.getParameterizedType(); + if (type instanceof ParameterizedType) { + ParameterizedType parameterizedType = (ParameterizedType) type; + if (!parameterizedType.getRawType().equals(List.class)) { + return false; + } + Type firstParameterType = parameterizedType.getActualTypeArguments()[0]; + return firstParameterType.equals(MenuDTO.class); + } + + return false; + } + + @Override + public Object resolveParameter(ParameterContext parameterContext, + ExtensionContext extensionContext) throws ParameterResolutionException { + MenuDTO testMenuDTO1 = MenuDTO.builder() + .cafeId(5L) + .menuName("아메리카노") + .menuPrice(2500) + .menuPriority(1) + .build(); + MenuDTO testMenuDTO2 = MenuDTO.builder() + .cafeId(5L) + .menuName("카페라떼") + .menuPrice(3000) + .menuPriority(2) + .build(); + return Arrays.asList(testMenuDTO1, testMenuDTO2); + } +} diff --git a/src/test/java/com/flab/cafeguidebook/fixture/OptionDTOListFixtureProvider.java b/src/test/java/com/flab/cafeguidebook/fixture/OptionDTOListFixtureProvider.java new file mode 100644 index 00000000..5de0ab55 --- /dev/null +++ b/src/test/java/com/flab/cafeguidebook/fixture/OptionDTOListFixtureProvider.java @@ -0,0 +1,52 @@ +package com.flab.cafeguidebook.fixture; + +import com.flab.cafeguidebook.dto.OptionDTO; +import com.flab.cafeguidebook.enumeration.OptionStatus; +import java.lang.reflect.Parameter; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Arrays; +import java.util.List; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.ParameterContext; +import org.junit.jupiter.api.extension.ParameterResolutionException; +import org.junit.jupiter.api.extension.ParameterResolver; + +public class OptionDTOListFixtureProvider implements ParameterResolver { + + @Override + public boolean supportsParameter(ParameterContext parameterContext, + ExtensionContext extensionContext) throws ParameterResolutionException { + Parameter parameter = parameterContext.getParameter(); + + Type type = parameter.getParameterizedType(); + if (type instanceof ParameterizedType) { + ParameterizedType parameterizedType = (ParameterizedType) type; + if (!parameterizedType.getRawType().equals(List.class)) { + return false; + } + Type firstParameterType = parameterizedType.getActualTypeArguments()[0]; + return firstParameterType.equals(OptionDTO.class); + } + + return false; + } + + @Override + public Object resolveParameter(ParameterContext parameterContext, + ExtensionContext extensionContext) throws ParameterResolutionException { + OptionDTO testOptionDTO1 = OptionDTO.builder() + .menuId(1) + .optionName("아이스") + .optionPrice(500) + .optionStatus(OptionStatus.SOLDOUT) + .build(); + OptionDTO testOptionDTO2 = OptionDTO.builder() + .menuId(1) + .optionName("시럽") + .optionPrice(500) + .optionStatus(OptionStatus.SOLDOUT) + .build(); + return Arrays.asList(testOptionDTO1, testOptionDTO2); + } +} diff --git a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java index 5759503c..7640a802 100644 --- a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java @@ -7,9 +7,12 @@ import com.flab.cafeguidebook.converter.MenuConverter.MenuDTOToMenuConverter; import com.flab.cafeguidebook.domain.Menu; import com.flab.cafeguidebook.dto.MenuDTO; +import com.flab.cafeguidebook.dto.OptionDTO; import com.flab.cafeguidebook.fixture.MenuDTOFixtureProvider; +import com.flab.cafeguidebook.fixture.MenuDTOListFixtureProvider; import com.flab.cafeguidebook.fixture.MenuFixtureProvider; import com.flab.cafeguidebook.mapper.MenuMapper; +import java.util.List; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -17,7 +20,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; -@ExtendWith({SpringExtension.class, MenuDTOFixtureProvider.class, MenuFixtureProvider.class}) +@ExtendWith({SpringExtension.class, MenuDTOFixtureProvider.class, MenuFixtureProvider.class, + MenuDTOListFixtureProvider.class}) @SpringBootTest public class MenuServiceTest { @@ -43,4 +47,10 @@ public void updateMenu(MenuDTO testMenuDTO, Menu testMenu) { given(menuMapper.updateMenu(testMenu)).willReturn(1); assertThat(menuService.updateMenu(testMenuDTO)).isEqualTo(true); } + + @Test + public void selectAllMenu(List testMenuDTOList) { + given(menuMapper.selectAllMenu(testMenuDTOList.get(0).getCafeId())).willReturn(testMenuDTOList); + assertThat(menuService.getAllMenu(testMenuDTOList.get(0).getCafeId())).isEqualTo(testMenuDTOList); + } } diff --git a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java index 0452cfcc..a4f70bc5 100644 --- a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java @@ -8,8 +8,10 @@ import com.flab.cafeguidebook.domain.Option; import com.flab.cafeguidebook.dto.OptionDTO; import com.flab.cafeguidebook.fixture.OptionDTOFixtureProvider; +import com.flab.cafeguidebook.fixture.OptionDTOListFixtureProvider; import com.flab.cafeguidebook.fixture.OptionFixtureProvider; import com.flab.cafeguidebook.mapper.OptionMapper; +import java.util.List; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -17,7 +19,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit.jupiter.SpringExtension; -@ExtendWith({SpringExtension.class, OptionDTOFixtureProvider.class, OptionFixtureProvider.class}) +@ExtendWith({SpringExtension.class, OptionDTOFixtureProvider.class, OptionFixtureProvider.class, + OptionDTOListFixtureProvider.class}) @SpringBootTest public class OptionServiceTest { @@ -44,4 +47,10 @@ public void updateOption(OptionDTO testOptionDTO, Option testOption) { assertThat(optionService.updateOption(testOptionDTO)).isEqualTo(true); } + @Test + public void selectAllOption(List testOptionDTOList) { + given(optionMapper.selectAllOption(testOptionDTOList.get(0).getMenuId())).willReturn(testOptionDTOList); + assertThat(optionService.getAllOption(testOptionDTOList.get(0).getMenuId())).isEqualTo(testOptionDTOList); + } + } From 38593aec42f0986e304b302464093bbb38d708a7 Mon Sep 17 00:00:00 2001 From: jsj3282 Date: Sat, 25 Sep 2021 20:28:46 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[#102]=20feat=20:=20=EA=B0=9C=EB=B3=84=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4,=20=EA=B0=9C=EB=B3=84=20=EC=98=B5=EC=85=98?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MenuController.java | 22 +++++ .../flab/cafeguidebook/mapper/MenuMapper.java | 2 + .../cafeguidebook/mapper/OptionMapper.java | 2 + .../cafeguidebook/service/MenuService.java | 5 ++ .../cafeguidebook/service/OptionService.java | 5 ++ .../resources/mybatis/mapper/MenuMapper.xml | 5 ++ .../resources/mybatis/mapper/OptionMapper.xml | 5 ++ .../controller/MenuControllerTest.java | 87 ++++++++++++++++--- .../service/MenuServiceTest.java | 7 +- .../service/OptionServiceTest.java | 6 ++ 10 files changed, 131 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java index 3dabeb67..e854669c 100644 --- a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java +++ b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java @@ -116,4 +116,26 @@ public ResponseEntity getAllOption(@PathVariable long cafeId, @PathVariable long } } + @GetMapping(value = "/{menuId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getMenu(@PathVariable long cafeId, @PathVariable long menuId) { + MenuDTO menuDTO = menuService.getMenu(menuId); + if (menuDTO == null) { + LOGGER.info("해당 메뉴를 조회할 수 없습니다. cafeId = {}, menuId = {}", cafeId, menuId); + return ResponseEntity.badRequest().build(); + } else { + return ResponseEntity.ok(menuDTO); + } + } + + @GetMapping(value = "/{menuId}/options/{optionId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getOption(@PathVariable long menuId, @PathVariable long optionId) { + OptionDTO optionDTO = optionService.getOption(optionId); + if (optionDTO == null) { + LOGGER.info("해당 옵션을 조회할 수 없습니다. menuId = {}, optionId = {}", menuId, optionId); + return ResponseEntity.badRequest().build(); + } else { + return ResponseEntity.ok(optionDTO); + } + } + } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java index e190bca9..786f1a1f 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java @@ -13,4 +13,6 @@ public interface MenuMapper { public int updateMenu(Menu menu); public List selectAllMenu(long cafeId); + + public MenuDTO selectMenu(long menuId); } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java index 7abfc800..97532040 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java @@ -13,4 +13,6 @@ public interface OptionMapper { public int updateOption(Option optionDTO); public List selectAllOption(long menuId); + + public OptionDTO selectOption(long optionId); } diff --git a/src/main/java/com/flab/cafeguidebook/service/MenuService.java b/src/main/java/com/flab/cafeguidebook/service/MenuService.java index 7a75feef..7112b035 100644 --- a/src/main/java/com/flab/cafeguidebook/service/MenuService.java +++ b/src/main/java/com/flab/cafeguidebook/service/MenuService.java @@ -39,4 +39,9 @@ public List getAllMenu(long cafeId) { List selectAllMenu = menuMapper.selectAllMenu(cafeId); return selectAllMenu; } + + public MenuDTO getMenu(long menuId) { + MenuDTO selectMenu = menuMapper.selectMenu(menuId); + return selectMenu; + } } diff --git a/src/main/java/com/flab/cafeguidebook/service/OptionService.java b/src/main/java/com/flab/cafeguidebook/service/OptionService.java index ca57a2c2..5d08e85e 100644 --- a/src/main/java/com/flab/cafeguidebook/service/OptionService.java +++ b/src/main/java/com/flab/cafeguidebook/service/OptionService.java @@ -30,4 +30,9 @@ public List getAllOption(long menuId) { List selectAllOption = optionMapper.selectAllOption(menuId); return selectAllOption; } + + public OptionDTO getOption(long optionId) { + OptionDTO selectOption = optionMapper.selectOption(optionId); + return selectOption; + } } diff --git a/src/main/resources/mybatis/mapper/MenuMapper.xml b/src/main/resources/mybatis/mapper/MenuMapper.xml index a4dc2210..7baf2b17 100644 --- a/src/main/resources/mybatis/mapper/MenuMapper.xml +++ b/src/main/resources/mybatis/mapper/MenuMapper.xml @@ -45,4 +45,9 @@ FROM menu WHERE cafe_id = #{cafeId} + diff --git a/src/main/resources/mybatis/mapper/OptionMapper.xml b/src/main/resources/mybatis/mapper/OptionMapper.xml index 6d8133f3..ee17448e 100644 --- a/src/main/resources/mybatis/mapper/OptionMapper.xml +++ b/src/main/resources/mybatis/mapper/OptionMapper.xml @@ -25,4 +25,9 @@ FROM menuoption WHERE menu_id = #{menuId} + diff --git a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java index e7a7ce60..60df3864 100644 --- a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java +++ b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java @@ -46,8 +46,10 @@ public void init() { @Test public void addMenu(MenuDTO testMenuDTO) throws Exception { - String menuGroupEnum = testMenuDTO.getMenuGroup() == null ? null : testMenuDTO.getMenuGroup().toString(); - String menuStatusEnum = testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); + String menuGroupEnum = + testMenuDTO.getMenuGroup() == null ? null : testMenuDTO.getMenuGroup().toString(); + String menuStatusEnum = + testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); mockMvc.perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu") .contentType(MediaType.APPLICATION_JSON_UTF8) @@ -67,9 +69,11 @@ public void addOption(OptionDTO testOptionDTO) throws Exception { final long CAFEID = 1; - String optionStatusEnum = testOptionDTO.getOptionStatus() == null ? null : testOptionDTO.getOptionStatus().toString(); + String optionStatusEnum = + testOptionDTO.getOptionStatus() == null ? null : testOptionDTO.getOptionStatus().toString(); - mockMvc.perform(post("/owner/cafe/" + CAFEID + "/menu/" + testOptionDTO.getMenuId() + "/options/") + mockMvc + .perform(post("/owner/cafe/" + CAFEID + "/menu/" + testOptionDTO.getMenuId() + "/options/") .contentType(MediaType.APPLICATION_JSON_UTF8) .content(objectMapper.writeValueAsString(testOptionDTO)) .accept(MediaType.APPLICATION_JSON_UTF8)) @@ -88,13 +92,16 @@ public void updateMenu(MenuDTO testMenuDTO) throws Exception { testMenuDTO.setMenuId(MENUID); - String menuGroupEnum = testMenuDTO.getMenuGroup() == null ? null : testMenuDTO.getMenuGroup().toString(); - String menuStatusEnum = testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); + String menuGroupEnum = + testMenuDTO.getMenuGroup() == null ? null : testMenuDTO.getMenuGroup().toString(); + String menuStatusEnum = + testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); - mockMvc.perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testMenuDTO.getMenuId()) - .contentType(MediaType.APPLICATION_JSON_UTF8) - .content(objectMapper.writeValueAsString(testMenuDTO)) - .accept(MediaType.APPLICATION_JSON_UTF8)) + mockMvc + .perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testMenuDTO.getMenuId()) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(objectMapper.writeValueAsString(testMenuDTO)) + .accept(MediaType.APPLICATION_JSON_UTF8)) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("menuId").value(testMenuDTO.getMenuId())) @@ -117,9 +124,11 @@ public void updateOption(OptionDTO testOptionDTO) throws Exception { testOptionDTO.setMenuId(MENUID); testOptionDTO.setOptionId(OPTIONID); - String optionStatusEnum = testOptionDTO.getOptionStatus() == null ? null : testOptionDTO.getOptionStatus().toString(); + String optionStatusEnum = + testOptionDTO.getOptionStatus() == null ? null : testOptionDTO.getOptionStatus().toString(); - mockMvc.perform(post("/owner/cafe/" + CAFEID + "/menu/" + testOptionDTO.getMenuId() + "/options/" + testOptionDTO + mockMvc.perform(post( + "/owner/cafe/" + CAFEID + "/menu/" + testOptionDTO.getMenuId() + "/options/" + testOptionDTO .getOptionId()) .contentType(MediaType.APPLICATION_JSON_UTF8) .content(objectMapper.writeValueAsString(testOptionDTO)) @@ -148,7 +157,8 @@ public void getAllMenu(List testMenuDTOList) throws Exception { } @Test - public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) throws Exception { + public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) + throws Exception { addMenu(testMenuDTO); @@ -156,7 +166,8 @@ public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) addOption(testOptionDTOList.get(i)); } - mockMvc.perform(get("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testOptionDTOList.get(0).getMenuId() + "/options/") + mockMvc.perform(get("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testOptionDTOList.get(0) + .getMenuId() + "/options/") .contentType(MediaType.APPLICATION_JSON_UTF8) .accept(MediaType.APPLICATION_JSON_UTF8)) .andDo(print()) @@ -164,4 +175,52 @@ public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) .andExpect(jsonPath("$", hasSize(testOptionDTOList.size()))); } + + @Test + public void getMenu(MenuDTO testMenuDTO) throws Exception { + + addMenu(testMenuDTO); + + String menuGroupEnum = + testMenuDTO.getMenuGroup() == null ? null : testMenuDTO.getMenuGroup().toString(); + String menuStatusEnum = + testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); + + mockMvc.perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testMenuDTO.getMenuId()) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(objectMapper.writeValueAsString(testMenuDTO)) + .accept(MediaType.APPLICATION_JSON_UTF8)) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("cafeId").value(testMenuDTO.getCafeId())) + .andExpect(jsonPath("menuName").value(testMenuDTO.getMenuName())) + .andExpect(jsonPath("menuPrice").value(testMenuDTO.getMenuPrice())) + .andExpect(jsonPath("menuGroup").value(menuGroupEnum)) + .andExpect(jsonPath("menuStatus").value(menuStatusEnum)); + + } + + @Test + public void getOption(OptionDTO testOptionDTO) throws Exception { + + final long CAFEID = 1; + + addOption(testOptionDTO); + + String optionStatusEnum = + testOptionDTO.getOptionStatus() == null ? null : testOptionDTO.getOptionStatus().toString(); + + mockMvc.perform(post( + "/owner/cafe/" + CAFEID + "/menu/" + testOptionDTO.getMenuId() + "/options/" + testOptionDTO + .getOptionId()) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(objectMapper.writeValueAsString(testOptionDTO)) + .accept(MediaType.APPLICATION_JSON_UTF8)) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("optionId").value(testOptionDTO.getOptionId())) + .andExpect(jsonPath("optionName").value(testOptionDTO.getOptionName())) + .andExpect(jsonPath("optionPrice").value(testOptionDTO.getOptionPrice())) + .andExpect(jsonPath("optionStatus").value(optionStatusEnum)); + } } diff --git a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java index 7640a802..d091b26e 100644 --- a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java @@ -7,7 +7,6 @@ import com.flab.cafeguidebook.converter.MenuConverter.MenuDTOToMenuConverter; import com.flab.cafeguidebook.domain.Menu; import com.flab.cafeguidebook.dto.MenuDTO; -import com.flab.cafeguidebook.dto.OptionDTO; import com.flab.cafeguidebook.fixture.MenuDTOFixtureProvider; import com.flab.cafeguidebook.fixture.MenuDTOListFixtureProvider; import com.flab.cafeguidebook.fixture.MenuFixtureProvider; @@ -53,4 +52,10 @@ public void selectAllMenu(List testMenuDTOList) { given(menuMapper.selectAllMenu(testMenuDTOList.get(0).getCafeId())).willReturn(testMenuDTOList); assertThat(menuService.getAllMenu(testMenuDTOList.get(0).getCafeId())).isEqualTo(testMenuDTOList); } + + @Test + public void selectMenu(MenuDTO testMenuDTO) { + given(menuMapper.selectMenu(testMenuDTO.getMenuId())).willReturn(testMenuDTO); + assertThat(menuService.getMenu(testMenuDTO.getMenuId())).isEqualTo(testMenuDTO); + } } diff --git a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java index a4f70bc5..4d224902 100644 --- a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java @@ -53,4 +53,10 @@ public void selectAllOption(List testOptionDTOList) { assertThat(optionService.getAllOption(testOptionDTOList.get(0).getMenuId())).isEqualTo(testOptionDTOList); } + @Test + public void selectOption(OptionDTO testOptionDTO) { + given(optionMapper.selectOption(testOptionDTO.getOptionId())).willReturn(testOptionDTO); + assertThat(optionService.getOption(testOptionDTO.getOptionId())).isEqualTo(testOptionDTO); + } + } From 11a7c30d5e2ad299b17b8adfbada266f4596c667 Mon Sep 17 00:00:00 2001 From: jsj3282 Date: Sat, 25 Sep 2021 22:18:08 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[#102]=20feat=20:=20=EB=A9=94=EB=89=B4,=20?= =?UTF-8?q?=EC=98=B5=EC=85=98=20=EC=82=AD=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MenuController.java | 22 +++++++++++++ .../flab/cafeguidebook/mapper/MenuMapper.java | 4 +++ .../cafeguidebook/mapper/OptionMapper.java | 4 +++ .../cafeguidebook/service/MenuService.java | 5 +++ .../cafeguidebook/service/OptionService.java | 5 +++ .../resources/mybatis/mapper/MenuMapper.xml | 9 ++++++ .../resources/mybatis/mapper/OptionMapper.xml | 9 ++++++ .../controller/MenuControllerTest.java | 31 ++++++++++++++----- .../service/MenuServiceTest.java | 6 ++++ .../service/OptionServiceTest.java | 6 ++++ 10 files changed, 94 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java index e854669c..9c6f0012 100644 --- a/src/main/java/com/flab/cafeguidebook/controller/MenuController.java +++ b/src/main/java/com/flab/cafeguidebook/controller/MenuController.java @@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -138,4 +139,25 @@ public ResponseEntity getOption(@PathVariable long menuId, @PathVariable long op } } + @DeleteMapping(value = "/{menuId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteMenu(@PathVariable long cafeId, @PathVariable long menuId) { + boolean deleteMenu = menuService.deleteMenu(menuId); + if (!deleteMenu) { + LOGGER.info("해당 메뉴를 삭제할 수 없습니다. cafeId = {}, menuId = {}", cafeId, menuId); + return ResponseEntity.badRequest().build(); + } else { + return ResponseEntity.ok().build(); + } + } + + @DeleteMapping(value = "/{menuId}/options/{optionId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity deleteOption(@PathVariable long menuId, @PathVariable long optionId) { + boolean deleteOption = optionService.deleteOption(optionId); + if (!deleteOption) { + LOGGER.info("해당 옵션을 삭제할 수 없습니다. menuId = {}, optionId = {}", menuId, optionId); + return ResponseEntity.badRequest().build(); + } else { + return ResponseEntity.ok().build(); + } + } } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java index 786f1a1f..c4549fc5 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/MenuMapper.java @@ -15,4 +15,8 @@ public interface MenuMapper { public List selectAllMenu(long cafeId); public MenuDTO selectMenu(long menuId); + + public int deleteMenu(long menuId); + + public void deleteAllMenu(); } diff --git a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java index 97532040..ec9da2be 100644 --- a/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java +++ b/src/main/java/com/flab/cafeguidebook/mapper/OptionMapper.java @@ -15,4 +15,8 @@ public interface OptionMapper { public List selectAllOption(long menuId); public OptionDTO selectOption(long optionId); + + public int deleteOption(long optionId); + + public void deleteAllOption(); } diff --git a/src/main/java/com/flab/cafeguidebook/service/MenuService.java b/src/main/java/com/flab/cafeguidebook/service/MenuService.java index 7112b035..e4c39959 100644 --- a/src/main/java/com/flab/cafeguidebook/service/MenuService.java +++ b/src/main/java/com/flab/cafeguidebook/service/MenuService.java @@ -44,4 +44,9 @@ public MenuDTO getMenu(long menuId) { MenuDTO selectMenu = menuMapper.selectMenu(menuId); return selectMenu; } + + public boolean deleteMenu(long menuId) { + int deleteMenu = menuMapper.deleteMenu(menuId); + return deleteMenu == 1; + } } diff --git a/src/main/java/com/flab/cafeguidebook/service/OptionService.java b/src/main/java/com/flab/cafeguidebook/service/OptionService.java index 5d08e85e..f4eeb927 100644 --- a/src/main/java/com/flab/cafeguidebook/service/OptionService.java +++ b/src/main/java/com/flab/cafeguidebook/service/OptionService.java @@ -35,4 +35,9 @@ public OptionDTO getOption(long optionId) { OptionDTO selectOption = optionMapper.selectOption(optionId); return selectOption; } + + public boolean deleteOption(long optionId) { + int deleteOption = optionMapper.deleteOption(optionId); + return deleteOption == 1; + } } diff --git a/src/main/resources/mybatis/mapper/MenuMapper.xml b/src/main/resources/mybatis/mapper/MenuMapper.xml index 7baf2b17..505d4c0c 100644 --- a/src/main/resources/mybatis/mapper/MenuMapper.xml +++ b/src/main/resources/mybatis/mapper/MenuMapper.xml @@ -50,4 +50,13 @@ FROM menu WHERE menu_id = #{menuId} + + DELETE + FROM menu + WHERE menu_id = #{menuId} + + + DELETE + FROM menu; + diff --git a/src/main/resources/mybatis/mapper/OptionMapper.xml b/src/main/resources/mybatis/mapper/OptionMapper.xml index ee17448e..769e82d6 100644 --- a/src/main/resources/mybatis/mapper/OptionMapper.xml +++ b/src/main/resources/mybatis/mapper/OptionMapper.xml @@ -30,4 +30,13 @@ FROM menuoption WHERE option_id = #{optionId} + + DELETE + FROM menuoption + WHERE option_id = #{optionId} + + + DELETE + FROM menuoption; + diff --git a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java index 60df3864..58b57f92 100644 --- a/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java +++ b/src/test/java/com/flab/cafeguidebook/controller/MenuControllerTest.java @@ -13,7 +13,10 @@ import com.flab.cafeguidebook.fixture.MenuDTOFixtureProvider; import com.flab.cafeguidebook.fixture.OptionDTOFixtureProvider; import com.flab.cafeguidebook.fixture.OptionDTOListFixtureProvider; +import com.flab.cafeguidebook.mapper.MenuMapper; +import com.flab.cafeguidebook.mapper.OptionMapper; import java.util.List; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -35,6 +38,12 @@ public class MenuControllerTest { @Autowired private ObjectMapper objectMapper; + @Autowired + private MenuMapper menuMapper; + + @Autowired + private OptionMapper optionMapper; + @Autowired private WebApplicationContext webApplicationContext; @@ -43,6 +52,12 @@ public void init() { this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } + @AfterEach + public void deleteMenuAndOption() { + menuMapper.deleteAllMenu(); + optionMapper.deleteAllOption(); + } + @Test public void addMenu(MenuDTO testMenuDTO) throws Exception { @@ -166,10 +181,11 @@ public void getAllOption(MenuDTO testMenuDTO, List testOptionDTOList) addOption(testOptionDTOList.get(i)); } - mockMvc.perform(get("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testOptionDTOList.get(0) + mockMvc + .perform(get("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testOptionDTOList.get(0) .getMenuId() + "/options/") - .contentType(MediaType.APPLICATION_JSON_UTF8) - .accept(MediaType.APPLICATION_JSON_UTF8)) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .accept(MediaType.APPLICATION_JSON_UTF8)) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$", hasSize(testOptionDTOList.size()))); @@ -186,10 +202,11 @@ public void getMenu(MenuDTO testMenuDTO) throws Exception { String menuStatusEnum = testMenuDTO.getMenuStatus() == null ? null : testMenuDTO.getMenuStatus().toString(); - mockMvc.perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testMenuDTO.getMenuId()) - .contentType(MediaType.APPLICATION_JSON_UTF8) - .content(objectMapper.writeValueAsString(testMenuDTO)) - .accept(MediaType.APPLICATION_JSON_UTF8)) + mockMvc + .perform(post("/owner/cafe/" + testMenuDTO.getCafeId() + "/menu/" + testMenuDTO.getMenuId()) + .contentType(MediaType.APPLICATION_JSON_UTF8) + .content(objectMapper.writeValueAsString(testMenuDTO)) + .accept(MediaType.APPLICATION_JSON_UTF8)) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("cafeId").value(testMenuDTO.getCafeId())) diff --git a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java index d091b26e..d8adc2c4 100644 --- a/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/MenuServiceTest.java @@ -58,4 +58,10 @@ public void selectMenu(MenuDTO testMenuDTO) { given(menuMapper.selectMenu(testMenuDTO.getMenuId())).willReturn(testMenuDTO); assertThat(menuService.getMenu(testMenuDTO.getMenuId())).isEqualTo(testMenuDTO); } + + @Test + public void deleteMenu(MenuDTO testMenuDTO) { + given(menuMapper.deleteMenu(testMenuDTO.getMenuId())).willReturn(1); + assertThat(menuService.deleteMenu(testMenuDTO.getMenuId())).isEqualTo(true); + } } diff --git a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java index 4d224902..499d8911 100644 --- a/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/OptionServiceTest.java @@ -59,4 +59,10 @@ public void selectOption(OptionDTO testOptionDTO) { assertThat(optionService.getOption(testOptionDTO.getOptionId())).isEqualTo(testOptionDTO); } + @Test + public void deleteOption(OptionDTO testOptionDTO) { + given(optionMapper.deleteOption(testOptionDTO.getOptionId())).willReturn(1); + assertThat(optionService.deleteOption(testOptionDTO.getOptionId())).isEqualTo(true); + } + } From 9d01c777b24a94eb7b36327067013e1aa5e0a256 Mon Sep 17 00:00:00 2001 From: jsj3282 Date: Mon, 11 Oct 2021 14:40:00 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[#102]=20fix=20:=20=EC=B6=A9=EB=8F=8C?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mybatis/mapper/MenuMapper.xml | 8 +- .../resources/mybatis/mapper/OptionMapper.xml | 8 +- .../service/ReviewServiceTest.java | 162 +++++++++--------- 3 files changed, 89 insertions(+), 89 deletions(-) diff --git a/src/main/resources/mybatis/mapper/MenuMapper.xml b/src/main/resources/mybatis/mapper/MenuMapper.xml index 390fbbbd..6388c649 100644 --- a/src/main/resources/mybatis/mapper/MenuMapper.xml +++ b/src/main/resources/mybatis/mapper/MenuMapper.xml @@ -42,21 +42,21 @@ DELETE - FROM menu + FROM MENU WHERE menu_id = #{menuId} DELETE - FROM menu; + FROM MENU; diff --git a/src/main/resources/mybatis/mapper/OptionMapper.xml b/src/main/resources/mybatis/mapper/OptionMapper.xml index 769e82d6..3d225beb 100644 --- a/src/main/resources/mybatis/mapper/OptionMapper.xml +++ b/src/main/resources/mybatis/mapper/OptionMapper.xml @@ -22,21 +22,21 @@ DELETE - FROM menuoption + FROM MENUOPTION WHERE option_id = #{optionId} DELETE - FROM menuoption; + FROM MENUOPTION; diff --git a/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java index 8e04433d..2345398a 100644 --- a/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java @@ -1,81 +1,81 @@ -package com.flab.cafeguidebook.service; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import com.flab.cafeguidebook.domain.Review; -import com.flab.cafeguidebook.dto.CafeDTO; -import com.flab.cafeguidebook.dto.ReviewDTO; -import com.flab.cafeguidebook.fixture.CafeDTOFixtureProvider; -import com.flab.cafeguidebook.fixture.ReviewDTOFixtureProvider; -import com.flab.cafeguidebook.fixture.ReviewFixtureProvider; -import com.flab.cafeguidebook.mapper.ReviewMapper; -import java.util.ArrayList; -import java.util.List; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -@ExtendWith({SpringExtension.class, CafeDTOFixtureProvider.class, ReviewDTOFixtureProvider.class, - ReviewFixtureProvider.class}) -@SpringBootTest -public class ReviewServiceTest { - - @Mock - private ReviewMapper reviewMapper; - - @InjectMocks - private ReviewService reviewService; - - @Test - @Disabled - public void addReviewSuccess(CafeDTO cafe, ReviewDTO reviewDTO, Review review) { - when(reviewMapper.insertReview(cafe.getCafeId(), review)).thenReturn(1); - - assertTrue(reviewService.addReview(cafe.getCafeId(), reviewDTO)); - - verify(reviewMapper).insertReview(cafe.getCafeId(), review); - } - - @Test - public void updateReviewSuccess(ReviewDTO review) { - when(reviewMapper.updateReview(review.getId(), review.getContent() + "Modifying Contents")) - .thenReturn(1); - - assertTrue( - reviewService.updateReview(review.getId(), review.getContent() + "Modifying Contents")); - - verify(reviewMapper).updateReview(review.getId(), review.getContent() + "Modifying Contents"); - } - - @Test - public void updateReviewSuccess(ReviewDTO review) { - when(reviewMapper.updateReview(review.getId(), review.getUserId(), - review.getContent() + "Modifying Contents")) - .thenReturn(1); - - assertTrue( - reviewService.updateReview(review.getId(), review.getUserId(), - review.getContent() + "Modifying Contents")); - - verify(reviewMapper).updateReview(review.getId(), review.getUserId(), - review.getContent() + "Modifying Contents"); - } - - @Test - public void deleteReviewSuccess(ReviewDTO review) { - when(reviewMapper.deleteReview(review.getId())) - .thenReturn(1); - - assertTrue( - reviewService.deleteReview(review.getId(), review.getUserId())); - - verify(reviewMapper).deleteReview(review.getId()); - } -} +//package com.flab.cafeguidebook.service; +// +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static org.junit.jupiter.api.Assertions.assertTrue; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import com.flab.cafeguidebook.domain.Review; +//import com.flab.cafeguidebook.dto.CafeDTO; +//import com.flab.cafeguidebook.dto.ReviewDTO; +//import com.flab.cafeguidebook.fixture.CafeDTOFixtureProvider; +//import com.flab.cafeguidebook.fixture.ReviewDTOFixtureProvider; +//import com.flab.cafeguidebook.fixture.ReviewFixtureProvider; +//import com.flab.cafeguidebook.mapper.ReviewMapper; +//import java.util.ArrayList; +//import java.util.List; +//import org.junit.jupiter.api.Disabled; +//import org.junit.jupiter.api.Test; +//import org.junit.jupiter.api.extension.ExtendWith; +//import org.mockito.InjectMocks; +//import org.mockito.Mock; +//import org.springframework.boot.test.context.SpringBootTest; +//import org.springframework.test.context.junit.jupiter.SpringExtension; +// +//@ExtendWith({SpringExtension.class, CafeDTOFixtureProvider.class, ReviewDTOFixtureProvider.class, +// ReviewFixtureProvider.class}) +//@SpringBootTest +//public class ReviewServiceTest { +// +// @Mock +// private ReviewMapper reviewMapper; +// +// @InjectMocks +// private ReviewService reviewService; +// +// @Test +// @Disabled +// public void addReviewSuccess(CafeDTO cafe, ReviewDTO reviewDTO, Review review) { +// when(reviewMapper.insertReview(cafe.getCafeId(), review)).thenReturn(1); +// +// assertTrue(reviewService.addReview(cafe.getCafeId(), reviewDTO)); +// +// verify(reviewMapper).insertReview(cafe.getCafeId(), review); +// } +// +// @Test +// public void updateReviewSuccess(ReviewDTO review) { +// when(reviewMapper.updateReview(review.getId(), review.getContent() + "Modifying Contents")) +// .thenReturn(1); +// +// assertTrue( +// reviewService.updateReview(review.getId(), review.getContent() + "Modifying Contents")); +// +// verify(reviewMapper).updateReview(review.getId(), review.getContent() + "Modifying Contents"); +// } +// +// @Test +// public void updateReviewSuccess(ReviewDTO review) { +// when(reviewMapper.updateReview(review.getId(), review.getUserId(), +// review.getContent() + "Modifying Contents")) +// .thenReturn(1); +// +// assertTrue( +// reviewService.updateReview(review.getId(), review.getUserId(), +// review.getContent() + "Modifying Contents")); +// +// verify(reviewMapper).updateReview(review.getId(), review.getUserId(), +// review.getContent() + "Modifying Contents"); +// } +// +// @Test +// public void deleteReviewSuccess(ReviewDTO review) { +// when(reviewMapper.deleteReview(review.getId())) +// .thenReturn(1); +// +// assertTrue( +// reviewService.deleteReview(review.getId(), review.getUserId())); +// +// verify(reviewMapper).deleteReview(review.getId()); +// } +//} From 2c7176c41c9557e91897ac807b8556787bfcabec Mon Sep 17 00:00:00 2001 From: jsj3282 Date: Mon, 11 Oct 2021 14:41:26 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[#102]=20comment=20:=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ReviewServiceTest.java | 162 +++++++++--------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java b/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java index 2345398a..8e04433d 100644 --- a/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java +++ b/src/test/java/com/flab/cafeguidebook/service/ReviewServiceTest.java @@ -1,81 +1,81 @@ -//package com.flab.cafeguidebook.service; -// -//import static org.junit.jupiter.api.Assertions.assertEquals; -//import static org.junit.jupiter.api.Assertions.assertTrue; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import com.flab.cafeguidebook.domain.Review; -//import com.flab.cafeguidebook.dto.CafeDTO; -//import com.flab.cafeguidebook.dto.ReviewDTO; -//import com.flab.cafeguidebook.fixture.CafeDTOFixtureProvider; -//import com.flab.cafeguidebook.fixture.ReviewDTOFixtureProvider; -//import com.flab.cafeguidebook.fixture.ReviewFixtureProvider; -//import com.flab.cafeguidebook.mapper.ReviewMapper; -//import java.util.ArrayList; -//import java.util.List; -//import org.junit.jupiter.api.Disabled; -//import org.junit.jupiter.api.Test; -//import org.junit.jupiter.api.extension.ExtendWith; -//import org.mockito.InjectMocks; -//import org.mockito.Mock; -//import org.springframework.boot.test.context.SpringBootTest; -//import org.springframework.test.context.junit.jupiter.SpringExtension; -// -//@ExtendWith({SpringExtension.class, CafeDTOFixtureProvider.class, ReviewDTOFixtureProvider.class, -// ReviewFixtureProvider.class}) -//@SpringBootTest -//public class ReviewServiceTest { -// -// @Mock -// private ReviewMapper reviewMapper; -// -// @InjectMocks -// private ReviewService reviewService; -// -// @Test -// @Disabled -// public void addReviewSuccess(CafeDTO cafe, ReviewDTO reviewDTO, Review review) { -// when(reviewMapper.insertReview(cafe.getCafeId(), review)).thenReturn(1); -// -// assertTrue(reviewService.addReview(cafe.getCafeId(), reviewDTO)); -// -// verify(reviewMapper).insertReview(cafe.getCafeId(), review); -// } -// -// @Test -// public void updateReviewSuccess(ReviewDTO review) { -// when(reviewMapper.updateReview(review.getId(), review.getContent() + "Modifying Contents")) -// .thenReturn(1); -// -// assertTrue( -// reviewService.updateReview(review.getId(), review.getContent() + "Modifying Contents")); -// -// verify(reviewMapper).updateReview(review.getId(), review.getContent() + "Modifying Contents"); -// } -// -// @Test -// public void updateReviewSuccess(ReviewDTO review) { -// when(reviewMapper.updateReview(review.getId(), review.getUserId(), -// review.getContent() + "Modifying Contents")) -// .thenReturn(1); -// -// assertTrue( -// reviewService.updateReview(review.getId(), review.getUserId(), -// review.getContent() + "Modifying Contents")); -// -// verify(reviewMapper).updateReview(review.getId(), review.getUserId(), -// review.getContent() + "Modifying Contents"); -// } -// -// @Test -// public void deleteReviewSuccess(ReviewDTO review) { -// when(reviewMapper.deleteReview(review.getId())) -// .thenReturn(1); -// -// assertTrue( -// reviewService.deleteReview(review.getId(), review.getUserId())); -// -// verify(reviewMapper).deleteReview(review.getId()); -// } -//} +package com.flab.cafeguidebook.service; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.flab.cafeguidebook.domain.Review; +import com.flab.cafeguidebook.dto.CafeDTO; +import com.flab.cafeguidebook.dto.ReviewDTO; +import com.flab.cafeguidebook.fixture.CafeDTOFixtureProvider; +import com.flab.cafeguidebook.fixture.ReviewDTOFixtureProvider; +import com.flab.cafeguidebook.fixture.ReviewFixtureProvider; +import com.flab.cafeguidebook.mapper.ReviewMapper; +import java.util.ArrayList; +import java.util.List; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ExtendWith({SpringExtension.class, CafeDTOFixtureProvider.class, ReviewDTOFixtureProvider.class, + ReviewFixtureProvider.class}) +@SpringBootTest +public class ReviewServiceTest { + + @Mock + private ReviewMapper reviewMapper; + + @InjectMocks + private ReviewService reviewService; + + @Test + @Disabled + public void addReviewSuccess(CafeDTO cafe, ReviewDTO reviewDTO, Review review) { + when(reviewMapper.insertReview(cafe.getCafeId(), review)).thenReturn(1); + + assertTrue(reviewService.addReview(cafe.getCafeId(), reviewDTO)); + + verify(reviewMapper).insertReview(cafe.getCafeId(), review); + } + + @Test + public void updateReviewSuccess(ReviewDTO review) { + when(reviewMapper.updateReview(review.getId(), review.getContent() + "Modifying Contents")) + .thenReturn(1); + + assertTrue( + reviewService.updateReview(review.getId(), review.getContent() + "Modifying Contents")); + + verify(reviewMapper).updateReview(review.getId(), review.getContent() + "Modifying Contents"); + } + + @Test + public void updateReviewSuccess(ReviewDTO review) { + when(reviewMapper.updateReview(review.getId(), review.getUserId(), + review.getContent() + "Modifying Contents")) + .thenReturn(1); + + assertTrue( + reviewService.updateReview(review.getId(), review.getUserId(), + review.getContent() + "Modifying Contents")); + + verify(reviewMapper).updateReview(review.getId(), review.getUserId(), + review.getContent() + "Modifying Contents"); + } + + @Test + public void deleteReviewSuccess(ReviewDTO review) { + when(reviewMapper.deleteReview(review.getId())) + .thenReturn(1); + + assertTrue( + reviewService.deleteReview(review.getId(), review.getUserId())); + + verify(reviewMapper).deleteReview(review.getId()); + } +}