PageRenderTime 44ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/jira-project/jira-components/jira-tests-parent/jira-tests-unit/src/test/java/com/atlassian/jira/web/action/admin/user/DeleteUserTest.java

https://bitbucket.org/ahmed_bilal_360factors/jira7-core
Java | 227 lines | 188 code | 39 blank | 0 comment | 0 complexity | 0a93d1fe763a7da1e90035762c569934 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.jira.web.action.admin.user;
  2. import com.atlassian.jira.bc.filter.SearchRequestService;
  3. import com.atlassian.jira.bc.portal.PortalPageService;
  4. import com.atlassian.jira.bc.project.component.ProjectComponent;
  5. import com.atlassian.jira.config.FeatureManager;
  6. import com.atlassian.jira.config.properties.ApplicationProperties;
  7. import com.atlassian.jira.junit.rules.MockitoMocksInContainer;
  8. import com.atlassian.jira.mock.component.MockComponentWorker;
  9. import com.atlassian.jira.plugin.user.PreDeleteUserErrorsManager;
  10. import com.atlassian.jira.plugin.user.WebErrorMessage;
  11. import com.atlassian.jira.project.Project;
  12. import com.atlassian.jira.project.ProjectManager;
  13. import com.atlassian.jira.security.JiraAuthenticationContext;
  14. import com.atlassian.jira.user.ApplicationUser;
  15. import com.atlassian.jira.user.UserDeleteVeto;
  16. import com.atlassian.jira.user.util.UserManager;
  17. import com.atlassian.jira.user.util.UserUtil;
  18. import com.atlassian.jira.util.BaseUrl;
  19. import com.atlassian.jira.util.I18nHelper;
  20. import com.atlassian.jira.util.NoopI18nHelper;
  21. import com.google.common.collect.ImmutableList;
  22. import com.google.common.collect.Lists;
  23. import com.google.common.collect.Maps;
  24. import org.junit.Rule;
  25. import org.junit.rules.RuleChain;
  26. import org.mockito.Mock;
  27. import java.util.Map;
  28. import static org.junit.Assert.assertEquals;
  29. import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
  30. import static org.mockito.Mockito.mock;
  31. import static org.mockito.Mockito.when;
  32. public class DeleteUserTest {
  33. final private ApplicationUser mockUser = mock(ApplicationUser.class);
  34. final private SearchRequestService mockSearchRequestService = mock(SearchRequestService.class, RETURNS_DEEP_STUBS);
  35. final private PortalPageService mockPortalPageService = mock(PortalPageService.class, RETURNS_DEEP_STUBS);
  36. final private UserUtil mockUserUtil = mock(UserUtil.class, RETURNS_DEEP_STUBS);
  37. final private UserDeleteVeto mockUserDeleteVeto = mock(UserDeleteVeto.class);
  38. private DeleteUser deleteUser;
  39. private Project mockProject;
  40. private String testKey;
  41. private String testName;
  42. private String testUserName;
  43. private int intCount;
  44. private long longCount;
  45. @Mock
  46. ProjectManager mockProjectManager;
  47. @Rule
  48. public final RuleChain mockContainer = MockitoMocksInContainer.forTest(this);
  49. @org.junit.Before
  50. public void setUp() throws Exception {
  51. final BaseUrl mockBaseUrlLocator = mock(BaseUrl.class);
  52. mockProject = mock(Project.class);
  53. final PreDeleteUserErrorsManager mockPreDeleteUserErrorsManager = mock(PreDeleteUserErrorsManager.class);
  54. final ApplicationProperties mockApplicationProperties = mock(ApplicationProperties.class);
  55. final JiraAuthenticationContext mockAuthenticationContext = mock(JiraAuthenticationContext.class);
  56. testUserName = "fred";
  57. testKey = "testKey";
  58. testName = "testName";
  59. final String testEncoding = "UTF-8";
  60. intCount = 1;
  61. longCount = 1;
  62. when(mockUser.getName()).thenReturn(testUserName);
  63. when(mockPreDeleteUserErrorsManager.getWarnings(mockUser)).thenReturn(emptyMessages());
  64. when(mockSearchRequestService.getNonPrivateFilters(mockUser).size()).thenReturn(0);
  65. when(mockSearchRequestService.getFiltersFavouritedByOthers(mockUser).size()).thenReturn(0);
  66. when(mockPortalPageService.getNonPrivatePortalPages(mockUser).size()).thenReturn(0);
  67. when(mockUserDeleteVeto.getCommentCountByAuthor(mockUser)).thenReturn(0L);
  68. when(mockUserUtil.getNumberOfAssignedIssuesIgnoreSecurity(mockUser, mockUser)).thenReturn(0L);
  69. when(mockUserUtil.getNumberOfReportedIssuesIgnoreSecurity(mockUser, mockUser)).thenReturn(0L);
  70. when(mockUserUtil.getComponentsUserLeads(mockUser).size()).thenReturn(0);
  71. when(mockUserUtil.getProjectsLeadBy(mockUser).size()).thenReturn(0);
  72. when(mockProject.getKey()).thenReturn(testKey);
  73. when(mockProject.getName()).thenReturn(testName);
  74. when(mockBaseUrlLocator.getBaseUrl()).thenReturn("");
  75. when(mockApplicationProperties.getEncoding()).thenReturn(testEncoding);
  76. I18nHelper i18nHelper = new NoopI18nHelper();
  77. when(mockAuthenticationContext.getI18nHelper()).thenReturn(i18nHelper);
  78. when(mockAuthenticationContext.getUser()).thenReturn(mockUser);
  79. new MockComponentWorker()
  80. .addMock(FeatureManager.class, mock(FeatureManager.class))
  81. .addMock(ApplicationProperties.class, mockApplicationProperties)
  82. .addMock(JiraAuthenticationContext.class, mockAuthenticationContext)
  83. .addMock(ProjectManager.class, mockProjectManager)
  84. .init();
  85. deleteUser = new DeleteUser(null, null, mockSearchRequestService, null, mockUserUtil, mockPortalPageService, null, null, mockUserDeleteVeto, mockPreDeleteUserErrorsManager, mockBaseUrlLocator) {
  86. @Override
  87. public ApplicationUser getApplicationUser() {
  88. return mockUser;
  89. }
  90. @Override
  91. public ApplicationUser getUser() {
  92. return mockUser;
  93. }
  94. @Override
  95. public UserManager.UserState getUserState() {
  96. return UserManager.UserState.NORMAL_USER;
  97. }
  98. };
  99. }
  100. private ImmutableList<WebErrorMessage> emptyMessages() {
  101. return ImmutableList.of();
  102. }
  103. @org.junit.Test
  104. public void testGetLinkableWarningsWithNonPrivateFilters() throws Exception {
  105. when(mockSearchRequestService.getNonPrivateFilters(mockUser).size()).thenReturn(intCount);
  106. Map<String, String> result = deleteUser.getLinkableWarnings();
  107. Map<String, String> expected = Maps.newHashMap();
  108. expected.put("admin.deleteuser.filters.created.counted{[" + intCount + "]}", "/secure/admin/filters/ViewSharedFilters.jspa?searchOwnerUserName=" + testUserName);
  109. assertEquals(expected, result);
  110. }
  111. @org.junit.Test
  112. public void testGetLinkableWarningsWithFavoriteFilters() throws Exception {
  113. when(mockSearchRequestService.getFiltersFavouritedByOthers(mockUser).size()).thenReturn(intCount);
  114. Map<String, String> result = deleteUser.getLinkableWarnings();
  115. Map<String, String> expected = Maps.newHashMap();
  116. expected.put("admin.deleteuser.filters.favourited.counted{[" + intCount + "]}", null);
  117. assertEquals(expected, result);
  118. }
  119. @org.junit.Test
  120. public void testGetLinkableWarningsWithNonPrivatePortalPages() throws Exception {
  121. when(mockPortalPageService.getNonPrivatePortalPages(mockUser).size()).thenReturn(intCount);
  122. Map<String, String> result = deleteUser.getLinkableWarnings();
  123. Map<String, String> expected = Maps.newHashMap();
  124. expected.put("admin.deleteuser.portalpages.created.counted{[" + intCount + "]}", "/secure/admin/dashboards/ViewSharedDashboards.jspa?searchOwnerUserName=" + testUserName);
  125. assertEquals(expected, result);
  126. }
  127. @org.junit.Test
  128. public void testGetLinkableWarningsWithComponentsUserLeads() throws Exception {
  129. when(mockUserUtil.getComponentsUserLeads(mockUser).size()).thenReturn(intCount);
  130. Map<String, String> result = deleteUser.getLinkableWarnings();
  131. Map<String, String> expected = Maps.newHashMap();
  132. expected.put("admin.deleteuser.components.lead.counted{[" + intCount + "]}", null);
  133. assertEquals(expected, result);
  134. }
  135. @org.junit.Test
  136. public void testGetLinkableErrorsWithNumberOfAssignedIssues() throws Exception {
  137. when(mockUserUtil.getNumberOfAssignedIssuesIgnoreSecurity(mockUser, mockUser)).thenReturn(longCount);
  138. Map<String, String> result = deleteUser.getLinkableErrors();
  139. Map<String, String> expected = Maps.newHashMap();
  140. expected.put("admin.deleteuser.assigned.issues.counted{[" + longCount + "]}", "/issues/?jql=assignee%20in%20(" + testUserName + ")%20ORDER%20BY%20priority%20ASC");
  141. assertEquals(expected, result);
  142. }
  143. @org.junit.Test
  144. public void testGetLinkableErrorsWithNumberOfReportedIssues() throws Exception {
  145. when(mockUserUtil.getNumberOfReportedIssuesIgnoreSecurity(mockUser, mockUser)).thenReturn(longCount);
  146. Map<String, String> result = deleteUser.getLinkableErrors();
  147. Map<String, String> expected = Maps.newHashMap();
  148. expected.put("admin.deleteuser.reported.issues.counted{[" + longCount + "]}", "/issues/?jql=reporter%20in%20(" + testUserName + ")%20ORDER%20BY%20priority%20ASC");
  149. assertEquals(expected, result);
  150. }
  151. @org.junit.Test
  152. public void testGetLinkableErrorsWithCommentCountByAuthor() throws Exception {
  153. when(mockUserDeleteVeto.getCommentCountByAuthor(mockUser)).thenReturn(longCount);
  154. Map<String, String> result = deleteUser.getLinkableErrors();
  155. Map<String, String> expected = Maps.newHashMap();
  156. expected.put("admin.deleteuser.issue.comments.counted{[" + longCount + "]}", null);
  157. assertEquals(expected, result);
  158. }
  159. @org.junit.Test
  160. public void testGetLinkableErrorsWithProjectsLead() throws Exception {
  161. when(mockUserUtil.getProjectsLeadBy(mockUser).size()).thenReturn(intCount);
  162. Map<String, String> result = deleteUser.getLinkableErrors();
  163. Map<String, String> expected = Maps.newHashMap();
  164. expected.put("admin.deleteuser.projects.lead.counted{[" + intCount + "]}", null);
  165. assertEquals(expected, result);
  166. }
  167. @org.junit.Test
  168. public void testGetProjectsUserLeadsError() throws Exception {
  169. when(mockUserUtil.getProjectsLeadBy(mockUser)).thenReturn(Lists.newArrayList(mockProject));
  170. Map<String, String> result = deleteUser.getProjectsUserLeadsError();
  171. Map<String, String> expected = Maps.newHashMap();
  172. expected.put(testName, "/plugins/servlet/project-config/" + testKey + "/summary");
  173. assertEquals(expected, result);
  174. }
  175. @org.junit.Test
  176. public void testGetComponentsUserLeadsWarning() throws Exception {
  177. final long testProjectId = 1L;
  178. final ProjectComponent mockProjectComponent = mock(ProjectComponent.class);
  179. when(mockProjectComponent.getProjectId()).thenReturn(testProjectId);
  180. when(mockProjectComponent.getName()).thenReturn(testName);
  181. when(mockProjectManager.getProjectObj(testProjectId)).thenReturn(mockProject);
  182. when(mockUserUtil.getComponentsUserLeads(mockUser)).thenReturn(Lists.newArrayList(mockProjectComponent));
  183. Map<String, String> result = deleteUser.getComponentsUserLeadsWarning();
  184. Map<String, String> expected = Maps.newHashMap();
  185. expected.put(testName, "/plugins/servlet/project-config/" + testKey + "/components");
  186. assertEquals(expected, result);
  187. }
  188. }