You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RedmineUserServiceTest.java 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.gitblit.tests;
  2. import static org.hamcrest.CoreMatchers.is;
  3. import java.util.HashMap;
  4. import org.junit.Test;
  5. import com.gitblit.RedmineUserService;
  6. import com.gitblit.models.UserModel;
  7. import com.gitblit.tests.mock.MemorySettings;
  8. import com.gitblit.utils.StringUtils;
  9. public class RedmineUserServiceTest extends GitblitUnitTest {
  10. private static final String JSON = "{\"user\":{\"created_on\":\"2011-03-28T00:41:29Z\",\"lastname\":\"foo\","
  11. + "\"last_login_on\":\"2012-09-06T23:59:26Z\",\"firstname\":\"baz\","
  12. + "\"id\":4,\"login\":\"RedmineUserId\",\"mail\":\"baz@example.com\"}}";
  13. private static final String NOT_ADMIN_JSON = "{\"user\":{\"lastname\":\"foo\","
  14. + "\"last_login_on\":\"2012-09-08T13:59:01Z\",\"created_on\":\"2009-03-17T14:25:50Z\","
  15. + "\"mail\":\"baz@example.com\",\"id\":5,\"firstname\":\"baz\"}}";
  16. @Test
  17. public void testAuthenticate() throws Exception {
  18. RedmineUserService redmineUserService = new RedmineUserService();
  19. redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
  20. redmineUserService.setTestingCurrentUserAsJson(JSON);
  21. UserModel userModel = redmineUserService.authenticate("RedmineAdminId", "RedmineAPIKey".toCharArray());
  22. assertThat(userModel.getName(), is("redmineadminid"));
  23. assertThat(userModel.getDisplayName(), is("baz foo"));
  24. assertThat(userModel.emailAddress, is("baz@example.com"));
  25. assertNotNull(userModel.cookie);
  26. assertThat(userModel.canAdmin, is(true));
  27. }
  28. @Test
  29. public void testAuthenticateNotAdminUser() throws Exception {
  30. RedmineUserService redmineUserService = new RedmineUserService();
  31. redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
  32. redmineUserService.setTestingCurrentUserAsJson(NOT_ADMIN_JSON);
  33. UserModel userModel = redmineUserService.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray());
  34. assertThat(userModel.getName(), is("redmineuserid"));
  35. assertThat(userModel.getDisplayName(), is("baz foo"));
  36. assertThat(userModel.emailAddress, is("baz@example.com"));
  37. assertNotNull(userModel.cookie);
  38. assertThat(userModel.canAdmin, is(false));
  39. }
  40. @Test
  41. public void testLocalAccount() {
  42. RedmineUserService redmineUserService = new RedmineUserService();
  43. redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
  44. UserModel localAccount = new UserModel("bruce");
  45. localAccount.displayName = "Bruce Campbell";
  46. localAccount.password = StringUtils.MD5_TYPE + StringUtils.getMD5("gimmesomesugar");
  47. redmineUserService.deleteUser(localAccount.username);
  48. assertTrue("Failed to add local account",
  49. redmineUserService.updateUserModel(localAccount));
  50. assertEquals("Accounts are not equal!",
  51. localAccount,
  52. redmineUserService.authenticate(localAccount.username, "gimmesomesugar".toCharArray()));
  53. assertTrue("Failed to delete local account!",
  54. redmineUserService.deleteUser(localAccount.username));
  55. }
  56. }