diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleCreateResult.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleCreateResult.java deleted file mode 100644 index a368ac7..0000000 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleCreateResult.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bpgroup.poc.admin.domain.base.role.service; - -import lombok.Builder; -import lombok.Getter; -import lombok.ToString; - -@Getter -@ToString -public class RoleCreateResult { - - private Long id; - - @Builder - public static RoleCreateResult of(Long id) { - RoleCreateResult result = new RoleCreateResult(); - result.id = id; - return result; - } - -} diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleService.java index eb5fb68..5810345 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleService.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/domain/base/role/service/RoleService.java @@ -25,14 +25,10 @@ public class RoleService { /** * ROLE 생성 */ - public RoleCreateResult create( + public Role create( @NotNull @Valid RoleCreateCommand command ) { - Role role = roleRepository.save(command.toEntity()); - - return RoleCreateResult.builder() - .id(role.getId()) - .build(); + return roleRepository.save(command.toEntity()); } /** diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/management/AdminManagementWebService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/management/AdminManagementWebService.java index a1c09ec..356b1dc 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/management/AdminManagementWebService.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/management/AdminManagementWebService.java @@ -69,6 +69,7 @@ public class AdminManagementWebService { adminService.update( AdminUpdateCommand.builder() .id(request.getId()) + .password(passwordEncoder.encode(request.getPassword())) .email(request.getEmail()) .name(request.getName()) .adminRole(AdminRole.of(role)) diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleRestController.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleRestController.java index fc7abe9..5ac3051 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleRestController.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleRestController.java @@ -40,8 +40,8 @@ public class RoleRestController { @RequestBody @Valid RoleUpdate.Request request, BindingResult bindingResult ) { - roleWebService.update(request); - return ResponseEntity.ok(RoleUpdate.Response.success()); + RoleUpdate.Response response = roleWebService.update(request); + return ResponseEntity.ok(response); } /** @@ -52,8 +52,8 @@ public class RoleRestController { @RequestBody @Valid RoleDelete.Request request, BindingResult bindingResult ) { - roleWebService.delete(request); - return ResponseEntity.ok(RoleDelete.Response.success()); + RoleDelete.Response response = roleWebService.delete(request); + return ResponseEntity.ok(response); } /** @@ -64,8 +64,8 @@ public class RoleRestController { @RequestBody @Valid RoleAddMenu.Request request, BindingResult bindingResult ) { - roleWebService.putMenu(request); - return ResponseEntity.ok(RoleAddMenu.Response.success()); + RoleAddMenu.Response response = roleWebService.putMenu(request); + return ResponseEntity.ok(response); } } diff --git a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleWebService.java b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleWebService.java index 0ff5c8e..449cbcb 100644 --- a/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleWebService.java +++ b/poc/admin/src/main/java/com/bpgroup/poc/admin/web/main/admin/role/RoleWebService.java @@ -8,8 +8,6 @@ import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleAddMenu; import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleCreate; import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleDelete; import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleUpdate; -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,7 +25,7 @@ public class RoleWebService { private final MenuService menuService; public RoleCreate.Response create(RoleCreate.Request request) { - RoleCreateResult createResult = roleService.create( + Role createResult = roleService.create( RoleCreateCommand.builder() .name(request.getName()) .description(request.getDescription()) @@ -37,7 +35,7 @@ public class RoleWebService { return RoleCreate.Response.success(createResult.getId()); } - public void update(RoleUpdate.Request request) { + public RoleUpdate.Response update(RoleUpdate.Request request) { roleService.update( RoleUpdateCommand.builder() .id(request.getId()) @@ -45,13 +43,16 @@ public class RoleWebService { .description(request.getDescription()) .build() ); + + return RoleUpdate.Response.success(); } - public void delete(RoleDelete.Request request) { + public RoleDelete.Response delete(RoleDelete.Request request) { roleService.delete(request.getId()); + return RoleDelete.Response.success(); } - public void putMenu(@NotNull @Valid RoleAddMenu.Request request) { + public RoleAddMenu.Response putMenu(RoleAddMenu.Request request) { roleService.deleteRoleMenu(request.getRoleId()); Optional findRole = roleService.find(request.getRoleId()); @@ -77,5 +78,7 @@ public class RoleWebService { .collect(Collectors.toSet()); roleService.addRoleMenu(commands); + + return RoleAddMenu.Response.success(); } } diff --git a/poc/admin/src/test/java/com/bpgroup/poc/admin/domain/base/role/service/RoleServiceTest.java b/poc/admin/src/test/java/com/bpgroup/poc/admin/domain/base/role/service/RoleServiceTest.java index 113e75e..e903077 100644 --- a/poc/admin/src/test/java/com/bpgroup/poc/admin/domain/base/role/service/RoleServiceTest.java +++ b/poc/admin/src/test/java/com/bpgroup/poc/admin/domain/base/role/service/RoleServiceTest.java @@ -53,7 +53,7 @@ class RoleServiceTest extends MariaDBTestEnv { @DisplayName("Role 생성 테스트") void createRoleTest() { // when - RoleCreateResult createResult = roleService.create( + Role createResult = roleService.create( RoleCreateCommand.builder() .name("TEST") .description("TEST") diff --git a/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/admin/AdminManagementWebServiceTest.java b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/admin/AdminManagementWebServiceTest.java new file mode 100644 index 0000000..b6e741b --- /dev/null +++ b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/admin/AdminManagementWebServiceTest.java @@ -0,0 +1,118 @@ +package com.bpgroup.poc.admin.web.main.admin; + +import com.bpgroup.poc.admin.domain.base.admin.entity.Admin; +import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRepository; +import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole; +import com.bpgroup.poc.admin.domain.base.role.entity.Role; +import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository; +import com.bpgroup.poc.admin.env.MariaDBTestEnv; +import com.bpgroup.poc.admin.web.main.admin.management.AdminManagementWebService; +import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminCreate; +import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminDelete; +import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminUpdate; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import static org.assertj.core.api.Assertions.assertThat; + +@DisplayName("Admin Web Service 테스트") +@Transactional +class AdminManagementWebServiceTest extends MariaDBTestEnv { + + @Autowired + private AdminManagementWebService adminWebService; + + @Autowired + private AdminRepository adminRepository; + + @Autowired + private RoleRepository roleRepository; + + @Test + @DisplayName("Admin 생성 테스트") + void createTest() { + // given + Role savedRole = getSavedRole(); + flushAndClear(); + + AdminCreate.Request request = new AdminCreate.Request(); + request.setLoginId("test"); + request.setPassword("test"); + request.setName("test"); + request.setEmail("test"); + request.setRoleId(savedRole.getId()); + + // when + AdminCreate.Response response = adminWebService.create(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Admin 수정 테스트") + void updateTest() { + // given + Role savedRole = getSavedRole(); + Admin savedAdmin = adminRepository.save( + Admin.builder() + .loginId("test") + .password("test") + .name("test") + .email("test") + .adminRole(AdminRole.of(savedRole)) + .build() + ); + flushAndClear(); + + AdminUpdate.Request request = new AdminUpdate.Request(); + request.setId(savedAdmin.getId()); + request.setPassword("test2"); + request.setName("test2"); + request.setEmail("test2"); + request.setRoleId(savedRole.getId()); + + // when + AdminUpdate.Response updateResponse = adminWebService.update(request); + + // then + assertThat(updateResponse.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Admin 삭제 테스트") + void deleteTest() { + // given + Role savedRole = getSavedRole(); + Admin savedAdmin = adminRepository.save( + Admin.builder() + .loginId("test") + .password("test") + .name("test") + .email("test") + .adminRole(AdminRole.of(savedRole)) + .build() + ); + flushAndClear(); + + AdminDelete.Request request = new AdminDelete.Request(); + request.setId(savedAdmin.getId()); + + // when + AdminDelete.Response response = adminWebService.delete(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + + private Role getSavedRole() { + Role role = Role.builder() + .name("test") + .description("test") + .build(); + return roleRepository.save(role); + } +} diff --git a/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/menu/MenuWebServiceTest.java b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/menu/MenuWebServiceTest.java new file mode 100644 index 0000000..1074b7e --- /dev/null +++ b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/menu/MenuWebServiceTest.java @@ -0,0 +1,168 @@ +package com.bpgroup.poc.admin.web.main.menu; + +import com.bpgroup.poc.admin.domain.base.menu.entity.Menu; +import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup; +import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroupRepository; +import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository; +import com.bpgroup.poc.admin.env.MariaDBTestEnv; +import com.bpgroup.poc.admin.web.main.admin.menu.MenuWebService; +import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import static org.assertj.core.api.Assertions.assertThat; + +@DisplayName("Menu Web Service 테스트") +@Transactional +public class MenuWebServiceTest extends MariaDBTestEnv { + + @Autowired + private MenuWebService menuWebService; + + @Autowired + private MenuGroupRepository menuGroupRepository; + + @Autowired + private MenuRepository menuRepository; + + @Test + @DisplayName("Menu 그룹 생성 테스트") + void createMenuGroupTest() { + // given + MenuGroupCreate.Request request = new MenuGroupCreate.Request(); + request.setName("test"); + request.setUri("test"); + request.setSortOrder(1); + + // when + MenuGroupCreate.Response response = menuWebService.createMenuGroup(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Menu 그룹 수정 테스트") + void updateMenuGroupTest() { + // given + MenuGroup savedMenuGroup = getSavedMenuGroup(); + flushAndClear(); + + MenuGroupUpdate.Request updateRequest = new MenuGroupUpdate.Request(); + updateRequest.setId(savedMenuGroup.getId()); + updateRequest.setName("test2"); + updateRequest.setUri("test2"); + updateRequest.setSortOrder(1); + + // when + MenuGroupUpdate.Response updateResponse = menuWebService.updateMenuGroup(updateRequest); + + // then + assertThat(updateResponse.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Menu 그룹 삭제 테스트") + void deleteMenuGroupTest() { + // given + MenuGroup savedMenuGroup = getSavedMenuGroup(); + flushAndClear(); + + MenuGroupDelete.Request deleteRequest = new MenuGroupDelete.Request(); + deleteRequest.setId(savedMenuGroup.getId()); + + // when + MenuGroupDelete.Response deleteResponse = menuWebService.deleteMenuGroup(deleteRequest); + + // then + assertThat(deleteResponse.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Menu 생성 테스트") + void createMenuTest() { + // given + MenuGroup savedMenuGroup = getSavedMenuGroup(); + flushAndClear(); + + MenuCreate.Request createRequest = new MenuCreate.Request(); + createRequest.setMenuGroupId(savedMenuGroup.getId()); + createRequest.setUri("test"); + createRequest.setName("test"); + createRequest.setSortOrder(1); + + // when + MenuCreate.Response createResponse = menuWebService.createMenu(createRequest); + + // then + assertThat(createResponse.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Menu 수정 테스트") + void updateMenuTest() { + // given + MenuGroup savedMenuGroup = getSavedMenuGroup(); + Menu savedMenu = getSavedMenu(); + savedMenu.addMenuGroup(savedMenuGroup); + flushAndClear(); + + MenuUpdate.Request updateRequest = new MenuUpdate.Request(); + updateRequest.setId(savedMenu.getId()); + updateRequest.setUri("test2"); + updateRequest.setName("test2"); + updateRequest.setSortOrder(1); + + // when + MenuUpdate.Response updateResponse = menuWebService.updateMenu(updateRequest); + + // then + assertThat(updateResponse.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Menu 삭제 테스트") + void deleteMenuTest() { + // given + MenuGroup savedMenuGroup = getSavedMenuGroup(); + Menu savedMenu = getSavedMenu(); + savedMenu.addMenuGroup(savedMenuGroup); + flushAndClear(); + + MenuDelete.Request deleteRequest = new MenuDelete.Request(); + deleteRequest.setId(savedMenu.getId()); + + // when + MenuDelete.Response deleteResponse = menuWebService.deleteMenu(deleteRequest); + + // then + assertThat(deleteResponse.getResultCode()).isEqualTo("0000"); + } + + @NotNull + private Menu getSavedMenu() { + return menuRepository.save( + Menu.builder() + .uri("test") + .name("test") + .sortOrder(1) + .build() + ); + } + + @NotNull + private MenuGroup getSavedMenuGroup() { + return menuGroupRepository.save( + MenuGroup.builder() + .name("test") + .uri("test") + .sortOrder(1) + .build() + ); + } + + +} diff --git a/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/role/RoleWebServiceTest.java b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/role/RoleWebServiceTest.java new file mode 100644 index 0000000..24e4dae --- /dev/null +++ b/poc/admin/src/test/java/com/bpgroup/poc/admin/web/main/role/RoleWebServiceTest.java @@ -0,0 +1,133 @@ +package com.bpgroup.poc.admin.web.main.role; + +import com.bpgroup.poc.admin.domain.base.menu.entity.Menu; +import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository; +import com.bpgroup.poc.admin.domain.base.role.RoleMenuType; +import com.bpgroup.poc.admin.domain.base.role.entity.Role; +import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository; +import com.bpgroup.poc.admin.env.MariaDBTestEnv; +import com.bpgroup.poc.admin.web.main.admin.role.RoleWebService; +import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleAddMenu; +import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleCreate; +import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleDelete; +import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleUpdate; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +@DisplayName("Role Web Service 테스트") +@Transactional +class RoleWebServiceTest extends MariaDBTestEnv { + + @Autowired + private RoleWebService roleWebService; + + @Autowired + private RoleRepository roleRepository; + + @Autowired + private MenuRepository menuRepository; + + + + @Test + @DisplayName("Role 생성 테스트") + void createTest() { + // given + RoleCreate.Request request = new RoleCreate.Request(); + request.setName("test"); + request.setDescription("test"); + + // when + RoleCreate.Response response = roleWebService.create(request); + flushAndClear(); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Role 수정 테스트") + void updateTest() { + // given + Role savedRole = getSavedRole(); + flushAndClear(); + + RoleUpdate.Request request = new RoleUpdate.Request(); + request.setId(savedRole.getId()); + request.setName("test2"); + request.setDescription("test2"); + + // when + RoleUpdate.Response response = roleWebService.update(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Role 삭제 테스트") + void deleteTest() { + // given + Role savedRole = getSavedRole(); + flushAndClear(); + + RoleDelete.Request request = new RoleDelete.Request(); + request.setId(savedRole.getId()); + + // when + RoleDelete.Response response = roleWebService.delete(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + @Test + @DisplayName("Role 메뉴 추가 테스트") + void putMenuTest() { + // given + Role savedRole = getSavedRole(); + Menu menu = getSavedMenu(); + flushAndClear(); + + RoleAddMenu.Request request = new RoleAddMenu.Request(); + request.setRoleId(savedRole.getId()); + request.setMenus( + List.of( + new RoleAddMenu.Request.Menu(menu.getId(), RoleMenuType.MANAGER) + ) + ); + + // when + RoleAddMenu.Response response = roleWebService.putMenu(request); + + // then + assertThat(response.getResultCode()).isEqualTo("0000"); + } + + private Menu getSavedMenu() { + return menuRepository.save( + Menu.of( + "test", + "test", + 1 + ) + ); + } + + private Role getSavedRole() { + return roleRepository.save( + Role.of( + "test", + "test" + ) + ); + } + + +}