add UserService unit test, modify UserService

This commit is contained in:
rjclancy 2019-03-26 12:05:42 +00:00 committed by Nanne Baars
parent 93830ac15b
commit bb7fb3f197
2 changed files with 76 additions and 9 deletions

View File

@ -1,6 +1,6 @@
package org.owasp.webwolf.user;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@ -10,26 +10,27 @@ import org.springframework.stereotype.Service;
* @since 3/19/17.
*/
@Service
@AllArgsConstructor
public class UserService implements UserDetailsService {
private final UserRepository userRepository;
private UserRepository userRepository;
@Autowired
public UserService(final UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public WebGoatUser loadUserByUsername(String username) throws UsernameNotFoundException {
public WebGoatUser loadUserByUsername(final String username) throws UsernameNotFoundException {
WebGoatUser webGoatUser = userRepository.findByUsername(username);
if (webGoatUser == null) {
throw new UsernameNotFoundException("User not found");
} else {
webGoatUser.createUser();
}
webGoatUser.createUser();
return webGoatUser;
}
public void addUser(String username, String password) {
public void addUser(final String username, final String password) {
userRepository.save(new WebGoatUser(username, password));
}
}

View File

@ -0,0 +1,66 @@
package org.owasp.webwolf.user;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.mockito.Mockito.*;
@RunWith(SpringJUnit4ClassRunner.class)
public class UserServiceTest {
@Mock
private UserRepository mockUserRepository;
private UserService cut;
@Before
public void setup(){
cut = new UserService(mockUserRepository);
}
@Test
public void testLoadUserByUsername(){
// setup
final String username = "guest";
final String password = "123";
WebGoatUser user = new WebGoatUser(username, password);
when(mockUserRepository.findByUsername(username)).thenReturn(user);
// execute
final WebGoatUser webGoatUser = cut.loadUserByUsername(username);
// verify
Assert.assertEquals(username, webGoatUser.getUsername());
Assert.assertEquals(password, webGoatUser.getPassword());
}
@Test(expected = UsernameNotFoundException.class)
public void testLoadUserByUsername_NULL(){
// setup
final String username = "guest";
when(mockUserRepository.findByUsername(username)).thenReturn(null);
// execute
cut.loadUserByUsername(username);
}
@Test
public void testAddUser(){
// setup
final String username = "guest";
final String password = "guest";
// execute
cut.addUser(username, password);
// verify
verify(mockUserRepository, times(1)).save(any(WebGoatUser.class));
}
}