PageRenderTime 33ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/resources/com/onresolve/jira/groovy/test/TestUpdateBlockedIssues.groovy

https://bitbucket.org/sorin/jira-plugin-intellij
Groovy | 99 lines | 79 code | 18 blank | 2 comment | 3 complexity | 5ade623f01d1fca154576134195891ed MD5 | raw file
  1. package com.onresolve.jira.groovy.test
  2. import com.atlassian.jira.bc.project.component.ProjectComponentManager
  3. import com.atlassian.jira.issue.Issue
  4. import com.atlassian.jira.issue.MutableIssue
  5. import com.atlassian.jira.issue.comments.Comment
  6. import com.atlassian.jira.issue.comments.CommentManager
  7. import com.atlassian.jira.issue.link.IssueLinkManager
  8. import com.atlassian.jira.project.version.VersionManager
  9. import com.onresolve.jira.groovy.canned.utils.CannedScriptUtils
  10. import com.onresolve.jira.groovy.canned.workflow.postfunctions.UpdateBlockedIssues
  11. import org.apache.log4j.Category
  12. import org.junit.After
  13. import org.junit.Before
  14. import org.junit.Test
  15. import static junit.framework.Assert.*
  16. import com.atlassian.jira.component.ComponentAccessor
  17. import com.atlassian.jira.issue.link.IssueLinkTypeManager
  18. class TestUpdateBlockedIssues extends BaseSubTaskTest {
  19. Category log = Category.getInstance(this.class)
  20. MutableIssue newIssue
  21. Issue issue
  22. IssueLinkManager linkMgr = componentManager.getIssueLinkManager()
  23. def blockLinkTypeId
  24. CommentManager commentManager = componentManager.getCommentManager()
  25. def issueLinkTypeManager = ComponentAccessor.getComponentOfType(IssueLinkTypeManager.class)
  26. @Before
  27. public void setUp() {
  28. log.debug ("setUp")
  29. log.debug ("issueType: ${issueType.getName()}")
  30. assertNotNull(project)
  31. issue = createIssue()
  32. newIssue = createIssue()
  33. // issue blocks newIssue
  34. def hasBlockers = issueLinkTypeManager.getIssueLinkTypes()*.name.contains("Blockers")
  35. if (!hasBlockers) {
  36. issueLinkTypeManager.createIssueLinkType("Blockers", "blocks", "is blocked by", null)
  37. }
  38. blockLinkTypeId = issueLinkTypeManager.getIssueLinkTypes().find{it.name == "Blockers"}.id
  39. linkMgr.createIssueLink(issue.id, newIssue.id, blockLinkTypeId, 0, adminUser)
  40. }
  41. private def Issue createIssue() {
  42. Issue issue = componentManager.getIssueFactory().getIssue()
  43. issue.setProject(project.getGenericValue())
  44. issue.setSummary "my summary"
  45. issue.setReporterId "admin"
  46. issue.setIssueType issueType.getGenericValue()
  47. issue.setPriorityId('2')
  48. ProjectComponentManager projectComponentManager = componentManager.getProjectComponentManager()
  49. VersionManager versionManager = componentManager.getVersionManager()
  50. issue.setComponents(projectComponentManager.findAllForProject(project.id).collect {it.genericValue})
  51. issue.setAffectedVersions(versionManager.getVersions(project.id))
  52. issue.setFixVersions(versionManager.getVersions(project.id))
  53. issueManager.createIssue(adminUser, issue);
  54. log.debug("Created issue: $issue")
  55. return issue
  56. }
  57. @After
  58. public void tearDown() {
  59. deleteIssue(issue)
  60. deleteIssue(newIssue)
  61. }
  62. @Test
  63. public void testUpdateIssues() {
  64. Map<String, Object> inputs = [
  65. issue: issue,
  66. (UpdateBlockedIssues.FIELD_LINK_TYPE) : "$blockLinkTypeId " + CannedScriptUtils.OUTWARD_FIELD_NAME,
  67. (UpdateBlockedIssues.FIELD_COMMENT): '$issue resolved',
  68. ] as Map<String, Object>
  69. log.debug ("inputs: $inputs")
  70. Map params = new UpdateBlockedIssues().doScript(inputs)
  71. Comment comment = commentManager.getComments(newIssue)?.first() as Comment
  72. assertNotNull (comment)
  73. assertEquals ("${issue.key} resolved", comment.body)
  74. // test that we don't get a comment going the other way with the cloners link
  75. def Long clonersLinkTypeId = issueLinkTypeManager.getIssueLinkTypes().find{it.name == "Cloners"}.id
  76. linkMgr.createIssueLink(newIssue.id, issue.id, clonersLinkTypeId, 0, adminUser)
  77. inputs['issue'] = newIssue
  78. new UpdateBlockedIssues().doScript(inputs)
  79. assertEquals ([], commentManager.getComments(issue))
  80. }
  81. }