admin: menu 리팩토링

This commit is contained in:
geonhos 2024-05-21 11:26:56 +09:00
parent 11b12faed7
commit a2224fcdbe
13 changed files with 205 additions and 245 deletions

View File

@ -2,12 +2,14 @@ package com.bpgroup.poc.admin.domain.base.menu.entity;
import com.bpgroup.poc.admin.domain.base.BaseEntity; import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter @Getter
@Entity @Entity
@Table(name = "menu") @Table(name = "menu")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Menu extends BaseEntity { public class Menu extends BaseEntity {
@Id @Id
@ -27,20 +29,26 @@ public class Menu extends BaseEntity {
@JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) @JoinColumn(name = "menu_group_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private MenuGroup menuGroup; private MenuGroup menuGroup;
private Menu(String uri, String name, Integer sortOrder, MenuGroup menuGroup) {
this.uri = uri;
this.name = name;
this.sortOrder = sortOrder;
this.menuGroup = menuGroup;
}
public static Menu createOf(String uri, String name, Integer sortOrder) {
return new Menu(uri, name, sortOrder, null);
}
public static Menu updateOf(String uri, String name, Integer sortOrder) {
return new Menu(uri, name, sortOrder, null);
}
public void addMenuGroup(MenuGroup menuGroup) { public void addMenuGroup(MenuGroup menuGroup) {
this.menuGroup = menuGroup; this.menuGroup = menuGroup;
menuGroup.getMenus().add(this); menuGroup.getMenus().add(this);
} }
@Builder
public static Menu of(String uri, String name, Integer sortOrder) {
Menu menu = new Menu();
menu.uri = uri;
menu.name = name;
menu.sortOrder = sortOrder;
return menu;
}
public void update(Menu entity) { public void update(Menu entity) {
this.uri = entity.uri; this.uri = entity.uri;
this.name = entity.name; this.name = entity.name;

View File

@ -2,8 +2,9 @@ package com.bpgroup.poc.admin.domain.base.menu.entity;
import com.bpgroup.poc.admin.domain.base.BaseEntity; import com.bpgroup.poc.admin.domain.base.BaseEntity;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -11,6 +12,7 @@ import java.util.List;
@Getter @Getter
@Entity @Entity
@Table(name = "menu_group") @Table(name = "menu_group")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MenuGroup extends BaseEntity { public class MenuGroup extends BaseEntity {
@Id @Id
@ -29,13 +31,19 @@ public class MenuGroup extends BaseEntity {
@OneToMany(mappedBy = "menuGroup", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true) @OneToMany(mappedBy = "menuGroup", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<Menu> menus = new ArrayList<>(); private List<Menu> menus = new ArrayList<>();
@Builder private MenuGroup(String uri, String name, Integer sortOrder, List<Menu> menus) {
public static MenuGroup of(String uri, String name, Integer sortOrder) { this.uri = uri;
MenuGroup menuGroup = new MenuGroup(); this.name = name;
menuGroup.uri = uri; this.sortOrder = sortOrder;
menuGroup.name = name; this.menus = menus;
menuGroup.sortOrder = sortOrder; }
return menuGroup;
public static MenuGroup createOf(String uri, String name, Integer sortOrder) {
return new MenuGroup(uri, name, sortOrder, new ArrayList<>());
}
public static MenuGroup updateOf(String uri, String name, Integer sortOrder) {
return new MenuGroup(uri, name, sortOrder, new ArrayList<>());
} }
public void update(MenuGroup entity) { public void update(MenuGroup entity) {

View File

@ -3,40 +3,27 @@ package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu; import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.RequiredArgsConstructor;
@Getter @Getter
@ToString @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class MenuCreateCommand { public class MenuCreateCommand {
@NotNull @NotNull
private Long menuGroupId; private final Long menuGroupId;
@NotBlank @NotBlank
private String uri; private final String uri;
@NotBlank @NotBlank
private String name; private final String name;
@NotNull @NotNull
private Integer sortOrder; private final Integer sortOrder;
@Builder
public static MenuCreateCommand of(Long menuGroupId, String uri, String name, Integer sortOrder) { public static MenuCreateCommand of(Long menuGroupId, String uri, String name, Integer sortOrder) {
MenuCreateCommand command = new MenuCreateCommand(); return new MenuCreateCommand(menuGroupId, uri, name, sortOrder);
command.menuGroupId = menuGroupId;
command.uri = uri;
command.name = name;
command.sortOrder = sortOrder;
return command;
} }
public Menu toEntity() { public Menu toEntity() {
return Menu.builder() return Menu.createOf(uri, name, sortOrder);
.uri(uri)
.name(name)
.sortOrder(sortOrder)
.build();
} }
} }

View File

@ -3,34 +3,29 @@ package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup; import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.RequiredArgsConstructor;
@Getter @Getter
@ToString @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class MenuGroupCreateCommand { public class MenuGroupCreateCommand {
@NotBlank @NotBlank
private String uri; private final String uri;
@NotBlank @NotBlank
private String name; private final String name;
@NotNull @NotNull
private Integer sortOrder; private final Integer sortOrder;
@Builder
public static MenuGroupCreateCommand of(String uri, String name, Integer sortOrder) { public static MenuGroupCreateCommand of(String uri, String name, Integer sortOrder) {
MenuGroupCreateCommand command = new MenuGroupCreateCommand(); return new MenuGroupCreateCommand(uri, name, sortOrder);
command.uri = uri;
command.name = name;
command.sortOrder = sortOrder;
return command;
} }
public MenuGroup toEntity() { public MenuGroup toEntity() {
return MenuGroup.builder() return MenuGroup.createOf(
.uri(uri) uri,
.name(name) name,
.sortOrder(sortOrder) sortOrder
.build(); );
} }
} }

View File

@ -3,37 +3,31 @@ package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup; import com.bpgroup.poc.admin.domain.base.menu.entity.MenuGroup;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.RequiredArgsConstructor;
@Getter @Getter
@ToString @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class MenuGroupUpdateCommand { public class MenuGroupUpdateCommand {
@NotNull @NotNull
private Long id; private final Long id;
@NotBlank @NotBlank
private String uri; private final String uri;
@NotBlank @NotBlank
private String name; private final String name;
@NotNull @NotNull
private Integer sortOrder; private final Integer sortOrder;
@Builder
public static MenuGroupUpdateCommand of(Long id, String uri, String name, Integer sortOrder) { public static MenuGroupUpdateCommand of(Long id, String uri, String name, Integer sortOrder) {
MenuGroupUpdateCommand command = new MenuGroupUpdateCommand(); return new MenuGroupUpdateCommand(id, uri, name, sortOrder);
command.id = id;
command.uri = uri;
command.name = name;
command.sortOrder = sortOrder;
return command;
} }
public MenuGroup toEntity() { public MenuGroup toEntity() {
return MenuGroup.builder() return MenuGroup.updateOf(
.uri(uri) uri,
.name(name) name,
.sortOrder(sortOrder) sortOrder
.build(); );
} }
} }

View File

@ -31,55 +31,32 @@ public class MenuService {
public void updateMenuGroup( public void updateMenuGroup(
@NotNull @Valid MenuGroupUpdateCommand command @NotNull @Valid MenuGroupUpdateCommand command
) { ) {
Optional<MenuGroup> findMenuGroup = menuGroupRepository.findById(command.getId()); MenuGroup findMenuGroup = menuGroupRepository.findById(command.getId()).orElseThrow(() -> new IllegalArgumentException("MenuGroup not found"));
if (findMenuGroup.isEmpty()) { findMenuGroup.update(command.toEntity());
throw new IllegalArgumentException("MenuGroup not found");
}
findMenuGroup.get().update(command.toEntity());
} }
public void deleteMenuGroup(@NotNull Long id) { public void deleteMenuGroup(@NotNull Long id) {
Optional<MenuGroup> findMenuGroup = menuGroupRepository.findById(id);
if (findMenuGroup.isEmpty()) {
throw new IllegalArgumentException("MenuGroup not found");
}
menuGroupRepository.deleteById(id); menuGroupRepository.deleteById(id);
} }
public void createMenu( public void createMenu(
@NotNull @Valid MenuCreateCommand command @NotNull @Valid MenuCreateCommand command
) { ) {
Optional<MenuGroup> findMenuGroup = menuGroupRepository.findById(command.getMenuGroupId()); MenuGroup findMenuGroup = menuGroupRepository.findById(command.getMenuGroupId()).orElseThrow(() -> new IllegalArgumentException("MenuGroup not found"));
if (findMenuGroup.isEmpty()) {
throw new IllegalArgumentException("MenuGroup not found");
}
MenuGroup menuGroup = findMenuGroup.get();
Menu menu = command.toEntity(); Menu menu = command.toEntity();
menu.addMenuGroup(menuGroup); menu.addMenuGroup(findMenuGroup);
menuRepository.save(menu); menuRepository.save(menu);
} }
public void updateMenu( public void updateMenu(
@NotNull @Valid MenuUpdateCommand build @NotNull @Valid MenuUpdateCommand command
) { ) {
Optional<Menu> findMenu = menuRepository.findById(build.getId()); Menu findMenu = menuRepository.findById(command.getId()).orElseThrow(() -> new IllegalArgumentException("Menu not found"));
if (findMenu.isEmpty()) { findMenu.update(command.toEntity());
throw new IllegalArgumentException("Menu not found");
}
findMenu.get().update(build.toEntity());
} }
public void deleteMenu(@NotNull Long id) { public void deleteMenu(@NotNull Long id) {
Optional<Menu> findMenu = menuRepository.findById(id);
if (findMenu.isEmpty()) {
throw new IllegalArgumentException("Menu not found");
}
menuRepository.deleteById(id); menuRepository.deleteById(id);
} }

View File

@ -3,38 +3,28 @@ package com.bpgroup.poc.admin.domain.base.menu.service;
import com.bpgroup.poc.admin.domain.base.menu.entity.Menu; import com.bpgroup.poc.admin.domain.base.menu.entity.Menu;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.Builder; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.ToString; import lombok.RequiredArgsConstructor;
@Getter @Getter
@ToString @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class MenuUpdateCommand { public class MenuUpdateCommand {
@NotNull @NotNull
private Long id; private final Long id;
@NotBlank @NotBlank
private String uri; private final String uri;
@NotBlank @NotBlank
private String name; private final String name;
@NotNull @NotNull
private Integer sortOrder; private final Integer sortOrder;
@Builder
public static MenuUpdateCommand of(Long id, String uri, String name, Integer sortOrder) { public static MenuUpdateCommand of(Long id, String uri, String name, Integer sortOrder) {
MenuUpdateCommand command = new MenuUpdateCommand(); return new MenuUpdateCommand(id, uri, name, sortOrder);
command.id = id;
command.uri = uri;
command.name = name;
command.sortOrder = sortOrder;
return command;
} }
public Menu toEntity() { public Menu toEntity() {
return Menu.builder() return Menu.updateOf(uri, name, sortOrder);
.uri(uri)
.name(name)
.sortOrder(sortOrder)
.build();
} }

View File

@ -9,17 +9,17 @@ import org.springframework.transaction.annotation.Transactional;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Transactional @Transactional
public class MenuWebService { public class MenuAppService {
private final MenuService menuService; private final MenuService menuService;
public MenuGroupCreate.Response createMenuGroup(MenuGroupCreate.Request request) { public MenuGroupCreate.Response createMenuGroup(MenuGroupCreate.Request request) {
menuService.createMenuGroup( menuService.createMenuGroup(
MenuGroupCreateCommand.builder() MenuGroupCreateCommand.of(
.name(request.getName()) request.getUri(),
.uri(request.getUri()) request.getName(),
.sortOrder(request.getSortOrder()) request.getSortOrder()
.build() )
); );
return MenuGroupCreate.Response.success(); return MenuGroupCreate.Response.success();
@ -27,12 +27,12 @@ public class MenuWebService {
public MenuGroupUpdate.Response updateMenuGroup(MenuGroupUpdate.Request request) { public MenuGroupUpdate.Response updateMenuGroup(MenuGroupUpdate.Request request) {
menuService.updateMenuGroup( menuService.updateMenuGroup(
MenuGroupUpdateCommand.builder() MenuGroupUpdateCommand.of(
.id(request.getId()) request.getId(),
.name(request.getName()) request.getName(),
.uri(request.getUri()) request.getUri(),
.sortOrder(request.getSortOrder()) request.getSortOrder()
.build() )
); );
return MenuGroupUpdate.Response.success(); return MenuGroupUpdate.Response.success();
@ -45,12 +45,12 @@ public class MenuWebService {
public MenuCreate.Response createMenu(MenuCreate.Request request) { public MenuCreate.Response createMenu(MenuCreate.Request request) {
menuService.createMenu( menuService.createMenu(
MenuCreateCommand.builder() MenuCreateCommand.of(
.menuGroupId(request.getMenuGroupId()) request.getMenuGroupId(),
.uri(request.getUri()) request.getUri(),
.name(request.getName()) request.getName(),
.sortOrder(request.getSortOrder()) request.getSortOrder()
.build() )
); );
return MenuCreate.Response.success(); return MenuCreate.Response.success();
@ -58,12 +58,12 @@ public class MenuWebService {
public MenuUpdate.Response updateMenu(MenuUpdate.Request request) { public MenuUpdate.Response updateMenu(MenuUpdate.Request request) {
menuService.updateMenu( menuService.updateMenu(
MenuUpdateCommand.builder() MenuUpdateCommand.of(
.id(request.getId()) request.getId(),
.uri(request.getUri()) request.getUri(),
.name(request.getName()) request.getName(),
.sortOrder(request.getSortOrder()) request.getSortOrder()
.build() )
); );
return MenuUpdate.Response.success(); return MenuUpdate.Response.success();

View File

@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/admin") @RequestMapping("/admin")
public class MenuRestController { public class MenuRestController {
private final MenuWebService menuWebService; private final MenuAppService menuAppService;
@PostMapping("/menu-group/create") @PostMapping("/menu-group/create")
@ -23,7 +23,7 @@ public class MenuRestController {
@RequestBody @Valid MenuGroupCreate.Request request, @RequestBody @Valid MenuGroupCreate.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuGroupCreate.Response response = menuWebService.createMenuGroup(request); MenuGroupCreate.Response response = menuAppService.createMenuGroup(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -32,7 +32,7 @@ public class MenuRestController {
@RequestBody @Valid MenuGroupUpdate.Request request, @RequestBody @Valid MenuGroupUpdate.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuGroupUpdate.Response response = menuWebService.updateMenuGroup(request); MenuGroupUpdate.Response response = menuAppService.updateMenuGroup(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -41,7 +41,7 @@ public class MenuRestController {
@RequestBody @Valid MenuGroupDelete.Request request, @RequestBody @Valid MenuGroupDelete.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuGroupDelete.Response response = menuWebService.deleteMenuGroup(request); MenuGroupDelete.Response response = menuAppService.deleteMenuGroup(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -50,7 +50,7 @@ public class MenuRestController {
@RequestBody @Valid MenuCreate.Request request, @RequestBody @Valid MenuCreate.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuCreate.Response response = menuWebService.createMenu(request); MenuCreate.Response response = menuAppService.createMenu(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -59,7 +59,7 @@ public class MenuRestController {
@RequestBody @Valid MenuUpdate.Request request, @RequestBody @Valid MenuUpdate.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuUpdate.Response response = menuWebService.updateMenu(request); MenuUpdate.Response response = menuAppService.updateMenu(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }
@ -68,7 +68,7 @@ public class MenuRestController {
@RequestBody @Valid MenuDelete.Request request, @RequestBody @Valid MenuDelete.Request request,
BindingResult bindingResult BindingResult bindingResult
) { ) {
MenuDelete.Response response = menuWebService.deleteMenu(request); MenuDelete.Response response = menuAppService.deleteMenu(request);
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} }

View File

@ -58,12 +58,12 @@ class MenuServiceTest extends MariaDBTestEnv {
// when // when
menuService.updateMenuGroup( menuService.updateMenuGroup(
MenuGroupUpdateCommand.builder() MenuGroupUpdateCommand.of(
.id(menuGroupRepository.findAll().get(0).getId()) menuGroupRepository.findAll().get(0).getId(),
.uri("uri2") "uri2",
.name("name2") "name2",
.sortOrder(1) 1
.build() )
); );
flushAndClear(); flushAndClear();
@ -91,11 +91,11 @@ class MenuServiceTest extends MariaDBTestEnv {
@NotNull @NotNull
private MenuGroup createMenuGroup() { private MenuGroup createMenuGroup() {
return menuGroupRepository.save( return menuGroupRepository.save(
MenuGroup.builder() MenuGroup.createOf(
.uri("uri") "uri",
.name("name") "name",
.sortOrder(1) 1
.build() )
); );
} }
@ -103,17 +103,17 @@ class MenuServiceTest extends MariaDBTestEnv {
@DisplayName("Menu 생성 테스트") @DisplayName("Menu 생성 테스트")
void createGroupTest() { void createGroupTest() {
// given // given
MenuGroup saveMenuGroup = createMenuGroup(); MenuGroup savedMenuGroup = createMenuGroup();
flushAndClear(); flushAndClear();
// when // when
menuService.createMenu( menuService.createMenu(
MenuCreateCommand.builder() MenuCreateCommand.of(
.menuGroupId(saveMenuGroup.getId()) savedMenuGroup.getId(),
.uri("uri") "uri",
.name("name") "name",
.sortOrder(1) 1
.build() )
); );
flushAndClear(); flushAndClear();
@ -128,11 +128,12 @@ class MenuServiceTest extends MariaDBTestEnv {
MenuGroup saveMenuGroup = createMenuGroup(); MenuGroup saveMenuGroup = createMenuGroup();
flushAndClear(); flushAndClear();
Menu menu = Menu.builder() Menu menu = Menu.updateOf(
.uri("uri") "uri",
.name("name") "name",
.sortOrder(1) 1
.build(); );
menu.addMenuGroup(saveMenuGroup); menu.addMenuGroup(saveMenuGroup);
Menu saveMenu = menuRepository.save(menu); Menu saveMenu = menuRepository.save(menu);
@ -140,12 +141,12 @@ class MenuServiceTest extends MariaDBTestEnv {
// when // when
menuService.updateMenu( menuService.updateMenu(
MenuUpdateCommand.builder() MenuUpdateCommand.of(
.id(saveMenu.getId()) saveMenu.getId(),
.uri("uri2") "uri2",
.name("name2") "name2",
.sortOrder(1) 1
.build() )
); );
flushAndClear(); flushAndClear();
@ -162,11 +163,11 @@ class MenuServiceTest extends MariaDBTestEnv {
MenuGroup saveMenuGroup = createMenuGroup(); MenuGroup saveMenuGroup = createMenuGroup();
flushAndClear(); flushAndClear();
Menu menu = Menu.builder() Menu menu = Menu.createOf(
.uri("uri") "uri",
.name("name") "name",
.sortOrder(1) 1
.build(); );
menu.addMenuGroup(saveMenuGroup); menu.addMenuGroup(saveMenuGroup);
Menu saveMenu = menuRepository.save(menu); Menu saveMenu = menuRepository.save(menu);
@ -188,12 +189,12 @@ class MenuServiceTest extends MariaDBTestEnv {
flushAndClear(); flushAndClear();
menuService.createMenu( menuService.createMenu(
MenuCreateCommand.builder() MenuCreateCommand.of(
.menuGroupId(saveMenuGroup.getId()) saveMenuGroup.getId(),
.uri("uri") "uri",
.name("name") "name",
.sortOrder(1) 1
.build() )
); );
flushAndClear(); flushAndClear();
@ -210,19 +211,19 @@ class MenuServiceTest extends MariaDBTestEnv {
@DisplayName("MenuService method 호출 유효성 검사 테스트") @DisplayName("MenuService method 호출 유효성 검사 테스트")
void validationTest() { void validationTest() {
// menuGroup create // menuGroup create
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.of("", "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.of(null, "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.of("uri", "", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.of("uri", null, 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.of("uri", "name", null))).isInstanceOf(ConstraintViolationException.class);
// menuGroup update // menuGroup update
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(null).uri("uri").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(null, "uri", "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(1L, "", "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(1L, null, "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(1L, "uri", "", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(1L, "uri", null, 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.of(1L, "uri", "name", null))).isInstanceOf(ConstraintViolationException.class);
// menuGroup delete // menuGroup delete
assertThatThrownBy(() -> menuService.deleteMenu(null)).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.deleteMenu(null)).isInstanceOf(ConstraintViolationException.class);
@ -236,12 +237,13 @@ class MenuServiceTest extends MariaDBTestEnv {
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", "name", null))).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", "name", null))).isInstanceOf(ConstraintViolationException.class);
// menu update // menu update
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(null).uri("uri").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(null, "uri", "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(1L, "", "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(1L, null, "name", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(1L, "uri", "", 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(1L, "uri", null, 1))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.of(1L, "uri", "name", null))).isInstanceOf(ConstraintViolationException.class);
// menu delete // menu delete
assertThatThrownBy(() -> menuService.deleteMenu(null)).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> menuService.deleteMenu(null)).isInstanceOf(ConstraintViolationException.class);

View File

@ -225,20 +225,20 @@ class RoleServiceTest extends MariaDBTestEnv {
private MenuGroup createMenuGroup() { private MenuGroup createMenuGroup() {
return menuGroupRepository.save( return menuGroupRepository.save(
MenuGroup.builder() MenuGroup.createOf(
.uri("TEST") "TEST",
.name("TEST") "TEST",
.sortOrder(1) 1
.build() )
); );
} }
private Menu createMenu(MenuGroup menuGroup) { private Menu createMenu(MenuGroup menuGroup) {
Menu menu = Menu.builder() Menu menu = Menu.createOf(
.uri("TEST") "TEST",
.name("TEST") "TEST",
.sortOrder(1) 1
.build(); );
menu.addMenuGroup(menuGroup); menu.addMenuGroup(menuGroup);
return menuRepository.save(menu); return menuRepository.save(menu);
} }
@ -259,12 +259,11 @@ class RoleServiceTest extends MariaDBTestEnv {
assertThatThrownBy(() -> roleService.delete(null)).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> roleService.delete(null)).isInstanceOf(ConstraintViolationException.class);
// add Role Menu // add Role Menu
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(null).menu(new Menu()).build()))).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(null).menu(Menu.createOf("uri", "name", 1)).build()))).isInstanceOf(ConstraintViolationException.class);
assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(new Role()).menu(null).build()))).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> roleService.addRoleMenu(Set.of(RoleAddMenuCommand.builder().role(new Role()).menu(null).build()))).isInstanceOf(ConstraintViolationException.class);
// delete Role Menu // delete Role Menu
assertThatThrownBy(() -> roleService.deleteRoleMenu(null)).isInstanceOf(ConstraintViolationException.class); assertThatThrownBy(() -> roleService.deleteRoleMenu(null)).isInstanceOf(ConstraintViolationException.class);
} }
} }

View File

@ -5,7 +5,7 @@ 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.MenuGroupRepository;
import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository; import com.bpgroup.poc.admin.domain.base.menu.entity.MenuRepository;
import com.bpgroup.poc.admin.env.MariaDBTestEnv; 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.MenuAppService;
import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*; import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@ -17,10 +17,10 @@ import static org.assertj.core.api.Assertions.assertThat;
@DisplayName("Menu Web Service 테스트") @DisplayName("Menu Web Service 테스트")
@Transactional @Transactional
public class MenuWebServiceTest extends MariaDBTestEnv { public class MenuAppServiceTest extends MariaDBTestEnv {
@Autowired @Autowired
private MenuWebService menuWebService; private MenuAppService menuAppService;
@Autowired @Autowired
private MenuGroupRepository menuGroupRepository; private MenuGroupRepository menuGroupRepository;
@ -38,7 +38,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
request.setSortOrder(1); request.setSortOrder(1);
// when // when
MenuGroupCreate.Response response = menuWebService.createMenuGroup(request); MenuGroupCreate.Response response = menuAppService.createMenuGroup(request);
// then // then
assertThat(response.getResultCode()).isEqualTo("0000"); assertThat(response.getResultCode()).isEqualTo("0000");
@ -58,7 +58,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
updateRequest.setSortOrder(1); updateRequest.setSortOrder(1);
// when // when
MenuGroupUpdate.Response updateResponse = menuWebService.updateMenuGroup(updateRequest); MenuGroupUpdate.Response updateResponse = menuAppService.updateMenuGroup(updateRequest);
// then // then
assertThat(updateResponse.getResultCode()).isEqualTo("0000"); assertThat(updateResponse.getResultCode()).isEqualTo("0000");
@ -75,7 +75,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
deleteRequest.setId(savedMenuGroup.getId()); deleteRequest.setId(savedMenuGroup.getId());
// when // when
MenuGroupDelete.Response deleteResponse = menuWebService.deleteMenuGroup(deleteRequest); MenuGroupDelete.Response deleteResponse = menuAppService.deleteMenuGroup(deleteRequest);
// then // then
assertThat(deleteResponse.getResultCode()).isEqualTo("0000"); assertThat(deleteResponse.getResultCode()).isEqualTo("0000");
@ -95,7 +95,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
createRequest.setSortOrder(1); createRequest.setSortOrder(1);
// when // when
MenuCreate.Response createResponse = menuWebService.createMenu(createRequest); MenuCreate.Response createResponse = menuAppService.createMenu(createRequest);
// then // then
assertThat(createResponse.getResultCode()).isEqualTo("0000"); assertThat(createResponse.getResultCode()).isEqualTo("0000");
@ -117,7 +117,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
updateRequest.setSortOrder(1); updateRequest.setSortOrder(1);
// when // when
MenuUpdate.Response updateResponse = menuWebService.updateMenu(updateRequest); MenuUpdate.Response updateResponse = menuAppService.updateMenu(updateRequest);
// then // then
assertThat(updateResponse.getResultCode()).isEqualTo("0000"); assertThat(updateResponse.getResultCode()).isEqualTo("0000");
@ -136,7 +136,7 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
deleteRequest.setId(savedMenu.getId()); deleteRequest.setId(savedMenu.getId());
// when // when
MenuDelete.Response deleteResponse = menuWebService.deleteMenu(deleteRequest); MenuDelete.Response deleteResponse = menuAppService.deleteMenu(deleteRequest);
// then // then
assertThat(deleteResponse.getResultCode()).isEqualTo("0000"); assertThat(deleteResponse.getResultCode()).isEqualTo("0000");
@ -145,22 +145,22 @@ public class MenuWebServiceTest extends MariaDBTestEnv {
@NotNull @NotNull
private Menu getSavedMenu() { private Menu getSavedMenu() {
return menuRepository.save( return menuRepository.save(
Menu.builder() Menu.createOf(
.uri("test") "test",
.name("test") "test",
.sortOrder(1) 1
.build() )
); );
} }
@NotNull @NotNull
private MenuGroup getSavedMenuGroup() { private MenuGroup getSavedMenuGroup() {
return menuGroupRepository.save( return menuGroupRepository.save(
MenuGroup.builder() MenuGroup.createOf(
.name("test") "test",
.uri("test") "test",
.sortOrder(1) 1
.build() )
); );
} }

View File

@ -112,7 +112,7 @@ class RoleWebServiceTest extends MariaDBTestEnv {
private Menu getSavedMenu() { private Menu getSavedMenu() {
return menuRepository.save( return menuRepository.save(
Menu.of( Menu.createOf(
"test", "test",
"test", "test",
1 1