package tudu.security; import org.easymock.EasyMock; import org.junit.Test; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.test.util.ReflectionTestUtils; import tudu.domain.Role; import tudu.domain.RolesEnum; import tudu.domain.User; import tudu.service.UserService; import static org.easymock.EasyMock.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class UserDetailsServiceImplTest { @Test public void testLoadUserByUsername() { UserDetailsServiceImpl userDetailService = new UserDetailsServiceImpl(); UserService userService = EasyMock.createMock(UserService.class); ReflectionTestUtils.setField(userDetailService, "userService", userService); User user = new User(); user.setLogin("test_user"); user.setPassword("password"); user.setEnabled(true); Role userRole = new Role(); userRole.setRole(RolesEnum.ROLE_USER.toString()); user.getRoles().add(userRole); expect(userService.findUser("test_user")).andReturn(user); replay(userService); UserDetails springSecurityUser = userDetailService .loadUserByUsername("test_user"); assertEquals(user.getLogin(), springSecurityUser.getUsername()); assertEquals(user.getPassword(), springSecurityUser.getPassword()); assertNotNull(user.getLastAccessDate()); assertEquals(1, springSecurityUser.getAuthorities().size()); assertEquals(RolesEnum.ROLE_USER.toString(), springSecurityUser.getAuthorities().iterator().next().getAuthority()); verify(userService); } }