public void IntegrationTest()
        {
            DeleteVersionsIfExistent(c_jiraProjectKey, "4.1.0", "4.1.1", "4.1.2", "4.2.0");

            // Create versions
            _service.CreateVersion(c_jiraProjectKey, "4.1.0", DateTime.Today.AddDays(1));
            _service.CreateSubsequentVersion(c_jiraProjectKey, "4\\.1\\..*", 3, DayOfWeek.Monday);
            _service.CreateSubsequentVersion(c_jiraProjectKey, "4\\.1\\..*", 3, DayOfWeek.Tuesday);
            _service.CreateVersion(c_jiraProjectKey, "4.2.0", DateTime.Today.AddDays(7));

            // Get latest unreleased version
            var versions = _service.FindUnreleasedVersions(c_jiraProjectKey, "4.1.").ToList();

            Assert.That(versions.Count(), Is.EqualTo(3));

            var versionToRelease = versions.First();

            Assert.That(versionToRelease.name, Is.EqualTo("4.1.0"));

            var versionToFollow = versions.Skip(1).First();

            Assert.That(versionToFollow.name, Is.EqualTo("4.1.1"));

            var versions2 = _service.FindUnreleasedVersions(c_jiraProjectKey, "4.2.");

            Assert.That(versions2.Count(), Is.EqualTo(1));

            var additionalVersion = versions2.First();

            Assert.That(additionalVersion.name, Is.EqualTo("4.2.0"));

            // Add issues to versionToRelease
            AddTestIssueToVersion("My Test", false, versionToRelease);
            AddTestIssueToVersion("My closed Test", true, versionToRelease);
            AddTestIssueToVersion("My multiple fixVersion Test", false, versionToRelease, additionalVersion);

            // Release version
            _service.ReleaseVersion(versionToRelease.id, versionToFollow.id);

            // Get latest unreleased version again
            versions = _service.FindUnreleasedVersions(c_jiraProjectKey, "4.1.").ToList();
            Assert.That(versions.Count(), Is.EqualTo(2));

            var versionThatFollowed = versions.First();

            Assert.That(versionThatFollowed.name, Is.EqualTo("4.1.1"));

            // Check whether versionThatFollowed has all the non-closed issues from versionToRelease
            var issues = _service.FindAllNonClosedIssues(versionThatFollowed.id);

            Assert.That(issues.Count(), Is.EqualTo(2));

            // Check whether the additionalVersion still has its issue
            additionalVersion = _service.FindUnreleasedVersions(c_jiraProjectKey, "4.2.").First();
            var additionalVersionIssues = _service.FindAllNonClosedIssues(additionalVersion.id);

            Assert.That(additionalVersionIssues.Count(), Is.EqualTo(1));

            DeleteVersionsIfExistent(c_jiraProjectKey, "4.1.0", "4.1.1", "4.1.2", "4.2.0");
        }
        public override bool Execute()
        {
            try
              {
            JiraRestClient restClient = new JiraRestClient (JiraUrl, Authenticator);
            IJiraProjectVersionService service = new JiraProjectVersionService (restClient);
            IJiraProjectVersionFinder finder = new JiraProjectVersionFinder(restClient);

            var versions = finder.FindVersions (JiraProjectKey, "(?s).*");
            var jiraProject = versions.Where(x => x.name == VersionNumber).DefaultIfEmpty().First();

            if (jiraProject != null)
            {
              if (jiraProject.released != null)
              {
            if (jiraProject.released.Value)
              throw new JiraException ("The Version '" + VersionNumber + "' got already released in Jira.");
              }

              CreatedVersionID = jiraProject.id;
              return true;
            }

            CreatedVersionID = service.CreateVersion (JiraProjectKey, VersionNumber, null);
            return true;
              }
              catch (Exception ex)
              {
            Log.LogErrorFromException (ex);
            return false;
              }
        }
Example #3
0
        public override bool Execute()
        {
            try
            {
                JiraRestClient             restClient = new JiraRestClient(JiraUrl, Authenticator);
                IJiraProjectVersionService service    = new JiraProjectVersionService(restClient);
                IJiraProjectVersionFinder  finder     = new JiraProjectVersionFinder(restClient);
                var _jiraProjectVersionRepairer       = new JiraProjectVersionRepairer(service, finder);

                var versions    = finder.FindVersions(JiraProjectKey, "(?s).*").ToList();
                var jiraProject = versions.Where(x => x.name == VersionNumber).DefaultIfEmpty().First();

                if (jiraProject != null)
                {
                    if (jiraProject.released != null)
                    {
                        if (jiraProject.released.Value)
                        {
                            throw new JiraException("The Version '" + VersionNumber + "' got already released in Jira.");
                        }
                    }

                    CreatedVersionID = jiraProject.id;
                    return(true);
                }

                CreatedVersionID = service.CreateVersion(JiraProjectKey, VersionNumber, null);

                _jiraProjectVersionRepairer.RepairVersionPosition(CreatedVersionID);

                return(true);
            }
            catch (Exception ex)
            {
                Log.LogErrorFromException(ex);
                return(false);
            }
        }