feat: 패스워드 변경 서비스 구현
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
package com.ticketing.server.user.application.request;public class UserPasswordModifyRequset {
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package com.ticketing.server.user.service;
|
|||||||
|
|
||||||
import com.ticketing.server.user.domain.User;
|
import com.ticketing.server.user.domain.User;
|
||||||
import com.ticketing.server.user.domain.repository.UserRepository;
|
import com.ticketing.server.user.domain.repository.UserRepository;
|
||||||
|
import com.ticketing.server.user.service.dto.ChangePassword;
|
||||||
import com.ticketing.server.user.service.dto.DeleteUser;
|
import com.ticketing.server.user.service.dto.DeleteUser;
|
||||||
import com.ticketing.server.user.service.dto.SignUp;
|
import com.ticketing.server.user.service.dto.SignUp;
|
||||||
import com.ticketing.server.user.service.interfaces.UserService;
|
import com.ticketing.server.user.service.interfaces.UserService;
|
||||||
@@ -48,4 +49,16 @@ public class UserServiceImpl implements UserService {
|
|||||||
return Optional.of(user.delete(deleteUser));
|
return Optional.of(user.delete(deleteUser));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Optional<User> modifyPassword(@Valid ChangePassword changePassword) {
|
||||||
|
Optional<User> optionalUser = userRepository.findByEmail(changePassword.getEmail());
|
||||||
|
if (optionalUser.isEmpty()) {
|
||||||
|
log.error("존재하지 않는 이메일 입니다. :: {}", changePassword);
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
User user = optionalUser.get();
|
||||||
|
return Optional.of(user.modifyPassword(changePassword));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,4 +37,11 @@ public class ChangePassword implements PasswordMatches {
|
|||||||
public String getEncodePassword() {
|
public String getEncodePassword() {
|
||||||
return passwordEncoder.encode(newPassword);
|
return passwordEncoder.encode(newPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ChangePassword{" +
|
||||||
|
"email='" + email + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ticketing.server.user.service.interfaces;
|
package com.ticketing.server.user.service.interfaces;
|
||||||
|
|
||||||
import com.ticketing.server.user.domain.User;
|
import com.ticketing.server.user.domain.User;
|
||||||
|
import com.ticketing.server.user.service.dto.ChangePassword;
|
||||||
import com.ticketing.server.user.service.dto.DeleteUser;
|
import com.ticketing.server.user.service.dto.DeleteUser;
|
||||||
import com.ticketing.server.user.service.dto.SignUp;
|
import com.ticketing.server.user.service.dto.SignUp;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -12,4 +13,6 @@ public interface UserService {
|
|||||||
|
|
||||||
Optional<User> delete(@Valid DeleteUser deleteUser);
|
Optional<User> delete(@Valid DeleteUser deleteUser);
|
||||||
|
|
||||||
|
Optional<User> modifyPassword(@Valid ChangePassword changePassword);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import com.ticketing.server.user.domain.User;
|
import com.ticketing.server.user.domain.User;
|
||||||
import com.ticketing.server.user.domain.UserGrade;
|
import com.ticketing.server.user.domain.UserGrade;
|
||||||
import com.ticketing.server.user.domain.repository.UserRepository;
|
import com.ticketing.server.user.domain.repository.UserRepository;
|
||||||
|
import com.ticketing.server.user.service.dto.ChangePassword;
|
||||||
import com.ticketing.server.user.service.dto.DeleteUser;
|
import com.ticketing.server.user.service.dto.DeleteUser;
|
||||||
import com.ticketing.server.user.service.dto.DeleteUserTest;
|
import com.ticketing.server.user.service.dto.DeleteUserTest;
|
||||||
import com.ticketing.server.user.service.dto.SignUp;
|
import com.ticketing.server.user.service.dto.SignUp;
|
||||||
@@ -25,6 +26,7 @@ class UserServiceImplTest {
|
|||||||
User user;
|
User user;
|
||||||
SignUp signUp;
|
SignUp signUp;
|
||||||
DeleteUser deleteUser;
|
DeleteUser deleteUser;
|
||||||
|
ChangePassword changePassword;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
UserRepository userRepository;
|
UserRepository userRepository;
|
||||||
@@ -37,6 +39,7 @@ class UserServiceImplTest {
|
|||||||
signUp = new SignUp("유저", "ticketing@gmail.com", "123456", "010-1234-5678");
|
signUp = new SignUp("유저", "ticketing@gmail.com", "123456", "010-1234-5678");
|
||||||
user = new User("유저", "ticketing@gmail.com", "123456", UserGrade.GUEST, "010-1234-5678");
|
user = new User("유저", "ticketing@gmail.com", "123456", UserGrade.GUEST, "010-1234-5678");
|
||||||
deleteUser = new DeleteUser("ticketing@gmail.com", "123456", DeleteUserTest.CUSTOM_PASSWORD_ENCODER);
|
deleteUser = new DeleteUser("ticketing@gmail.com", "123456", DeleteUserTest.CUSTOM_PASSWORD_ENCODER);
|
||||||
|
changePassword = new ChangePassword("ticketing@gmail.com", "123456", "ticketing1234", DeleteUserTest.CUSTOM_PASSWORD_ENCODER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -92,4 +95,30 @@ class UserServiceImplTest {
|
|||||||
assertThat(user).isPresent();
|
assertThat(user).isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("패스워드 변경 시 이메일이 존재하지 않을 경우")
|
||||||
|
void modifyPasswordFail() {
|
||||||
|
// given
|
||||||
|
when(userRepository.findByEmail("ticketing@gmail.com")).thenReturn(Optional.empty());
|
||||||
|
|
||||||
|
// when
|
||||||
|
Optional<User> user = userService.modifyPassword(changePassword);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(user).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("패스워드 변경 성공했을 경우")
|
||||||
|
void modifyPasswordSuccess() {
|
||||||
|
// given
|
||||||
|
when(userRepository.findByEmail("ticketing@gmail.com")).thenReturn(Optional.of(user));
|
||||||
|
|
||||||
|
// when
|
||||||
|
Optional<User> user = userService.modifyPassword(changePassword);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(user).isPresent();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user