PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/jira-project/jira-components/jira-tests-parent/jira-tests-unit/src/test/java/com/atlassian/jira/imports/project/mapper/TestUserMapper.java

https://bitbucket.org/ahmed_bilal_360factors/jira7-core
Java | 240 lines | 192 code | 41 blank | 7 comment | 4 complexity | 524607c8aa25487d29cd3252112b3b52 MD5 | raw file
Possible License(s): Apache-2.0
  1. package com.atlassian.jira.imports.project.mapper;
  2. import com.atlassian.jira.external.beans.ExternalUser;
  3. import com.atlassian.jira.user.util.UserUtil;
  4. import org.junit.Test;
  5. import org.junit.runner.RunWith;
  6. import org.mockito.Mockito;
  7. import org.mockito.runners.MockitoJUnitRunner;
  8. import static org.junit.Assert.assertEquals;
  9. import static org.junit.Assert.assertTrue;
  10. import static org.junit.Assert.fail;
  11. /**
  12. * @since v3.13
  13. */
  14. @RunWith(MockitoJUnitRunner.class)
  15. public class TestUserMapper {
  16. @Test
  17. public void testRegisterExternalUser() throws Exception {
  18. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  19. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  20. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  21. UserMapper userMapper = new UserMapper(userUtil) {
  22. public boolean userExists(final String userName) {
  23. return true;
  24. }
  25. };
  26. userMapper.registerOldValue(externalUser1);
  27. userMapper.registerOldValue(externalUser2);
  28. assertEquals(2, userMapper.getRegisteredOldIds().size());
  29. assertEquals(externalUser1, userMapper.getExternalUser("dudeKey"));
  30. assertEquals(externalUser2, userMapper.getExternalUser("duderKey"));
  31. }
  32. @Test
  33. public void testRegisterNullExternalUser() throws Exception {
  34. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  35. UserMapper userMapper = new UserMapper(userUtil);
  36. try {
  37. userMapper.registerOldValue(null);
  38. fail("should throw IAE");
  39. } catch (IllegalArgumentException e) {
  40. // expected
  41. }
  42. assertEquals(0, userMapper.getRegisteredOldIds().size());
  43. }
  44. @Test
  45. public void testFlagAsMandatorySimple() throws Exception {
  46. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  47. UserMapper userMapper = new UserMapper(userUtil);
  48. userMapper.flagUserAsMandatory("dude");
  49. userMapper.flagUserAsMandatory("duder");
  50. assertEquals(2, userMapper.getRequiredOldIds().size());
  51. assertTrue(userMapper.getRequiredOldIds().contains("dude"));
  52. assertTrue(userMapper.getRequiredOldIds().contains("duder"));
  53. }
  54. @Test
  55. public void testFlagAsMandatoryOverridesInUse() throws Exception {
  56. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  57. UserMapper userMapper = new UserMapper(userUtil) {
  58. public boolean userExists(final String userName) {
  59. return false;
  60. }
  61. };
  62. userMapper.flagUserAsInUse("dude");
  63. assertEquals(1, userMapper.getUnmappedUsersInUse().size());
  64. userMapper.flagUserAsMandatory("dude");
  65. // This should remove "dude" from In Use
  66. assertEquals(0, userMapper.getUnmappedUsersInUse().size());
  67. assertEquals(1, userMapper.getRequiredOldIds().size());
  68. assertTrue(userMapper.getRequiredOldIds().contains("dude"));
  69. }
  70. @Test
  71. public void testGetUnmappedMandatoryUsers() throws Exception {
  72. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  73. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  74. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  75. UserMapper userMapper = new UserMapper(userUtil) {
  76. public boolean userExists(final String userKey) {
  77. return userKey.equals("dudeKey");
  78. }
  79. };
  80. userMapper.registerOldValue(externalUser1);
  81. userMapper.registerOldValue(externalUser2);
  82. userMapper.flagUserAsMandatory("dudeKey");
  83. userMapper.flagUserAsMandatory("duderKey");
  84. assertEquals(1, userMapper.getUnmappedMandatoryUsers().size());
  85. assertEquals(externalUser2, userMapper.getUnmappedMandatoryUsers().iterator().next());
  86. }
  87. @Test
  88. public void testFlagAsInUseSimple() {
  89. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  90. UserMapper userMapper = new UserMapper(userUtil) {
  91. public boolean userExists(final String userName) {
  92. return "fred".equals(userName);
  93. }
  94. };
  95. userMapper.flagUserAsInUse("dude");
  96. userMapper.flagUserAsInUse("duder");
  97. userMapper.flagUserAsInUse("fred");
  98. userMapper.flagUserAsInUse("barney");
  99. userMapper.registerOldValue(new ExternalUser("barney", "", ""));
  100. assertEquals(3, userMapper.getUnmappedUsersInUse().size());
  101. assertTrue(userMapper.getUnmappedUsersInUse().contains(new ExternalUser("dude", "dude", "", "", "")));
  102. assertTrue(userMapper.getUnmappedUsersInUse().contains(new ExternalUser("duder", "duder", "", "", "")));
  103. assertTrue(userMapper.getUnmappedUsersInUse().contains(new ExternalUser("barney", "barney", "", "", "")));
  104. }
  105. @Test
  106. public void testFlagAsInUseButAlsoMandatory() {
  107. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  108. UserMapper userMapper = new UserMapper(userUtil) {
  109. public boolean userExists(final String userName) {
  110. return false;
  111. }
  112. };
  113. // Dude is required
  114. userMapper.flagUserAsMandatory("dude");
  115. // Now if dude is flagged as in use, this should be ignored.
  116. userMapper.flagUserAsInUse("dude");
  117. userMapper.flagUserAsInUse("duder");
  118. assertEquals(1, userMapper.getUnmappedUsersInUse().size());
  119. assertTrue(userMapper.getUnmappedUsersInUse().contains(new ExternalUser("duder", "duder", "", "", "")));
  120. }
  121. @Test
  122. public void testGetUnmappedRequiredUsersNoExternalUser() throws Exception {
  123. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  124. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  125. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  126. UserMapper userMapper = new UserMapper(userUtil) {
  127. public boolean userExists(final String userKey) {
  128. return "dudeKey".equals(userKey) || "duderKey".equals(userKey);
  129. }
  130. };
  131. userMapper.registerOldValue(externalUser1);
  132. userMapper.registerOldValue(externalUser2);
  133. userMapper.flagUserAsMandatory("dudeKey");
  134. userMapper.flagUserAsMandatory("duderKey");
  135. userMapper.flagUserAsMandatory("duderest");
  136. assertEquals(1, userMapper.getUnmappedMandatoryUsers().size());
  137. assertEquals(new ExternalUser("duderest", "duderest", "", "", ""), userMapper.getUnmappedMandatoryUsers().iterator().next());
  138. }
  139. @Test
  140. public void testGetUnmappedMandatoryUsersWithNoRegisteredOldValue() throws Exception {
  141. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  142. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  143. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  144. UserMapper userMapper = new UserMapper(userUtil) {
  145. public boolean userExists(final String userKey) {
  146. return "dudeKey".equals(userKey) || "barneyKey".equals(userKey);
  147. }
  148. };
  149. userMapper.registerOldValue(externalUser1);
  150. userMapper.registerOldValue(externalUser2);
  151. userMapper.flagUserAsMandatory("dudeKey");
  152. userMapper.flagUserAsMandatory("duderKey");
  153. userMapper.flagUserAsMandatory("fredKey");
  154. userMapper.flagUserAsMandatory("barneyKey");
  155. assertEquals(1, userMapper.getUnmappedMandatoryUsersWithNoRegisteredOldValue().size());
  156. assertEquals(new ExternalUser("fredKey", "fredKey", "", "", ""), userMapper.getUnmappedMandatoryUsersWithNoRegisteredOldValue().iterator().next());
  157. }
  158. @Test
  159. public void testGetUnmappedUsersInUseWithNoRegisteredOldValue() throws Exception {
  160. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  161. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  162. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  163. UserMapper userMapper = new UserMapper(userUtil) {
  164. public boolean userExists(final String userKey) {
  165. return "dudeKey".equals(userKey) || "barneyKey".equals(userKey);
  166. }
  167. };
  168. userMapper.registerOldValue(externalUser1);
  169. userMapper.registerOldValue(externalUser2);
  170. userMapper.flagUserAsInUse("dudeKey");
  171. userMapper.flagUserAsInUse("duderKey");
  172. userMapper.flagUserAsInUse("fredKey");
  173. userMapper.flagUserAsInUse("barneyKey");
  174. assertEquals(1, userMapper.getUnmappedUsersInUseWithNoRegisteredOldValue().size());
  175. assertEquals(new ExternalUser("fredKey", "fredKey", "", "", ""), userMapper.getUnmappedUsersInUseWithNoRegisteredOldValue().iterator().next());
  176. }
  177. @Test
  178. public void testGetUsersToAutoCreate() throws Exception {
  179. ExternalUser externalUser1 = new ExternalUser("dudeKey", "dude", "Dude McMan", "dude@test.com", "dude");
  180. ExternalUser externalUser2 = new ExternalUser("duderKey", "duder", "Duder McMan", "duder@test.com", "duder");
  181. final UserUtil userUtil = Mockito.mock(UserUtil.class);
  182. UserMapper userMapper = new UserMapper(userUtil) {
  183. public boolean userExists(final String userName) {
  184. return "bettyKey".equals(userName) || "wilmaKey".equals(userName);
  185. }
  186. };
  187. userMapper.registerOldValue(externalUser1);
  188. userMapper.registerOldValue(externalUser2);
  189. userMapper.flagUserAsInUse("dudeKey");
  190. userMapper.flagUserAsMandatory("duderKey");
  191. userMapper.flagUserAsInUse("fredKey");
  192. userMapper.flagUserAsMandatory("barneyKey");
  193. userMapper.flagUserAsInUse("wilmaKey");
  194. userMapper.flagUserAsMandatory("bettyKey");
  195. assertEquals(2, userMapper.getUsersToAutoCreate().size());
  196. assertTrue(userMapper.getUsersToAutoCreate().contains(externalUser1));
  197. assertTrue(userMapper.getUsersToAutoCreate().contains(externalUser2));
  198. }
  199. }