From 55c74e84a4ec8b44f67bf8a58e38947f8cfb4889 Mon Sep 17 00:00:00 2001 From: dongHyo Date: Wed, 25 May 2022 20:56:04 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20modifyPassword=20method=20Optional?= =?UTF-8?q?=20=EB=B0=98=ED=99=98=20->=20Exception=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Optional 반환과 Exception 반환이 혼용되어 사용되고 있어, Exception 으로 통일 --- .../server/user/application/UserController.java | 11 ++--------- .../server/user/service/UserServiceImpl.java | 6 +++--- .../server/user/service/interfaces/UserService.java | 3 +-- .../server/user/service/UserServiceImplTest.java | 9 ++++----- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/server/src/main/java/com/ticketing/server/user/application/UserController.java b/server/src/main/java/com/ticketing/server/user/application/UserController.java index 42ff3d6..cb58cce 100644 --- a/server/src/main/java/com/ticketing/server/user/application/UserController.java +++ b/server/src/main/java/com/ticketing/server/user/application/UserController.java @@ -8,7 +8,6 @@ import com.ticketing.server.user.application.response.UserDeleteResponse; import com.ticketing.server.user.application.response.UserModifyPasswordResponse; import com.ticketing.server.user.domain.User; import com.ticketing.server.user.service.UserServiceImpl; -import java.util.Optional; import javax.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -50,14 +49,8 @@ public class UserController { return ResponseEntity.status(HttpStatus.BAD_REQUEST).build(); } - Optional user = userService.modifyPassword(request.toChangePassword(passwordEncoder)); - - if (user.isEmpty()) { - log.error("존재하지 않는 이메일 입니다. :: {}", request.getEmail()); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).build(); - } - - return ResponseEntity.status(HttpStatus.OK).body(UserModifyPasswordResponse.of(user.get())); + User user = userService.modifyPassword(request.toChangePassword(passwordEncoder)); + return ResponseEntity.status(HttpStatus.OK).body(UserModifyPasswordResponse.of(user)); } } diff --git a/server/src/main/java/com/ticketing/server/user/service/UserServiceImpl.java b/server/src/main/java/com/ticketing/server/user/service/UserServiceImpl.java index 7fed280..64cd8b1 100644 --- a/server/src/main/java/com/ticketing/server/user/service/UserServiceImpl.java +++ b/server/src/main/java/com/ticketing/server/user/service/UserServiceImpl.java @@ -51,15 +51,15 @@ public class UserServiceImpl implements UserService { @Override @Transactional - public Optional modifyPassword(@Valid ChangePasswordDTO changePassword) { + public User modifyPassword(@Valid ChangePasswordDTO changePassword) { Optional optionalUser = userRepository.findByEmailAndIsDeletedFalse(changePassword.getEmail()); if (optionalUser.isEmpty()) { log.error("존재하지 않는 이메일 입니다. :: {}", changePassword); - return Optional.empty(); + throw new NotFoundEmailException(); } User user = optionalUser.get(); - return Optional.of(user.modifyPassword(changePassword)); + return user.modifyPassword(changePassword); } } diff --git a/server/src/main/java/com/ticketing/server/user/service/interfaces/UserService.java b/server/src/main/java/com/ticketing/server/user/service/interfaces/UserService.java index 6ab47b1..5d61418 100644 --- a/server/src/main/java/com/ticketing/server/user/service/interfaces/UserService.java +++ b/server/src/main/java/com/ticketing/server/user/service/interfaces/UserService.java @@ -4,7 +4,6 @@ import com.ticketing.server.user.domain.User; import com.ticketing.server.user.service.dto.ChangePasswordDTO; import com.ticketing.server.user.service.dto.DeleteUserDTO; import com.ticketing.server.user.service.dto.SignUpDTO; -import java.util.Optional; import javax.validation.Valid; public interface UserService { @@ -13,6 +12,6 @@ public interface UserService { User delete(@Valid DeleteUserDTO deleteUser); - Optional modifyPassword(@Valid ChangePasswordDTO changePassword); + User modifyPassword(@Valid ChangePasswordDTO changePassword); } diff --git a/server/src/test/java/com/ticketing/server/user/service/UserServiceImplTest.java b/server/src/test/java/com/ticketing/server/user/service/UserServiceImplTest.java index 67cd35c..c0932f7 100644 --- a/server/src/test/java/com/ticketing/server/user/service/UserServiceImplTest.java +++ b/server/src/test/java/com/ticketing/server/user/service/UserServiceImplTest.java @@ -102,10 +102,9 @@ class UserServiceImplTest { when(userRepository.findByEmailAndIsDeletedFalse("ticketing@gmail.com")).thenReturn(Optional.empty()); // when - Optional user = userService.modifyPassword(changePassword); - // then - assertThat(user).isEmpty(); + assertThatThrownBy(() -> userService.modifyPassword(changePassword)) + .isInstanceOf(NotFoundEmailException.class); } @Test @@ -115,10 +114,10 @@ class UserServiceImplTest { when(userRepository.findByEmailAndIsDeletedFalse("ticketing@gmail.com")).thenReturn(Optional.of(user)); // when - Optional user = userService.modifyPassword(changePassword); + User user = userService.modifyPassword(changePassword); // then - assertThat(user).isPresent(); + assertThat(user).isNotNull(); } }