diff --git a/src/test/java/com/photobook/service/impl/UserServiceImplTest.java b/src/test/java/com/photobook/service/impl/UserServiceImplTest.java index 89c0e50..4d045f7 100644 --- a/src/test/java/com/photobook/service/impl/UserServiceImplTest.java +++ b/src/test/java/com/photobook/service/impl/UserServiceImplTest.java @@ -8,6 +8,8 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.InternalAuthenticationServiceException; import org.springframework.security.crypto.password.PasswordEncoder; import java.time.LocalDate; @@ -32,7 +34,7 @@ public UserDto userInfo() { UserDto userInfo = new UserDto(); userInfo.setUserId(1); userInfo.setId("admin"); - userInfo.setPassword("1234"); + userInfo.setPassword(passwordEncoder.encode("1234")); userInfo.setName("관리자"); userInfo.setEmail("admin@gmail.com"); userInfo.setBirth(LocalDate.of(1993, 10, 28)); @@ -43,31 +45,48 @@ public UserDto userInfo() { return userInfo; } -// @Test -// @DisplayName("사용자 정보가 존재하면 성공") -// public void successGetUserInfoByIdAndPassword() { -// //given -// UserDto userInfo = userInfo(); -// when(userMapper.getUserInfoByIdAndPassword("admin", "1234")).thenReturn(userInfo); -// -// //when -// UserDto result = userServiceImpl.getUserInfoByIdAndPassword("admin", "1234"); -// -// //then -// assertEquals(result, userInfo); -// } -// -// @Test -// @DisplayName("사용자 정보가 존재하지 않으면 성공") -// public void failureGetUserInfoByIdAndPassword() { -// //given -// when(userMapper.getUserInfoByIdAndPassword("notExistId", "notExistPassword")).thenReturn(null); -// -// //then -// assertThrows(IllegalArgumentException.class, () -> { -// //when -// userServiceImpl.getUserInfoByIdAndPassword("notExistId", "notExistPassword"); -// }); -// -// } + @Test + @DisplayName("로그인 검증 성공") + public void successValidateLogin() { + //given + UserDto userInfo = userInfo(); + when(userMapper.getUserInfoById("admin")).thenReturn(userInfo); + when(passwordEncoder.matches("1234", userInfo.getPassword())).thenReturn(true); + + //when + UserDto result = userServiceImpl.validateLogin("admin", "1234"); + + //then + assertEquals(result, userInfo); + } + + @Test + @DisplayName("로그인 검증 실패_존재하지 않는 아이디") + public void failureValidateLoginId() { + //given + when(userMapper.getUserInfoById("admin")).thenReturn(null); + + //then + assertThrows(InternalAuthenticationServiceException.class, () -> { + //when + userServiceImpl.validateLogin("admin", "1234"); + }); + + } + + @Test + @DisplayName("로그인 검증 실패_비밀번호 불일치") + public void failureValidateLoginPwd() { + //given + UserDto userInfo = userInfo(); + when(userMapper.getUserInfoById("admin")).thenReturn(userInfo); + when(passwordEncoder.matches("1234", userInfo.getPassword())).thenReturn(false); + + //then + assertThrows(BadCredentialsException.class, () -> { + //when + userServiceImpl.validateLogin("admin", "1234"); + }); + } + } \ No newline at end of file diff --git a/src/test/java/com/photobook/utils/PasswordEncoderTest.java b/src/test/java/com/photobook/utils/PasswordEncoderTest.java index 698c761..267966d 100644 --- a/src/test/java/com/photobook/utils/PasswordEncoderTest.java +++ b/src/test/java/com/photobook/utils/PasswordEncoderTest.java @@ -22,6 +22,7 @@ void passwordEncode() { //when String encodedPwd = passwordEncoder.encode(rawPwd); + System.out.println(encodedPwd); //then assertAll(