package org.appfuse.webapp.server.services; import java.util.List; import org.apache.commons.lang.builder.ToStringBuilder; import org.appfuse.model.User; import org.junit.After; import org.junit.Assert; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.core.AuthenticationException; import org.subethamail.wiser.WiserMessage; /** * * @author ivangsa * */ public abstract class UserRequestServiceTest extends BaseServiceTestCase { @Autowired private UserRequestService userRequestService; @After public void tearDown() throws Exception { logout(); } @Test public void testGetCurrentUser() { User user = userRequestService.getCurrentUser(); Assert.assertNull(user); login("admin"); user = userRequestService.getCurrentUser(); Assert.assertNotNull(user); logout(); user = userRequestService.getCurrentUser(); Assert.assertNull(user); } @Test public void testSignUp() throws Exception { User user = userRequestService.signUp(); Assert.assertTrue(user.getId() == null); user.setUsername("signuptest"); user.setPassword("signuptest"); user.setPasswordHint("signuptest"); user.setFirstName("signuptest"); user.setLastName("signuptest"); user.setEmail("signuptest@email.com"); startSmtpServer(); user = userRequestService.signUp(user); Assert.assertTrue(user.getId() != null); Assert.assertTrue(getReceivedMailMessages(true).size() == 1); } @Test public void testEditProfile() throws Exception { login("admin"); User user = userRequestService.editProfile(); final int version = user.getVersion(); user.setPhoneNumber("555555"); user = userRequestService.editProfile(user); Assert.assertEquals(version + 1, (int) user.getVersion()); } @Test public void testGetUser() { try { userRequestService.getUser(-2L); Assert.fail("Expected AuthenticationException"); } catch (final AuthenticationException e) { } login("user"); try { userRequestService.getUser(-2L); Assert.fail("Expected AccessDeniedException"); } catch (final AccessDeniedException e) { } login("admin"); final User user = userRequestService.getUser(-1L); Assert.assertNotNull(user); } @Test public void testSaveUser() throws Exception { login("admin"); User user = userRequestService.getUser(-2L); final int version = user.getVersion(); user.setPhoneNumber("aaaaa"); user = userRequestService.saveUser(user); Assert.assertEquals(version + 1, (int) user.getVersion()); } @Test public void testCountUsers() { login("admin"); final UsersSearchCriteria searchCriteria = new UsersSearchCriteria(); final long count = userRequestService.countUsers(searchCriteria); Assert.assertTrue(count > 0); } @Test public void testSearchUsers() { login("admin"); final UsersSearchCriteria searchCriteria = new UsersSearchCriteria(); final long count = userRequestService.countUsers(searchCriteria); List<User> results = userRequestService.searchUsers(searchCriteria, 0, (int) count); Assert.assertEquals(count, results.size()); results = userRequestService.searchUsers(searchCriteria, 0, (int) count, "username", true); Assert.assertEquals(count, results.size()); } @Test public void testSendPasswordHint() { startSmtpServer(); userRequestService.sendPasswordHint("admin"); Assert.assertEquals(1, getReceivedMailMessages(true).size()); } @Test public void testRequestRecoveryToken() { startSmtpServer(); userRequestService.requestRecoveryToken("admin"); final List<WiserMessage> messages = getReceivedMailMessages(true); Assert.assertEquals(1, messages.size()); log.debug(ToStringBuilder.reflectionToString(messages.get(0))); } @Test public void testUpdatePassword() { } }