@Mock
UserRepository userRepository;
@Mock
PasswordEncoder passwordEncoder;
@InjectMocks
RegisterServiceImpl registerServiceimpl;
@Test
@DisplayName("Success Register")
void testRegisterUserSuccess() throws IOException {
RegisterUserServiceRequest request = mock(RegisterUserServiceRequest.class);
when(request.getEmail()).thenReturn("test@test.com");
User mockUser = mock(User.class);
when(userRepository.existsByEmail(request.getEmail())).thenReturn(false);
when(passwordEncoder.encode(request.getPassword())).thenReturn("encodedPassword");
when(userRepository.save(any(User.class))).thenReturn(mockUser);
User newUser = registerServiceimpl.registerUser(request);
assertEquals(request.getEmail(), newUser.getEmail());
assertEquals("encodedPassword", newUser.getPassword());
}