Exemplo n.º 1
0
        public void Statistics()
        {
            var jsonIssue = new JsonJiraIssue
            {
                Id     = "1",
                Key    = "JIRA-1",
                Fields = new JsonJiraIssueFields
                {
                    Created = "2020-01-01T12:00:00.000-0500",
                    // 1, 2, 3, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 20
                    ResolutionDate = "2020-01-15T12:00:01.746-0500",
                    Creator        = John,
                    Status         = Done,
                    FixVersions    = new List <JsonJiraFixVersion>
                    {
                        Release1
                    },
                    Components = new List <JsonJiraComponent>(),
                    Sprint     = new JsonJiraSprint[0],
                    IssueType  = new JsonJiraIssueType
                    {
                        Id   = "1",
                        Name = "Story"
                    }
                },
                Changelog = new List <JsonJiraIssueChangelogEvent>
                {
                    MakeIssueChange(John, "2020-01-02T12:00:00.000-0500", Open, Todo),
                    MakeIssueChange(John, "2020-01-03T12:00:00.000-0500", Todo, Work),
                    MakeIssueChange(Mike, "2020-01-07T12:00:00.000-0500", false, true), // john +
                    MakeIssueChange(Jane, "2020-01-08T12:00:00.000-0500", true, false),
                    MakeIssueChange(Mike, "2020-01-10T12:00:00.000-0500", Work, Rejected),
                    MakeIssueChange(Mike, "2020-01-13T12:00:00.000-0500", Rejected, Todo),
                    MakeIssueChange(John, "2020-01-14T12:00:00.000-0500", Todo, Work),
                    MakeIssueChange(John, "2020-01-15T12:00:00.000-0500", Work, Done),
                }
            };

            var opts = new JiraOptions
            {
                IsWorkDayPredicate = date => false == DateSystem.IsWeekend(date, CountryCode.CA)
            };

            var issue = JiraIssueAssembler.Assemble(opts, jsonIssue, AllStatuses, AllFixVersions);

            Assert.Equal(ParseDateTime("2020-01-01T12:00:00.000-0500"), issue.Created);
            Assert.Equal(ParseDateTime("2020-01-15T12:00:00.000-0500"), issue.Finished);

            Assert.Equal(14, issue.CycleTime);

            var statistics = issue.Statistics;

            Assert.Equal(TimeSpan.FromDays(3), statistics.CategoryDurations[JiraStatusCategory.New]);
            Assert.Equal(TimeSpan.FromDays(5), statistics.CategoryDurations[JiraStatusCategory.InProgress]);
            Assert.Equal(TimeSpan.FromDays(1), statistics.CategoryDurations[JiraStatusCategory.OnHold]);
            Assert.True(statistics.CategoryDurations[JiraStatusCategory.Done] > TimeSpan.Zero);

            Assert.Equal(TimeSpan.FromDays(3), statistics.PersonDurations[John.EmailAddress]);
            Assert.Equal(TimeSpan.FromDays(2), statistics.PersonDurations[Jane.EmailAddress]);
        }
Exemplo n.º 2
0
 private JiraIssueAssembler(JiraOptions options, JsonJiraIssue jsonIssue, JiraStatusCollection statuses, JiraFixVersionCollection versions)
 {
     this._options    = options;
     this._jsonIssue  = jsonIssue;
     this._statuses   = statuses;
     this._versions   = versions;
     this._components = new JiraComponentCollection();
     this._issueTypes = new JiraIssueTypeCollection();
     this._issue      = new JiraIssue();
 }
Exemplo n.º 3
0
 public static JiraIssue Assemble(JiraOptions options, JsonJiraIssue jsonIssue, JiraStatusCollection statuses, JiraFixVersionCollection versions)
 {
     return(new JiraIssueAssembler(options, jsonIssue, statuses, versions).Assemble());
 }