package org.deegree.securityproxy.authentication.basic; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.deegree.securityproxy.authentication.basic.UserService; import org.deegree.securityproxy.authentication.repository.UserDao; import org.junit.Test; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; public class UserServiceTest { private static final String KNOWN_USER_NAME = "knownUser"; @Test public void testLoadUserByUsernameWithKnownUsernameShouldReturnDetails() throws Exception { UserDao userDao = mockUserDao(); UserService userService = new UserService( userDao ); UserDetails userDetails = userService.loadUserByUsername( KNOWN_USER_NAME ); assertThat( userDetails, is( notNullValue() ) ); } @Test(expected = UsernameNotFoundException.class) public void testLoadUserByUsernameWithUnknownUsernameShouldFail() throws Exception { UserDao userDao = mockUserDao(); UserService user = new UserService( userDao ); user.loadUserByUsername( "notKnown" ); } private UserDao mockUserDao() { UserDao userDao = mock( UserDao.class ); when( userDao.retrieveUserByName( KNOWN_USER_NAME ) ).thenReturn( mock( UserDetails.class ) ); return userDao; } }