From be7e1ff11231da4cd1fb4e1a8f16f32fa8c887cb Mon Sep 17 00:00:00 2001 From: Martin Etmajer Date: Thu, 23 Jan 2020 18:17:49 +0100 Subject: [PATCH] Re-add document generation notification events to Jira (#45) --- src/org/ods/usecase/JiraUseCase.groovy | 1 - .../ods/usecase/LeVADocumentUseCase.groovy | 89 +++++++++++----- .../usecase/LeVADocumentUseCaseSpec.groovy | 100 ++++++++++++------ 3 files changed, 129 insertions(+), 61 deletions(-) diff --git a/src/org/ods/usecase/JiraUseCase.groovy b/src/org/ods/usecase/JiraUseCase.groovy index 34d7d2738..4be1413e4 100644 --- a/src/org/ods/usecase/JiraUseCase.groovy +++ b/src/org/ods/usecase/JiraUseCase.groovy @@ -137,7 +137,6 @@ class JiraUseCase { return result.issues.collectEntries { issue -> def number = issue.fields[numberKey]?.trim() - def content = issue.renderedFields[contentFieldKey] if (content.contains(" + def documentTypeName = DOCUMENT_TYPE_NAMES[DocumentType.OVERALL_TIR as String] + def metadata = this.getDocumentMetadata(documentTypeName, project) + + def documentType = DocumentType.TIR as String + def uri = this.createOverallDocument("Overall-TIR-Cover", documentType, metadata, project) { data -> // Append another section for the Jenkins build log data.sections << [ heading: "Jenkins Build Log" @@ -1167,6 +1197,9 @@ class LeVADocumentUseCase extends DocGenUseCase { log: this.jenkins.getCurrentBuildLogAsText() ] } + + this.jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${documentTypeName} has been generated and is available at: ${uri}.") + return uri } Map getDocumentMetadata(String documentTypeName, Map project, Map repo = null) { diff --git a/test/org/ods/usecase/LeVADocumentUseCaseSpec.groovy b/test/org/ods/usecase/LeVADocumentUseCaseSpec.groovy index c970aa682..611d82b1d 100644 --- a/test/org/ods/usecase/LeVADocumentUseCaseSpec.groovy +++ b/test/org/ods/usecase/LeVADocumentUseCaseSpec.groovy @@ -119,6 +119,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createCS(project) @@ -134,7 +135,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -160,6 +162,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createDSD(project) @@ -173,7 +176,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -200,6 +204,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createDTP(project) @@ -211,7 +216,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * jira.getAutomatedUnitTestIssues(project.id) >> testIssues 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -239,6 +245,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createDTP(project) @@ -250,7 +257,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * jira.getAutomatedUnitTestIssues(project.id) >> testIssues 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -292,7 +300,6 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] - def document = "myDocument".bytes def testIssues = createJiraTestIssues() when: @@ -307,7 +314,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { 1 * jira.matchJiraTestIssuesAgainstTestResults(testIssues, testResults, _, _) //1 * usecase.computeTestDiscrepancies("Development Tests", testIssues) 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project, repo) - 1 * usecase.createDocument(documentType, project, repo, _, files, _, null) >> document + 1 * usecase.createDocument(documentType, project, repo, _, files, _, null) _ * util.getBuildParams() >> buildParams cleanup: @@ -353,7 +360,6 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] - def document = "myDocument".bytes def testIssues = createJiraTestIssues() when: @@ -368,7 +374,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { 1 * jira.matchJiraTestIssuesAgainstTestResults(testIssues, testResults, _, _) //1 * usecase.computeTestDiscrepancies("Development Tests", testIssues) 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project, repo) - 1 * usecase.createDocument(documentType, project, repo, _, files, _, null) >> document + 1 * usecase.createDocument(documentType, project, repo, _, files, _, null) _ * util.getBuildParams() >> buildParams } @@ -395,6 +401,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createFTP(project) @@ -407,7 +414,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { 1 * jira.getAutomatedAcceptanceTestIssues(project.id) >> testIssues 1 * jira.getAutomatedIntegrationTestIssues(project.id) >> testIssues 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -453,8 +461,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] - def document = "myDocument".bytes def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createFTR(project, null, data) @@ -468,7 +476,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { 1 * jira.getAutomatedIntegrationTestIssues(project.id) >> testIssues 2 * jira.matchJiraTestIssuesAgainstTestResults(testIssues, testResults, _, _) 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, files, null, null) >> document + 1 * usecase.createDocument(documentType, project, null, _, files, null, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams cleanup: @@ -497,6 +506,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createFS(project) @@ -516,7 +526,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -543,6 +554,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createIVP(project) @@ -554,7 +566,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * jira.getAutomatedInstallationTestIssues(project.id) >> testIssues 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -596,8 +609,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] - def document = "myDocument".bytes def testIssues = createJiraTestIssues() + def uri = "http://nexus" when: usecase.createIVR(project, null, data) @@ -610,7 +623,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { 1 * jira.getAutomatedInstallationTestIssues(project.id) >> testIssues 1 * jira.matchJiraTestIssuesAgainstTestResults(testIssues, testResults, _, _) 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, files, null, null) >> document + 1 * usecase.createDocument(documentType, project, null, _, files, null, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams cleanup: @@ -639,6 +653,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createSCP(project) @@ -649,7 +664,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -676,6 +692,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createSCP(project) @@ -686,7 +703,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -848,6 +866,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createTIP(project) @@ -858,7 +877,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -885,6 +905,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createTIP(project) @@ -895,7 +916,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -1002,6 +1024,7 @@ class LeVADocumentUseCaseSpec extends SpecHelper { // Stubbed Method Responses def buildParams = createBuildEnvironment(env) def chapterData = ["sec1": "myContent"] + def uri = "http://nexus" when: usecase.createURS(project) @@ -1022,7 +1045,8 @@ class LeVADocumentUseCaseSpec extends SpecHelper { then: 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) + 1 * usecase.createDocument(documentType, project, null, _, [:], _, null) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -1043,17 +1067,20 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def project = createProject() // Argument Constraints - def documentType = LeVADocumentUseCase.DocumentType.OVERALL_DTR as String + def documentType = LeVADocumentUseCase.DocumentType.DTR as String + def documentTypeName = LeVADocumentUseCase.DocumentType.OVERALL_DTR as String // Stubbed Method Responses def buildParams = createBuildEnvironment(env) + def uri = "http://nexus" when: usecase.createOverallDTR(project) then: - 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) + 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName], project) + 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -1074,17 +1101,20 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def project = createProject() // Argument Constraints - def documentType = LeVADocumentUseCase.DocumentType.OVERALL_SCR as String + def documentType = LeVADocumentUseCase.DocumentType.SCR as String + def documentTypeName = LeVADocumentUseCase.DocumentType.OVERALL_SCR as String // Stubbed Method Responses def buildParams = createBuildEnvironment(env) + def uri = "http://nexus" when: usecase.createOverallSCR(project) then: - 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) + 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName], project) + 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -1105,17 +1135,20 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def project = createProject() // Argument Constraints - def documentType = LeVADocumentUseCase.DocumentType.OVERALL_SDS as String + def documentType = LeVADocumentUseCase.DocumentType.SDS as String + def documentTypeName = LeVADocumentUseCase.DocumentType.OVERALL_SDS as String // Stubbed Method Responses def buildParams = createBuildEnvironment(env) + def uri = "http://nexus" when: usecase.createOverallSDS(project) then: - 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) + 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName], project) + 1 * usecase.createOverallDocument("Overall-Cover", documentType, _, project) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams } @@ -1136,17 +1169,20 @@ class LeVADocumentUseCaseSpec extends SpecHelper { def project = createProject() // Argument Constraints - def documentType = LeVADocumentUseCase.DocumentType.OVERALL_TIR as String + def documentType = LeVADocumentUseCase.DocumentType.TIR as String + def documentTypeName = LeVADocumentUseCase.DocumentType.OVERALL_TIR as String // Stubbed Method Responses def buildParams = createBuildEnvironment(env) + def uri = "http://nexus" when: usecase.createOverallTIR(project) then: - 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentType], project) - 1 * usecase.createOverallDocument("Overall-TIR-Cover", documentType, _, project, _) + 1 * usecase.getDocumentMetadata(LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName], project) + 1 * usecase.createOverallDocument("Overall-TIR-Cover", documentType, _, project, _) >> uri + 1 * jira.notifyLeVaDocumentTrackingIssue(project.id, documentType, "A new ${LeVADocumentUseCase.DOCUMENT_TYPE_NAMES[documentTypeName]} has been generated and is available at: ${uri}.") _ * util.getBuildParams() >> buildParams }