Merge branch 'pr/579' into develop

This commit is contained in:
Nanne Baars 2019-09-10 13:55:43 +02:00
commit a56f41e0ea
3 changed files with 94 additions and 30 deletions

View File

@ -1,5 +1,7 @@
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;
@ -14,8 +16,7 @@ public class UserService implements UserDetailsService {
private UserRepository userRepository;
@Autowired
public UserService(final UserRepository userRepository) {
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}

View File

@ -1,10 +1,9 @@
package org.owasp.webwolf.user;
import org.junit.Assert;
import org.junit.Before;
import org.assertj.core.api.Assertions;
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,50 +16,37 @@ public class UserServiceTest {
@Mock
private UserRepository mockUserRepository;
private UserService cut;
@Before
public void setup(){
cut = new UserService(mockUserRepository);
}
@InjectMocks
private UserService sut;
@Test
public void testLoadUserByUsername(){
// setup
final String username = "guest";
final String password = "123";
var username = "guest";
var password = "123";
WebGoatUser user = new WebGoatUser(username, password);
when(mockUserRepository.findByUsername(username)).thenReturn(user);
// execute
final WebGoatUser webGoatUser = cut.loadUserByUsername(username);
var webGoatUser = sut.loadUserByUsername(username);
// verify
Assert.assertEquals(username, webGoatUser.getUsername());
Assert.assertEquals(password, webGoatUser.getPassword());
Assertions.assertThat(username).isEqualTo(webGoatUser.getUsername());
Assertions.assertThat(password).isEqualTo(webGoatUser.getPassword());
}
@Test(expected = UsernameNotFoundException.class)
public void testLoadUserByUsername_NULL(){
// setup
final String username = "guest";
var username = "guest";
when(mockUserRepository.findByUsername(username)).thenReturn(null);
// execute
cut.loadUserByUsername(username);
sut.loadUserByUsername(username);
}
@Test
public void testAddUser(){
// setup
final String username = "guest";
final String password = "guest";
var username = "guest";
var password = "guest";
// execute
cut.addUser(username, password);
sut.addUser(username, password);
// verify
verify(mockUserRepository, times(1)).save(any(WebGoatUser.class));
}
}

View File

@ -0,0 +1,77 @@
package org.owasp.webwolf.user;
import org.assertj.core.api.Assertions;
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;
@RunWith(SpringJUnit4ClassRunner.class)
public class UserValidatorTest {
@Mock
private UserRepository mockUserRepository;
@InjectMocks
private UserValidator userValidator;
@Test
public void validUserFormShouldNotHaveErrors() {
var validUserForm = new UserForm();
validUserForm.setUsername("guest");
validUserForm.setMatchingPassword("123");
validUserForm.setPassword("123");
BindException errors = new BindException(validUserForm, "validUserForm");
userValidator.validate(validUserForm, errors);
Assertions.assertThat(errors.hasErrors()).isFalse();
}
@Test
public void whenPasswordDoNotMatchShouldFail() {
var validUserForm = new UserForm();
validUserForm.setUsername("guest");
validUserForm.setMatchingPassword("123");
validUserForm.setPassword("124");
BindException errors = new BindException(validUserForm, "validUserForm");
userValidator.validate(validUserForm, errors);
Assertions.assertThat(errors.hasErrors()).isTrue();
}
@Test
public void registerExistingUserAgainShouldFail() {
var username = "guest";
var password = "123";
var validUserForm = new UserForm();
validUserForm.setUsername(username);
validUserForm.setMatchingPassword(password);
validUserForm.setPassword("124");
BindException errors = new BindException(validUserForm, "validUserForm");
var webGoatUser = new WebGoatUser(username, password);
when(mockUserRepository.findByUsername(validUserForm.getUsername())).thenReturn(webGoatUser);
userValidator.validate(validUserForm, errors);
Assertions.assertThat(errors.hasErrors()).isTrue();
}
@Test
public void testSupports() {
Assertions.assertThat(userValidator.supports(UserForm.class)).isTrue();
}
@Test
public void testSupports_false() {
Assertions.assertThat(userValidator.supports(UserService.class)).isFalse();
}
}