admin: refactoring
This commit is contained in:
parent
ff4bb3e41f
commit
354cc7e497
|
|
@ -26,7 +26,7 @@ public class AdministratorManagementQueryRepository {
|
|||
.fetch();
|
||||
}
|
||||
|
||||
public AdministratorFind.Response findByLoginId(String loginId) {
|
||||
public AdministratorFind.Response find(String loginId) {
|
||||
return queryFactory.select(Projections.fields(AdministratorFind.Response.class,
|
||||
administrator.id,
|
||||
administrator.loginId,
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorCreat
|
|||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorFind;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorUpdate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorCreateResult;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorManagementService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorUpdateCommand;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -20,32 +24,37 @@ import java.util.List;
|
|||
public class AdministratorManagementRestController {
|
||||
|
||||
private final PasswordEncoder passwordEncoder;
|
||||
private final AdministratorManagementService administratorManagementService;
|
||||
|
||||
private final AdministratorManagementService service;
|
||||
private final AdministratorManagementQueryRepository queryRepository;
|
||||
|
||||
/**
|
||||
* 전체 조회
|
||||
*
|
||||
* @return 응답
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<?> getAdministrators() {
|
||||
List<AdministratorFind.Response> response = administratorManagementService.findAll();
|
||||
List<AdministratorFind.Response> response = queryRepository.findAll();
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 조회
|
||||
*
|
||||
* @param loginId 관리자 ID
|
||||
* @return 응답
|
||||
*/
|
||||
@GetMapping("/{loginId}")
|
||||
public ResponseEntity<?> getAdministrator(@PathVariable @NotBlank String loginId) {
|
||||
AdministratorFind.Response response = administratorManagementService.find(loginId);
|
||||
AdministratorFind.Response response = queryRepository.find(loginId);
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 등록
|
||||
* @param request 요청
|
||||
*
|
||||
* @param request 요청
|
||||
* @param bindingResult Validation 결과
|
||||
* @return 응답
|
||||
*/
|
||||
|
|
@ -54,9 +63,15 @@ public class AdministratorManagementRestController {
|
|||
@RequestBody @Validated AdministratorCreate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
request.setPassword(passwordEncoder.encode(request.getPassword()));
|
||||
AdministratorCreate.Response response = administratorManagementService.create(request);
|
||||
return ResponseEntity.ok(response);
|
||||
AdministratorCreateResult result = service.create(
|
||||
AdministratorCreateCommand.builder()
|
||||
.loginId(request.getLoginId())
|
||||
.password(passwordEncoder.encode(request.getPassword()))
|
||||
.email(request.getEmail())
|
||||
.name(request.getName())
|
||||
.build()
|
||||
);
|
||||
return ResponseEntity.ok(AdministratorCreate.Response.success(result.getId()));
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
|
|
@ -64,14 +79,21 @@ public class AdministratorManagementRestController {
|
|||
@RequestBody @Validated AdministratorUpdate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
request.setPassword(passwordEncoder.encode(request.getPassword()));
|
||||
AdministratorUpdate.Response response = administratorManagementService.update(request);
|
||||
return ResponseEntity.ok(response);
|
||||
service.update(
|
||||
AdministratorUpdateCommand.builder()
|
||||
.password(passwordEncoder.encode(request.getPassword()))
|
||||
.name(request.getName())
|
||||
.email(request.getEmail())
|
||||
.build()
|
||||
);
|
||||
|
||||
return ResponseEntity.ok(AdministratorUpdate.Response.success());
|
||||
}
|
||||
|
||||
/**
|
||||
* 관리자 삭제
|
||||
* @param request 요청
|
||||
*
|
||||
* @param request 요청
|
||||
* @param bindingResult Validation 결과
|
||||
* @return 응답
|
||||
*/
|
||||
|
|
@ -80,8 +102,8 @@ public class AdministratorManagementRestController {
|
|||
@RequestBody @Validated AdministratorDelete.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
AdministratorDelete.Response response = administratorManagementService.delete(request);
|
||||
return ResponseEntity.ok(response);
|
||||
service.delete(request.getId());
|
||||
return ResponseEntity.ok(AdministratorDelete.Response.success());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,72 +0,0 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.management;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.command.AdministratorCreateCommand;
|
||||
import com.bpgroup.poc.admin.domain.admin.command.AdministratorUpdateCommand;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Administrator;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdministratorRepository;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorCreate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorFind;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorUpdate;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Transactional
|
||||
public class AdministratorManagementService {
|
||||
|
||||
private final AdministratorManagementQueryRepository queryRepository;
|
||||
private final AdministratorRepository repository;
|
||||
|
||||
public List<AdministratorFind.Response> findAll() {
|
||||
return queryRepository.findAll();
|
||||
}
|
||||
|
||||
public AdministratorFind.Response find(@NotBlank String loginId) {
|
||||
return queryRepository.findByLoginId(loginId);
|
||||
}
|
||||
|
||||
public AdministratorCreate.Response create(AdministratorCreate.Request request) {
|
||||
Administrator admin = repository.save(
|
||||
AdministratorCreateCommand.builder()
|
||||
.loginId(request.getLoginId())
|
||||
.password(request.getPassword())
|
||||
.email(request.getEmail())
|
||||
.name(request.getName())
|
||||
.build()
|
||||
.toEntity()
|
||||
);
|
||||
|
||||
return AdministratorCreate.Response.success(admin.getId());
|
||||
}
|
||||
|
||||
public AdministratorUpdate.Response update(AdministratorUpdate.Request request) {
|
||||
Optional<Administrator> findAdministrator = repository.findById(request.getId());
|
||||
if (findAdministrator.isEmpty()) {
|
||||
return AdministratorUpdate.Response.fail("ADMINISTRATOR_NOT_FOUND");
|
||||
}
|
||||
|
||||
Administrator administrator = findAdministrator.get();
|
||||
administrator.update(
|
||||
AdministratorUpdateCommand.of(
|
||||
request.getId(),
|
||||
request.getPassword(),
|
||||
request.getEmail(),
|
||||
request.getName()
|
||||
).toEntity()
|
||||
);
|
||||
|
||||
return AdministratorUpdate.Response.success();
|
||||
}
|
||||
|
||||
public AdministratorDelete.Response delete(AdministratorDelete.Request request) {
|
||||
repository.deleteById(request.getId());
|
||||
return AdministratorDelete.Response.success();
|
||||
}
|
||||
}
|
||||
|
|
@ -15,9 +15,6 @@ public class AdministratorUpdate {
|
|||
@NotNull
|
||||
private Long id;
|
||||
|
||||
@NotBlank
|
||||
private String username;
|
||||
|
||||
@NotBlank
|
||||
private String password;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.domain.admin.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.management.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Administrator;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.management.service;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
public class AdministratorCreateResult {
|
||||
private Long id;
|
||||
|
||||
@Builder
|
||||
public static AdministratorCreateResult of(Long id) {
|
||||
AdministratorCreateResult result = new AdministratorCreateResult();
|
||||
result.id = id;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.management.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Administrator;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdministratorRepository;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
@Transactional
|
||||
public class AdministratorManagementService {
|
||||
|
||||
private final AdministratorRepository repository;
|
||||
|
||||
public AdministratorCreateResult create(
|
||||
@NotNull @Valid AdministratorCreateCommand command
|
||||
) {
|
||||
Administrator admin = repository.save(command.toEntity());
|
||||
|
||||
return AdministratorCreateResult.builder()
|
||||
.id(admin.getId())
|
||||
.build();
|
||||
}
|
||||
|
||||
public void update(
|
||||
@NotNull @Valid AdministratorUpdateCommand command
|
||||
) {
|
||||
Optional<Administrator> findAdministrator = repository.findById(command.getId());
|
||||
if (findAdministrator.isEmpty()) {
|
||||
throw new IllegalArgumentException("Not found administrator");
|
||||
}
|
||||
|
||||
Administrator administrator = findAdministrator.get();
|
||||
administrator.update(command.toEntity());
|
||||
}
|
||||
|
||||
public void delete(@NotNull Long id) {
|
||||
repository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
package com.bpgroup.poc.admin.domain.admin.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.management.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Administrator;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
|
|
@ -22,6 +23,7 @@ public class AdministratorUpdateCommand {
|
|||
@NotBlank
|
||||
private String name;
|
||||
|
||||
@Builder
|
||||
public static AdministratorUpdateCommand of(Long id, String password, String email, String name) {
|
||||
AdministratorUpdateCommand command = new AdministratorUpdateCommand();
|
||||
command.id = id;
|
||||
|
|
@ -1,9 +1,6 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu;
|
||||
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.*;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.reqres.*;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Menu;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu;
|
||||
package com.bpgroup.poc.admin.web.main.admin.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Menu;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuGroup;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.MenuCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.MenuGroupCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.MenuGroupUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.MenuUpdateCommand;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.menu.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.menu.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Menu;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -3,6 +3,10 @@ package com.bpgroup.poc.admin.web.main.admin.role;
|
|||
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 com.bpgroup.poc.admin.web.main.admin.role.service.RoleCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleCreateResult;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleUpdateCommand;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
|
@ -20,7 +24,6 @@ public class RoleRestController {
|
|||
private final RoleService roleService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 권한 등록
|
||||
*/
|
||||
|
|
@ -29,8 +32,14 @@ public class RoleRestController {
|
|||
@RequestBody @Valid RoleCreate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
RoleCreate.Response response = roleService.create(request);
|
||||
return ResponseEntity.ok(response);
|
||||
RoleCreateResult result = roleService.create(
|
||||
RoleCreateCommand.builder()
|
||||
.name(request.getName())
|
||||
.description(request.getDescription())
|
||||
.build()
|
||||
);
|
||||
|
||||
return ResponseEntity.ok(RoleCreate.Response.success(result.getId()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -41,8 +50,15 @@ public class RoleRestController {
|
|||
@RequestBody @Valid RoleUpdate.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
RoleUpdate.Response response = roleService.update(request);
|
||||
return ResponseEntity.ok(response);
|
||||
roleService.update(
|
||||
RoleUpdateCommand.builder()
|
||||
.id(request.getId())
|
||||
.name(request.getName())
|
||||
.description(request.getDescription())
|
||||
.build()
|
||||
);
|
||||
|
||||
return ResponseEntity.ok(RoleUpdate.Response.success());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -53,8 +69,8 @@ public class RoleRestController {
|
|||
@RequestBody @Valid RoleDelete.Request request,
|
||||
BindingResult bindingResult
|
||||
) {
|
||||
RoleDelete.Response response = roleService.delete(request);
|
||||
return ResponseEntity.ok(response);
|
||||
roleService.delete(request.getId());
|
||||
return ResponseEntity.ok(RoleDelete.Response.success());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,66 +0,0 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.role;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.command.RoleCreateCommand;
|
||||
import com.bpgroup.poc.admin.domain.admin.command.RoleUpdateCommand;
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RoleService {
|
||||
|
||||
private final RoleRepository repository;
|
||||
private final RoleQueryRepository queryRepository;
|
||||
|
||||
/**
|
||||
* ROLE 생성
|
||||
*/
|
||||
public RoleCreate.Response create(RoleCreate.Request request) {
|
||||
Role role = repository.save(
|
||||
RoleCreateCommand.builder()
|
||||
.name(request.getName())
|
||||
.description(request.getDescription())
|
||||
.build()
|
||||
.toEntity()
|
||||
);
|
||||
|
||||
return RoleCreate.Response.success(role.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* ROLE 수정
|
||||
*/
|
||||
public RoleUpdate.Response update(RoleUpdate.Request request) {
|
||||
Optional<Role> role = repository.findById(request.getId());
|
||||
if (role.isEmpty()) {
|
||||
return RoleUpdate.Response.fail("ROLE_NOT_FOUND");
|
||||
}
|
||||
|
||||
Role findRole = role.get();
|
||||
Role updateRole = RoleUpdateCommand.builder()
|
||||
.name(request.getName())
|
||||
.description(request.getDescription())
|
||||
.build()
|
||||
.toEntity();
|
||||
|
||||
findRole.update(updateRole);
|
||||
|
||||
return RoleUpdate.Response.success();
|
||||
}
|
||||
|
||||
public RoleDelete.Response delete(RoleDelete.Request request) {
|
||||
try {
|
||||
repository.deleteById(request.getId());
|
||||
return RoleDelete.Response.success();
|
||||
} catch (Exception e) {
|
||||
return RoleDelete.Response.fail("Role Delete Fail");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.bpgroup.poc.admin.domain.admin.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.role.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Role;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.role.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.RoleQueryRepository;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
@Transactional
|
||||
public class RoleService {
|
||||
|
||||
private final RoleRepository repository;
|
||||
private final RoleQueryRepository queryRepository;
|
||||
|
||||
/**
|
||||
* ROLE 생성
|
||||
*/
|
||||
public RoleCreateResult create(
|
||||
@NotNull @Valid RoleCreateCommand command
|
||||
) {
|
||||
Role role = repository.save(command.toEntity());
|
||||
|
||||
return RoleCreateResult.builder()
|
||||
.id(role.getId())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* ROLE 수정
|
||||
*/
|
||||
public void update(
|
||||
@NotNull @Valid RoleUpdateCommand command
|
||||
) {
|
||||
Optional<Role> findRole = repository.findById(command.getId());
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
|
||||
Role role = findRole.get();
|
||||
role.update(command.toEntity());
|
||||
}
|
||||
|
||||
public void delete(@NotNull Long id) {
|
||||
Optional<Role> findRole = repository.findById(id);
|
||||
if (findRole.isEmpty()) {
|
||||
throw new IllegalArgumentException("Role Not Found");
|
||||
}
|
||||
|
||||
repository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
package com.bpgroup.poc.admin.domain.admin.command;
|
||||
package com.bpgroup.poc.admin.web.main.admin.role.service;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Role;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
|
@ -10,14 +11,16 @@ import lombok.ToString;
|
|||
@ToString
|
||||
public class RoleUpdateCommand {
|
||||
|
||||
@NotNull
|
||||
private Long id;
|
||||
@NotBlank
|
||||
private String name;
|
||||
|
||||
private String description;
|
||||
|
||||
@Builder
|
||||
public static RoleUpdateCommand of(String name, String description) {
|
||||
public static RoleUpdateCommand of(Long id, String name, String description) {
|
||||
RoleUpdateCommand command = new RoleUpdateCommand();
|
||||
command.id = id;
|
||||
command.name = name;
|
||||
command.description = description;
|
||||
return command;
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
package com.bpgroup.poc.admin.web.main.admin.administrator;
|
||||
|
||||
import com.bpgroup.poc.admin.domain.admin.command.AdministratorCreateCommand;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Administrator;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.AdministratorRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.AdministratorManagementQueryRepository;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.AdministratorManagementService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorCreate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorDelete;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.reqres.AdministratorUpdate;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorCreateResult;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorManagementService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.management.service.AdministratorUpdateCommand;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -16,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
@Transactional
|
||||
@DisplayName("AdministratorService 테스트")
|
||||
|
|
@ -27,9 +27,6 @@ public class AdministratorServiceTest extends MariaDBTestEnv {
|
|||
@Autowired
|
||||
private AdministratorRepository repository;
|
||||
|
||||
@Autowired
|
||||
private AdministratorManagementQueryRepository queryRepository;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
|
|
@ -40,46 +37,48 @@ public class AdministratorServiceTest extends MariaDBTestEnv {
|
|||
@Test
|
||||
public void createAdministratorTest() {
|
||||
// given
|
||||
AdministratorCreate.Request request = new AdministratorCreate.Request();
|
||||
request.setLoginId("test");
|
||||
request.setPassword("test");
|
||||
request.setEmail("test");
|
||||
request.setName("test");
|
||||
AdministratorCreateCommand command = AdministratorCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.build();
|
||||
|
||||
// when
|
||||
AdministratorCreate.Response response = service.create(request);
|
||||
AdministratorCreateResult createResult = service.create(command);
|
||||
|
||||
// then
|
||||
assertThat(response.getResultCode()).isEqualTo("0000");
|
||||
assertThat(createResult.getId()).isNotNull();
|
||||
}
|
||||
|
||||
@DisplayName("Administrator 수정 테스트")
|
||||
@Test
|
||||
public void updateAdministratorTest() {
|
||||
// given
|
||||
Administrator administrator = repository.save(
|
||||
AdministratorCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.build()
|
||||
.toEntity()
|
||||
);
|
||||
AdministratorUpdate.Request updateRequest = new AdministratorUpdate.Request();
|
||||
updateRequest.setId(administrator.getId());
|
||||
updateRequest.setPassword("test2");
|
||||
updateRequest.setEmail("test2");
|
||||
updateRequest.setName("test2");
|
||||
AdministratorCreateCommand command = AdministratorCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.build();
|
||||
|
||||
// when
|
||||
AdministratorUpdate.Response updateResponse = service.update(updateRequest);
|
||||
AdministratorCreateResult createResult = service.create(command);
|
||||
flushAndClear();
|
||||
|
||||
AdministratorUpdateCommand updateCommand = AdministratorUpdateCommand.builder()
|
||||
.id(createResult.getId())
|
||||
.password("test2")
|
||||
.email("test2")
|
||||
.name("test2")
|
||||
.build();
|
||||
|
||||
// when
|
||||
service.update(updateCommand);
|
||||
flushAndClear();
|
||||
|
||||
// then
|
||||
assertThat(updateResponse.getResultCode()).isEqualTo("0000");
|
||||
|
||||
flushAndClear();
|
||||
Administrator findAdministrator = repository.findById(administrator.getId()).orElseThrow();
|
||||
Administrator findAdministrator = repository.findById(createResult.getId()).orElseThrow();
|
||||
assertThat(findAdministrator.getPassword()).isEqualTo("test2");
|
||||
assertThat(findAdministrator.getEmail()).isEqualTo("test2");
|
||||
assertThat(findAdministrator.getName()).isEqualTo("test2");
|
||||
|
|
@ -89,27 +88,48 @@ public class AdministratorServiceTest extends MariaDBTestEnv {
|
|||
@Test
|
||||
public void deleteAdministratorTest() {
|
||||
// given
|
||||
Administrator administrator = repository.save(
|
||||
AdministratorCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.build()
|
||||
.toEntity()
|
||||
);
|
||||
AdministratorCreateCommand command = AdministratorCreateCommand.builder()
|
||||
.loginId("test")
|
||||
.password("test")
|
||||
.email("test")
|
||||
.name("test")
|
||||
.build();
|
||||
|
||||
AdministratorDelete.Request request = new AdministratorDelete.Request();
|
||||
request.setId(administrator.getId());
|
||||
AdministratorCreateResult createResult = service.create(command);
|
||||
flushAndClear();
|
||||
|
||||
// when
|
||||
AdministratorDelete.Response deleteResponse = service.delete(request);
|
||||
service.delete(createResult.getId());
|
||||
flushAndClear();
|
||||
|
||||
// then
|
||||
assertThat(deleteResponse.getResultCode()).isEqualTo("0000");
|
||||
assertThat(repository.findById(createResult.getId())).isEmpty();
|
||||
}
|
||||
|
||||
flushAndClear();
|
||||
assertThat(repository.findById(administrator.getId())).isEmpty();
|
||||
@Test
|
||||
@DisplayName("AdministratorService method 호출 유효성 검사 테스트")
|
||||
void validationTest() {
|
||||
// create
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId(null).password("password").email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("").password("password").email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password(null).email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password("").email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password("password").email(null).name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password("password").email("").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password("password").email("email").name(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.create(AdministratorCreateCommand.builder().loginId("loginId").password("password").email("email").name("").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// uodate
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(null).password("password").email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password(null).email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password("").email("email").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password("password").email(null).name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password("password").email("").name("name").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password("password").email("email").name(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> service.update(AdministratorUpdateCommand.builder().id(1L).password("password").email("email").name("").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// delete
|
||||
assertThatThrownBy(() -> service.delete(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,7 @@ import com.bpgroup.poc.admin.domain.admin.entity.MenuGroup;
|
|||
import com.bpgroup.poc.admin.domain.admin.entity.MenuGroupRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.MenuRepository;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuGroupUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.command.MenuUpdateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.menu.service.*;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
@ -20,7 +17,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
@Transactional
|
||||
public class MenuServiceTest extends MariaDBTestEnv {
|
||||
@DisplayName("MenuService 테스트")
|
||||
class MenuServiceTest extends MariaDBTestEnv {
|
||||
|
||||
@Autowired
|
||||
private MenuService menuService;
|
||||
|
|
@ -32,14 +30,14 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
private MenuRepository menuRepository;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
void setUp() {
|
||||
menuGroupRepository.deleteAll();
|
||||
menuRepository.deleteAll();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("MenuGroup 생성 테스트")
|
||||
public void createMenuGroupTest() {
|
||||
void createMenuGroupTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
|
||||
|
|
@ -53,7 +51,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("MenuGroup 수정 테스트")
|
||||
public void updateMenuGroupTest() {
|
||||
void updateMenuGroupTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -78,7 +76,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("MenuGroup 삭제 테스트")
|
||||
public void deleteMenuGroupTest() {
|
||||
void deleteMenuGroupTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -94,7 +92,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("MenuGroup 삭제 시 Menu 동시 삭제 테스트")
|
||||
public void deleteMenuGroupWithMenuTest() {
|
||||
void deleteMenuGroupWithMenuTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -121,7 +119,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("Menu 생성 테스트")
|
||||
public void createGroupTest() {
|
||||
void createGroupTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -144,7 +142,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("Menu 수정 테스트")
|
||||
public void updateMenuTest() {
|
||||
void updateMenuTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -179,7 +177,7 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("Menu 삭제 테스트")
|
||||
public void deleteMenuTest() {
|
||||
void deleteMenuTest() {
|
||||
// given
|
||||
MenuGroupCreateCommand groupCreateCommand = MenuGroupCreateCommand.of("uri", "name", 1);
|
||||
menuService.createMenuGroup(groupCreateCommand);
|
||||
|
|
@ -205,19 +203,19 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
|
||||
@Test
|
||||
@DisplayName("MenuService method 호출 유효성 검사 테스트")
|
||||
public void validationTest() {
|
||||
void validationTest() {
|
||||
// menuGroup create
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenuGroup(MenuGroupCreateCommand.builder().uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// menuGroup update
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(null).uri("uri").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenuGroup(MenuGroupUpdateCommand.builder().id(1L).uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
|
|
@ -225,18 +223,18 @@ public class MenuServiceTest extends MariaDBTestEnv {
|
|||
assertThatThrownBy(() -> menuService.deleteMenu(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// menu create
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "", "name", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", "", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(null, "uri", "name", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "", "name", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, null, "name", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", "", 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", null, 1))).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.createMenu(MenuCreateCommand.of(1L, "uri", "name", null))).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// menu update
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(null).uri("uri").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("").name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri(null).name("name").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name("").sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name(null).sortOrder(1).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> menuService.updateMenu(MenuUpdateCommand.builder().id(1L).uri("uri").name("name").sortOrder(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ package com.bpgroup.poc.admin.web.main.admin.role;
|
|||
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.Role;
|
||||
import com.bpgroup.poc.admin.domain.admin.entity.RoleRepository;
|
||||
import com.bpgroup.poc.admin.domain.admin.command.RoleCreateCommand;
|
||||
import com.bpgroup.poc.admin.env.MariaDBTestEnv;
|
||||
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.persistence.EntityManager;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleCreateCommand;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleCreateResult;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleService;
|
||||
import com.bpgroup.poc.admin.web.main.admin.role.service.RoleUpdateCommand;
|
||||
import jakarta.validation.ConstraintViolationException;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
|
@ -15,14 +15,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
@Transactional
|
||||
@DisplayName("Role Service 테스트")
|
||||
class RoleServiceTest extends MariaDBTestEnv {
|
||||
|
||||
@Autowired
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
|
|
@ -38,66 +36,81 @@ class RoleServiceTest extends MariaDBTestEnv {
|
|||
@DisplayName("Role 생성 테스트")
|
||||
void createRoleTest() {
|
||||
// given
|
||||
RoleCreate.Request request = new RoleCreate.Request();
|
||||
request.setName("TEST");
|
||||
request.setDescription("TEST");
|
||||
RoleCreateCommand roleCreateCommand = RoleCreateCommand.builder()
|
||||
.name("TEST")
|
||||
.description("TEST")
|
||||
.build();
|
||||
|
||||
// when
|
||||
RoleCreate.Response response = roleService.create(request);
|
||||
RoleCreateResult createResult = roleService.create(roleCreateCommand);
|
||||
|
||||
// then
|
||||
assertThat(response.getId()).isNotNull();
|
||||
assertThat(response.getResultCode()).isEqualTo("0000");
|
||||
assertThat(createResult.getId()).isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Role 수정 테스트")
|
||||
void updateRoleTest() {
|
||||
// given
|
||||
Role createRole = roleRepository.save(RoleCreateCommand.builder()
|
||||
RoleCreateCommand roleCreateCommand = RoleCreateCommand.builder()
|
||||
.name("TEST")
|
||||
.description("TEST")
|
||||
.build()
|
||||
.toEntity());
|
||||
|
||||
RoleUpdate.Request request = new RoleUpdate.Request();
|
||||
request.setId(createRole.getId());
|
||||
request.setName("TEST2");
|
||||
request.setDescription("TEST2");
|
||||
|
||||
// when
|
||||
RoleUpdate.Response response = roleService.update(request);
|
||||
|
||||
// then
|
||||
assertThat(response.getResultCode()).isEqualTo("0000");
|
||||
.build();
|
||||
|
||||
RoleCreateResult createResult = roleService.create(roleCreateCommand);
|
||||
flushAndClear();
|
||||
|
||||
Role findRole = roleRepository.findById(createRole.getId()).orElseThrow();
|
||||
assertThat(findRole.getName()).isEqualTo("TEST2");
|
||||
assertThat(findRole.getDescription()).isEqualTo("TEST2");
|
||||
RoleUpdateCommand roleUpdateCommand = RoleUpdateCommand.builder()
|
||||
.id(createResult.getId())
|
||||
.name("TEST2")
|
||||
.description("TEST2")
|
||||
.build();
|
||||
|
||||
// when
|
||||
roleService.update(roleUpdateCommand);
|
||||
flushAndClear();
|
||||
|
||||
// then
|
||||
Role role = roleRepository.findById(createResult.getId()).orElseThrow();
|
||||
assertThat(role.getName()).isEqualTo("TEST2");
|
||||
assertThat(role.getDescription()).isEqualTo("TEST2");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Role 삭제 테스트")
|
||||
void deleteRoleTest() {
|
||||
// given
|
||||
Role createRole = roleRepository.save(RoleCreateCommand.builder()
|
||||
RoleCreateCommand roleCreateCommand = RoleCreateCommand.builder()
|
||||
.name("TEST")
|
||||
.description("TEST")
|
||||
.build()
|
||||
.toEntity());
|
||||
.build();
|
||||
|
||||
RoleDelete.Request request = new RoleDelete.Request();
|
||||
request.setId(createRole.getId());
|
||||
RoleCreateResult createResult = roleService.create(roleCreateCommand);
|
||||
flushAndClear();
|
||||
|
||||
// when
|
||||
RoleDelete.Response response = roleService.delete(request);
|
||||
roleService.delete(createResult.getId());
|
||||
flushAndClear();
|
||||
|
||||
// then
|
||||
assertThat(response.getResultCode()).isEqualTo("0000");
|
||||
|
||||
flushAndClear();
|
||||
assertThat(roleRepository.findById(createRole.getId())).isEmpty();
|
||||
assertThat(roleRepository.findById(createResult.getId())).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("RoleService method 호출 유효성 검사 테스트")
|
||||
void validationTest() {
|
||||
// create
|
||||
assertThatThrownBy(() -> roleService.create(RoleCreateCommand.builder().name(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.create(RoleCreateCommand.builder().name("").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// update
|
||||
assertThatThrownBy(() -> roleService.update(RoleUpdateCommand.builder().id(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.update(RoleUpdateCommand.builder().id(1L).name(null).build())).isInstanceOf(ConstraintViolationException.class);
|
||||
assertThatThrownBy(() -> roleService.update(RoleUpdateCommand.builder().id(1L).name("").build())).isInstanceOf(ConstraintViolationException.class);
|
||||
|
||||
// delete
|
||||
assertThatThrownBy(() -> roleService.delete(null)).isInstanceOf(ConstraintViolationException.class);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue