/src/test/java/de/theit/jenkins/crowd/CrowdUserDetailsServiceTest.java

https://github.com/jenkinsci/crowd2-plugin · Java · 95 lines · 81 code · 14 blank · 0 comment · 0 complexity · dcc94429941b0a26ee6300c574d61340 MD5 · raw file

  1. package de.theit.jenkins.crowd;
  2. import com.atlassian.crowd.exception.ApplicationPermissionException;
  3. import com.atlassian.crowd.exception.InvalidAuthenticationException;
  4. import com.atlassian.crowd.exception.OperationFailedException;
  5. import com.atlassian.crowd.exception.UserNotFoundException;
  6. import com.atlassian.crowd.model.user.ImmutableUser;
  7. import org.assertj.core.api.Assertions;
  8. import org.junit.Before;
  9. import org.junit.Test;
  10. import org.mockito.MockedStatic;
  11. import org.mockito.Mockito;
  12. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  13. public class CrowdUserDetailsServiceTest {
  14. private ImmutableUser user;
  15. @Before
  16. public void setUp() {
  17. user = new ImmutableUser(0, "foo", "foo bar", "foo.bar@baz.com", true, "foo", "bar", null);
  18. }
  19. @Test
  20. public void testCrowdUserDetailsService() {
  21. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  22. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  23. Assertions.assertThatThrownBy(() -> s.loadUserByUsername("foo")).isInstanceOf(UsernameNotFoundException.class);
  24. }
  25. @Test
  26. public void testLoadUserByUsername() {
  27. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  28. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  29. try {
  30. Mockito.when(config.getUser("foo")).thenReturn(user);
  31. } catch (UserNotFoundException | OperationFailedException | ApplicationPermissionException
  32. | InvalidAuthenticationException e) {
  33. e.printStackTrace();
  34. }
  35. Mockito.when(config.isGroupMember("foo")).thenReturn(Boolean.TRUE);
  36. try (MockedStatic<hudson.model.User> utilities = Mockito.mockStatic(hudson.model.User.class)) {
  37. utilities.when(() -> hudson.model.User.getById("foo", false))
  38. .thenReturn(null);
  39. s.loadUserByUsername("foo");
  40. }
  41. Mockito.verify(config).getAuthoritiesForUser("foo");
  42. }
  43. @Test
  44. public void testLoadUserByUsernameEx1() throws UserNotFoundException, OperationFailedException,
  45. ApplicationPermissionException, InvalidAuthenticationException {
  46. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  47. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  48. Mockito.when(config.isGroupMember("foo")).thenReturn(Boolean.TRUE);
  49. Mockito.when(config.getUser("foo")).thenThrow(UserNotFoundException.class);
  50. Assertions.assertThatThrownBy(() -> s.loadUserByUsername("foo")).isInstanceOf(UsernameNotFoundException.class);
  51. }
  52. @Test
  53. public void testLoadUserByUsernameEx2() throws UserNotFoundException, OperationFailedException,
  54. ApplicationPermissionException, InvalidAuthenticationException {
  55. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  56. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  57. Mockito.when(config.isGroupMember("foo")).thenReturn(Boolean.TRUE);
  58. Mockito.when(config.getUser("foo")).thenThrow(ApplicationPermissionException.class);
  59. Assertions.assertThatThrownBy(() -> s.loadUserByUsername("foo"))
  60. .isInstanceOf(UsernameNotFoundException.class);
  61. }
  62. @Test
  63. public void testLoadUserByUsernameEx3() throws UserNotFoundException, OperationFailedException,
  64. ApplicationPermissionException, InvalidAuthenticationException {
  65. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  66. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  67. Mockito.when(config.isGroupMember("foo")).thenReturn(Boolean.TRUE);
  68. Mockito.when(config.getUser("foo")).thenThrow(InvalidAuthenticationException.class);
  69. Assertions.assertThatThrownBy(() -> s.loadUserByUsername("foo"))
  70. .isInstanceOf(UsernameNotFoundException.class);
  71. }
  72. @Test
  73. public void testLoadUserByUsernameEx4() throws UserNotFoundException, OperationFailedException,
  74. ApplicationPermissionException, InvalidAuthenticationException {
  75. CrowdConfigurationService config = Mockito.mock(CrowdConfigurationService.class);
  76. CrowdUserDetailsService s = new CrowdUserDetailsService(config);
  77. Mockito.when(config.isGroupMember("foo")).thenReturn(Boolean.TRUE);
  78. Mockito.when(config.getUser("foo")).thenThrow(OperationFailedException.class);
  79. Assertions.assertThatThrownBy(() -> s.loadUserByUsername("foo")).isInstanceOf(UsernameNotFoundException.class);
  80. }
  81. }