Add UserValidator tests + minor code clean up
This commit is contained in:
parent
a242347ee0
commit
c6c0cc60f9
@ -1,5 +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;
|
||||
@ -10,14 +11,11 @@ import org.springframework.stereotype.Service;
|
||||
* @since 3/19/17.
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
public class UserService implements UserDetailsService {
|
||||
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
public UserService(final UserRepository userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Override
|
||||
public WebGoatUser loadUserByUsername(final String username) throws UsernameNotFoundException {
|
||||
|
@ -5,6 +5,7 @@ import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@ -17,13 +18,9 @@ public class UserServiceTest {
|
||||
@Mock
|
||||
private UserRepository mockUserRepository;
|
||||
|
||||
@InjectMocks
|
||||
private UserService cut;
|
||||
|
||||
@Before
|
||||
public void setup(){
|
||||
cut = new UserService(mockUserRepository);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadUserByUsername(){
|
||||
// setup
|
||||
|
@ -0,0 +1,85 @@
|
||||
package org.owasp.webwolf.user;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.validation.BindException;
|
||||
|
||||
import static junit.framework.TestCase.assertTrue;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* @author rjclancy
|
||||
* @since 3/26/19.
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class UserValidatorTest {
|
||||
|
||||
@Mock
|
||||
private UserRepository mockUserRepository;
|
||||
|
||||
@InjectMocks
|
||||
private UserValidator userValidator;
|
||||
|
||||
@Test
|
||||
public void testValidUserForm() {
|
||||
UserForm validUserForm = new UserForm();
|
||||
validUserForm.setUsername("guest");
|
||||
validUserForm.setMatchingPassword("123");
|
||||
validUserForm.setPassword("123");
|
||||
BindException errors = new BindException(validUserForm, "validUserForm");
|
||||
|
||||
userValidator.validate(validUserForm, errors);
|
||||
|
||||
assertFalse(errors.hasErrors());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testValidUserForm_INVALID_PASSWORD() {
|
||||
UserForm validUserForm = new UserForm();
|
||||
validUserForm.setUsername("guest");
|
||||
validUserForm.setMatchingPassword("123");
|
||||
validUserForm.setPassword("124");
|
||||
BindException errors = new BindException(validUserForm, "validUserForm");
|
||||
|
||||
userValidator.validate(validUserForm, errors);
|
||||
|
||||
assertTrue(errors.hasErrors());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testValidUserForm_DUPLICATE_USER() {
|
||||
// setup
|
||||
final String username = "guest";
|
||||
final String password = "123";
|
||||
|
||||
UserForm validUserForm = new UserForm();
|
||||
validUserForm.setUsername(username);
|
||||
validUserForm.setMatchingPassword(password);
|
||||
validUserForm.setPassword("124");
|
||||
BindException errors = new BindException(validUserForm, "validUserForm");
|
||||
|
||||
WebGoatUser webGoatUser = new WebGoatUser(username, password);
|
||||
when(mockUserRepository.findByUsername(validUserForm.getUsername())).thenReturn(webGoatUser);
|
||||
|
||||
// execute
|
||||
userValidator.validate(validUserForm, errors);
|
||||
|
||||
// verify
|
||||
assertTrue(errors.hasErrors());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSupports(){
|
||||
Assert.assertTrue(userValidator.supports(UserForm.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSupports_false(){
|
||||
Assert.assertFalse(userValidator.supports(UserService.class));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user