add UserService unit test, modify UserService
This commit is contained in:
		| @ -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)); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
|  | ||||
| @ -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)); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user