admin: domain 관심사 분리

This commit is contained in:
geonhos 2024-05-17 10:58:00 +09:00
parent f66c5afe0a
commit bc853e023e
28 changed files with 175 additions and 186 deletions

View File

@ -1,4 +1,4 @@
package com.bpgroup.poc.admin.domain.entity;
package com.bpgroup.poc.admin.domain.base;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.admin.entity;
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
@ -30,12 +30,13 @@ public class Admin extends BaseEntity {
private AdminRole adminRole;
@Builder
public static Admin of(String loginId, String password, String email, String name) {
public static Admin of(String loginId, String password, String email, String name, AdminRole adminRole) {
Admin admin = new Admin();
admin.loginId = loginId;
admin.password = password;
admin.email = email;
admin.name = name;
admin.adminRole = adminRole;
return admin;
}
@ -46,7 +47,4 @@ public class Admin extends BaseEntity {
this.adminRole = admin.adminRole;
}
public void setAdminRole(AdminRole adminRole) {
this.adminRole = adminRole;
}
}

View File

@ -1,6 +1,7 @@
package com.bpgroup.poc.admin.domain.base.admin.service;
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
@ -19,16 +20,16 @@ public class AdminCreateCommand {
@NotBlank
private String name;
@NotNull
private Long roleId;
private AdminRole adminRole;
@Builder
public static AdminCreateCommand of(String loginId, String password, String email, String name, Long roleId) {
public static AdminCreateCommand of(String loginId, String password, String email, String name, AdminRole adminRole) {
AdminCreateCommand command = new AdminCreateCommand();
command.loginId = loginId;
command.password = password;
command.email = email;
command.name = name;
command.roleId = roleId;
command.adminRole = adminRole;
return command;
}
@ -38,6 +39,7 @@ public class AdminCreateCommand {
.password(password)
.email(email)
.name(name)
.adminRole(adminRole)
.build();
}

View File

@ -1,18 +0,0 @@
package com.bpgroup.poc.admin.domain.base.admin.service;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;
@Getter
@ToString
public class AdminCreateResult {
private Long id;
@Builder
public static AdminCreateResult of(Long id) {
AdminCreateResult result = new AdminCreateResult();
result.id = id;
return result;
}
}

View File

@ -2,9 +2,6 @@ package com.bpgroup.poc.admin.domain.base.admin.service;
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 jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
@ -21,28 +18,11 @@ import java.util.Optional;
public class AdminService {
private final AdminRepository adminRepository;
private final RoleRepository roleRepository;
public AdminCreateResult create(
public Admin create(
@NotNull @Valid AdminCreateCommand command
) {
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Not found role");
}
Role role = findRole.get();
Admin admin = command.toEntity();
admin.setAdminRole(
AdminRole.builder()
.role(role)
.build()
);
Admin savedAdmin = adminRepository.save(admin);
return AdminCreateResult.builder()
.id(savedAdmin.getId())
.build();
return adminRepository.save(command.toEntity());
}
public void update(
@ -53,19 +33,8 @@ public class AdminService {
throw new IllegalArgumentException("Not found admin");
}
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Not found role");
}
Role role = findRole.get();
Admin admin = findAdmin.get();
admin.setAdminRole(
AdminRole.builder()
.role(role)
.build()
);
admin.update(admin);
admin.update(command.toEntity());
}
public void delete(@NotNull Long id) {

View File

@ -1,6 +1,7 @@
package com.bpgroup.poc.admin.domain.base.admin.service;
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
@ -19,16 +20,16 @@ public class AdminUpdateCommand {
@NotBlank
private String name;
@NotNull
private Long roleId;
private AdminRole adminRole;
@Builder
public static AdminUpdateCommand of(Long id, String password, String email, String name, Long roleId) {
public static AdminUpdateCommand of(Long id, String password, String email, String name, AdminRole adminRole) {
AdminUpdateCommand command = new AdminUpdateCommand();
command.id = id;
command.password = password;
command.email = email;
command.name = name;
command.roleId = roleId;
command.adminRole = adminRole;
return command;
}
@ -37,6 +38,7 @@ public class AdminUpdateCommand {
.password(password)
.email(email)
.name(name)
.adminRole(adminRole)
.build();
}

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
package com.bpgroup.poc.admin.domain.base.menu.entity;
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
@ -27,7 +27,7 @@ public class Menu extends BaseEntity {
@JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private MenuGroup menuGroup;
public void setMenuGroup(MenuGroup menuGroup) {
public void addMenuGroup(MenuGroup menuGroup) {
this.menuGroup = menuGroup;
menuGroup.getMenus().add(this);
}

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
package com.bpgroup.poc.admin.domain.base.menu.entity;
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
@ -38,11 +38,6 @@ public class MenuGroup extends BaseEntity {
return menuGroup;
}
public void addMenu(Menu entity) {
this.menus.add(entity);
entity.setMenuGroup(this);
}
public void update(MenuGroup entity) {
this.uri = entity.uri;
this.name = entity.name;

View File

@ -1,4 +1,4 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
package com.bpgroup.poc.admin.domain.base.menu.entity;
import org.springframework.data.jpa.repository.JpaRepository;

View File

@ -1,4 +1,4 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
package com.bpgroup.poc.admin.domain.base.menu.entity;
import org.springframework.data.jpa.repository.JpaRepository;

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.service;
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.service;
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.service;
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;

View File

@ -1,9 +1,9 @@
package com.bpgroup.poc.admin.domain.base.role.service;
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
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 jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
@ -58,7 +58,7 @@ public class MenuService {
MenuGroup menuGroup = findMenuGroup.get();
Menu menu = command.toEntity();
menu.setMenuGroup(menuGroup);
menu.addMenuGroup(menuGroup);
menuRepository.save(menu);
}
@ -86,4 +86,8 @@ public class MenuService {
public Optional<Menu> findById(Long menuId) {
return menuRepository.findById(menuId);
}
public Optional<Menu> find(Long menuId) {
return menuRepository.findById(menuId);
}
}

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.service;
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;

View File

@ -1,6 +1,6 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;

View File

@ -1,6 +1,7 @@
package com.bpgroup.poc.admin.domain.base.role.entity;
import com.bpgroup.poc.admin.domain.entity.BaseEntity;
import com.bpgroup.poc.admin.domain.base.BaseEntity;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
@ -27,6 +28,8 @@ public class RoleMenu extends BaseEntity {
RoleMenu roleMenu = new RoleMenu();
roleMenu.role = role;
roleMenu.menu = menu;
roleMenu.role.getRoleMenus().add(roleMenu);
return roleMenu;
}
}

View File

@ -1,5 +1,8 @@
package com.bpgroup.poc.admin.domain.base.role.service;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Getter;
@ -9,16 +12,20 @@ import lombok.ToString;
@ToString
public class RoleAddMenuCommand {
@NotNull
private Long roleId;
private Role role;
@NotNull
private Long menuId;
private Menu menu;
@Builder
public static RoleAddMenuCommand of(Long roleId, Long menuId) {
public static RoleAddMenuCommand of(Role role, Menu menu) {
RoleAddMenuCommand command = new RoleAddMenuCommand();
command.roleId = roleId;
command.menuId = menuId;
command.role = role;
command.menu = menu;
return command;
}
public RoleMenu toEntity() {
return RoleMenu.of(role, menu);
}
}

View File

@ -1,10 +1,8 @@
package com.bpgroup.poc.admin.domain.base.role.service;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
@ -67,24 +65,11 @@ public class RoleService {
public void addRoleMenu(
@NotNull @Valid Set<RoleAddMenuCommand> commands
) {
RoleAddMenuCommand command = commands.stream().findFirst().orElseThrow();
Optional<Role> findRole = roleRepository.findById(command.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Role Not Found");
}
Role role = findRole.get();
commands.forEach(c -> {
Optional<Menu> findMenu = menuRepository.findById(c.getMenuId());
if (findMenu.isEmpty()) {
throw new IllegalArgumentException("Menu Not Found");
}
Menu menu = findMenu.get();
RoleMenu roleMenu = RoleMenu.of(role, menu);
roleMenuRepository.save(roleMenu);
});
roleMenuRepository.saveAll(
commands.stream()
.map(RoleAddMenuCommand::toEntity)
.toList()
);
}
public void deleteRoleMenu(@NotNull Long roleId) {
@ -96,4 +81,8 @@ public class RoleService {
Role role = findRole.get();
role.deleteRoleMenus();
}
public Optional<Role> find(Long roleId) {
return roleRepository.findById(roleId);
}
}

View File

@ -9,8 +9,8 @@ import java.util.*;
import static com.bpgroup.poc.admin.domain.base.admin.entity.QAdmin.admin;
import static com.bpgroup.poc.admin.domain.base.admin.entity.QAdminRole.adminRole;
import static com.bpgroup.poc.admin.domain.base.role.entity.QMenu.menu;
import static com.bpgroup.poc.admin.domain.base.role.entity.QMenuGroup.menuGroup;
import static com.bpgroup.poc.admin.domain.base.menu.entity.QMenu.menu;
import static com.bpgroup.poc.admin.domain.base.menu.entity.QMenuGroup.menuGroup;
import static com.bpgroup.poc.admin.domain.base.role.entity.QRole.role;
import static com.bpgroup.poc.admin.domain.base.role.entity.QRoleMenu.roleMenu;

View File

@ -1,9 +1,12 @@
package com.bpgroup.poc.admin.web.main.admin.management;
import com.bpgroup.poc.admin.domain.base.admin.entity.Admin;
import com.bpgroup.poc.admin.domain.base.admin.entity.AdminRole;
import com.bpgroup.poc.admin.domain.base.admin.service.AdminCreateCommand;
import com.bpgroup.poc.admin.domain.base.admin.service.AdminCreateResult;
import com.bpgroup.poc.admin.domain.base.admin.service.AdminService;
import com.bpgroup.poc.admin.domain.base.admin.service.AdminUpdateCommand;
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
import com.bpgroup.poc.admin.domain.base.role.service.RoleService;
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.AdminFind;
@ -11,16 +14,21 @@ import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdminUpdate;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
@Service
@RequiredArgsConstructor
@Transactional
public class AdminManagementWebService {
private final PasswordEncoder passwordEncoder;
private final AdminService adminService;
private final RoleService roleService;
private final AdminManagementQueryRepository queryRepository;
public List<AdminFind.Response> findAll() {
@ -32,25 +40,38 @@ public class AdminManagementWebService {
}
public AdminCreate.Response create(AdminCreate.Request request) {
AdminCreateResult adminCreateResult = adminService.create(
Optional<Role> findRole = roleService.find(request.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Role Not Found");
}
Role role = findRole.get();
Admin savedAdmin = adminService.create(
AdminCreateCommand.builder()
.loginId(request.getLoginId())
.password(passwordEncoder.encode(request.getPassword()))
.email(request.getEmail())
.name(request.getName())
.adminRole(AdminRole.of(role))
.build()
);
return AdminCreate.Response.success(adminCreateResult.getId());
return AdminCreate.Response.success(savedAdmin.getId());
}
public AdminUpdate.Response update(AdminUpdate.Request request) {
Optional<Role> findRole = roleService.find(request.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Role Not Found");
}
Role role = findRole.get();
adminService.update(
AdminUpdateCommand.builder()
.id(request.getId())
.roleId(request.getRoleId())
.email(request.getEmail())
.name(request.getName())
.adminRole(AdminRole.of(role))
.build()
);

View File

@ -2,6 +2,7 @@ package com.bpgroup.poc.admin.web.main.admin.management.reqres;
import com.bpgroup.poc.admin.web.common.CommonResponse;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
@ -19,8 +20,8 @@ public class AdminCreate {
private String email;
@NotBlank
private String name;
@NotBlank
private String roleId;
@NotNull
private Long roleId;
}
@Getter

View File

@ -1,12 +1,14 @@
package com.bpgroup.poc.admin.web.main.admin.menu;
import com.bpgroup.poc.admin.domain.base.role.service.*;
import com.bpgroup.poc.admin.domain.base.menu.service.*;
import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@RequiredArgsConstructor
@Transactional
public class MenuWebService {
private final MenuService menuService;

View File

@ -1,5 +1,8 @@
package com.bpgroup.poc.admin.web.main.admin.role;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import com.bpgroup.poc.admin.domain.base.menu.service.MenuService;
import com.bpgroup.poc.admin.domain.base.role.entity.Role;
import com.bpgroup.poc.admin.domain.base.role.service.*;
import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleAddMenu;
import com.bpgroup.poc.admin.web.main.admin.role.reqres.RoleCreate;
@ -9,15 +12,19 @@ import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
@Transactional
public class RoleWebService {
private final RoleService roleService;
private final MenuService menuService;
public RoleCreate.Response create(RoleCreate.Request request) {
RoleCreateResult createResult = roleService.create(
@ -47,11 +54,24 @@ public class RoleWebService {
public void putMenu(@NotNull @Valid RoleAddMenu.Request request) {
roleService.deleteRoleMenu(request.getRoleId());
Set<RoleAddMenuCommand> commands = request.getMenuIds().stream()
.map(menuId -> RoleAddMenuCommand.builder()
.roleId(request.getRoleId())
.menuId(menuId)
.build()
Optional<Role> findRole = roleService.find(request.getRoleId());
if (findRole.isEmpty()) {
throw new IllegalArgumentException("Role Not Found");
}
Role role = findRole.get();
Set<RoleAddMenuCommand> commands = request.getMenus().stream()
.map(menuId -> {
Optional<Menu> findMenu = menuService.find(menuId);
if (findMenu.isEmpty()) {
throw new IllegalArgumentException("Menu Not Found");
}
Menu menu = findMenu.get();
return RoleAddMenuCommand.builder()
.role(role)
.menu(menu)
.build();
}
)
.collect(Collectors.toSet());

View File

@ -19,7 +19,7 @@ public class RoleAddMenu {
private Long roleId;
@NotNull
@Size(min = 1)
private Set<Long> menuIds = new HashSet<>();
private Set<Long> menus = new HashSet<>();
}

View File

@ -43,21 +43,21 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
flushAndClear();
// when
AdminCreateResult createResult = service.create(
Admin savedAdmin = service.create(
AdminCreateCommand.builder()
.loginId("test")
.password("test")
.email("test")
.name("test")
.roleId(role.getId())
.adminRole(AdminRole.of(role))
.build()
);
flushAndClear();
// then
assertThat(createResult.getId()).isNotNull();
assertThat(savedAdmin.getId()).isNotNull();
Admin findAdmin = adminRepository.findById(createResult.getId()).orElseThrow();
Admin findAdmin = adminRepository.findById(savedAdmin.getId()).orElseThrow();
assertThat(findAdmin.getAdminRole().getRole().getName()).isEqualTo("test");
}
@ -86,7 +86,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
.password("test2")
.email("test2")
.name("test2")
.roleId(updateRole.getId())
.adminRole(AdminRole.of(updateRole))
.build()
);
flushAndClear();
@ -148,44 +148,40 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
@NotNull
private Admin createAdmin(Role role) {
Admin admin = Admin.builder()
.loginId("test2")
.password("test2")
.email("test2")
.name("test2")
.build();
admin.setAdminRole(
AdminRole.builder()
.role(role)
return adminRepository.save(
Admin.builder()
.loginId("test")
.password("test")
.email("test")
.name("test")
.adminRole(AdminRole.of(role))
.build()
);
return adminRepository.save(admin);
}
@Test
@DisplayName("AdminService method 호출 유효성 검사 테스트")
void validationTest() {
// create
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId(null).password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("").password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password(null).email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email(null).name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name(null).roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("name").roleId(null).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId(null).password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("").password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password(null).email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email(null).name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name(null).adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.create(AdminCreateCommand.builder().loginId("loginId").password("password").email("email").name("name").adminRole(null).build())).isInstanceOf(ConstraintViolationException.class);
// update
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(null).password("password").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password(null).email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("").email("email").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email(null).name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("").name("name").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name(null).roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("").roleId(1L).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("name").roleId(null).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(null).password("password").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password(null).email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("").email("email").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email(null).name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("").name("name").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name(null).adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("").adminRole(AdminRole.of(new Role())).build())).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> service.update(AdminUpdateCommand.builder().id(1L).password("password").email("email").name("name").adminRole(null).build())).isInstanceOf(ConstraintViolationException.class);
// delete
assertThatThrownBy(() -> service.delete(null)).isInstanceOf(ConstraintViolationException.class);

View File

@ -1,10 +1,9 @@
package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
import com.bpgroup.poc.admin.domain.base.role.service.*;
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 jakarta.validation.ConstraintViolationException;
import org.assertj.core.api.Assertions;
@ -134,7 +133,7 @@ class MenuServiceTest extends MariaDBTestEnv {
.name("name")
.sortOrder(1)
.build();
menu.setMenuGroup(saveMenuGroup);
menu.addMenuGroup(saveMenuGroup);
Menu saveMenu = menuRepository.save(menu);
flushAndClear();
@ -168,7 +167,7 @@ class MenuServiceTest extends MariaDBTestEnv {
.name("name")
.sortOrder(1)
.build();
menu.setMenuGroup(saveMenuGroup);
menu.addMenuGroup(saveMenuGroup);
Menu saveMenu = menuRepository.save(menu);
flushAndClear();

View File

@ -4,11 +4,10 @@ import com.bpgroup.poc.admin.domain.base.role.entity.Role;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenu;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleMenuRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.RoleRepository;
import com.bpgroup.poc.admin.domain.base.role.service.*;
import com.bpgroup.poc.admin.domain.base.role.entity.Menu;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroup;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuGroupRepository;
import com.bpgroup.poc.admin.domain.base.role.entity.MenuRepository;
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 jakarta.validation.ConstraintViolationException;
import org.junit.jupiter.api.BeforeEach;
@ -120,12 +119,12 @@ class RoleServiceTest extends MariaDBTestEnv {
roleService.addRoleMenu(
Set.of(
RoleAddMenuCommand.builder()
.roleId(saveRole.getId())
.menuId(menu1.getId())
.role(saveRole)
.menu(menu1)
.build(),
RoleAddMenuCommand.builder()
.roleId(saveRole.getId())
.menuId(menu2.getId())
.role(saveRole)
.menu(menu2)
.build()
)
);
@ -233,7 +232,7 @@ class RoleServiceTest extends MariaDBTestEnv {
.name("TEST")
.sortOrder(1)
.build();
menu.setMenuGroup(menuGroup);
menu.addMenuGroup(menuGroup);
return menuRepository.save(menu);
}
@ -253,8 +252,8 @@ class RoleServiceTest extends MariaDBTestEnv {
assertThatThrownBy(() -> roleService.delete(null)).isInstanceOf(ConstraintViolationException.class);
// add Role Menu
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().roleId(null).menuId(null).build()))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().roleId(1L).menuId(null).build()))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(null).menu(new Menu()).build()))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(new Role()).menu(null).build()))).isInstanceOf(ConstraintViolationException.class);
// delete Role Menu
assertThatThrownBy(() -> roleService.deleteRoleMenu(null)).isInstanceOf(ConstraintViolationException.class);