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;
|
package org.owasp.webwolf.user;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
@ -10,14 +11,11 @@ import org.springframework.stereotype.Service;
|
|||||||
* @since 3/19/17.
|
* @since 3/19/17.
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
public class UserService implements UserDetailsService {
|
public class UserService implements UserDetailsService {
|
||||||
|
|
||||||
private UserRepository userRepository;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public UserService(final UserRepository userRepository) {
|
private UserRepository userRepository;
|
||||||
this.userRepository = userRepository;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WebGoatUser loadUserByUsername(final String username) throws UsernameNotFoundException {
|
public WebGoatUser loadUserByUsername(final String username) throws UsernameNotFoundException {
|
||||||
|
@ -5,6 +5,7 @@ import org.junit.Assert;
|
|||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
@ -17,13 +18,9 @@ public class UserServiceTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private UserRepository mockUserRepository;
|
private UserRepository mockUserRepository;
|
||||||
|
|
||||||
|
@InjectMocks
|
||||||
private UserService cut;
|
private UserService cut;
|
||||||
|
|
||||||
@Before
|
|
||||||
public void setup(){
|
|
||||||
cut = new UserService(mockUserRepository);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLoadUserByUsername(){
|
public void testLoadUserByUsername(){
|
||||||
// setup
|
// 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