public void TestGetChangelogBy_WithoutMilestone() { IMarkdownParser markdownParser = new MarkdownParser(); MilestoneObject milestoneObject = new MilestoneObject(null, new PullRequest[] { }); Dictionary <string, IList <string> > entries = new Dictionary <string, IList <string> > { { "added", new[] { "first added entry", "second added entry", } }, }; VersionEntry versionEntry = new VersionEntry(milestoneObject, entries); string result = markdownParser.GetChangelogBy(versionEntry); string expected = "## UNKNOWN VERSION\n\n### added\n\n* first added entry\n* second added entry"; AreEqual(expected, result); }
public void TestGetChangelogBy_WithoutClosedMilestone() { IMarkdownParser markdownParser = new MarkdownParser(); Milestone milestone = new MilestoneBuilder { Title = "v1.2.3", }.Build(); MilestoneObject milestoneObject = new MilestoneObject(milestone, new PullRequest[] { }); Dictionary <string, IList <string> > entries = new Dictionary <string, IList <string> > { { "added", new[] { "first added entry", "second added entry", } }, }; VersionEntry versionEntry = new VersionEntry(milestoneObject, entries); string result = markdownParser.GetChangelogBy(versionEntry); string expected = "## v1.2.3 (OPEN)\n\n### added\n\n* first added entry\n* second added entry"; AreEqual(expected, result); }
public void TestGetChangelogBy_VersionEntryWithEmptyEntry() { IMarkdownParser markdownParser = new MarkdownParser(); Milestone milestone = new MilestoneBuilder { Title = "v1.2.3", ClosedAt = DateTimeOffset.ParseExact("01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(); MilestoneObject milestoneObject = new MilestoneObject(milestone, new PullRequest[] { }); Dictionary <string, IList <string> > entries = new Dictionary <string, IList <string> > { { "added", new string[0] }, { "changed", new[] { "first changed entry", "second changed entry", } }, }; VersionEntry versionEntry = new VersionEntry(milestoneObject, entries); string result = markdownParser.GetChangelogBy(versionEntry); string expected = "## v1.2.3 (1993-11-01)\n\n### changed\n\n* first changed entry\n* second changed entry"; AreEqual(expected, result); }
protected string CreateChangelogMarkdown([NotNull][ItemNotNull] IReadOnlyList <PullRequest> pullRequests) { IEnumerable <MilestoneObject> milestones = MilestoneObject.From(pullRequests); IList <VersionEntry> versionEntries = milestones.Select(CreateVersionEntry) .ToList(); string changelog = String.Join("\n\n\n", versionEntries.Select(markdownParser.GetChangelogBy) .ToList()); return(changelog); }
public void TestGetChangelogBy_VersionWithoutEntries() { IMarkdownParser markdownParser = new MarkdownParser(); Milestone milestone = new MilestoneBuilder { Title = "v1.2.3", ClosedAt = DateTimeOffset.ParseExact("01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(); MilestoneObject milestoneObject = new MilestoneObject(milestone, new PullRequest[] { }); Dictionary <string, IList <string> > entries = new Dictionary <string, IList <string> >(); VersionEntry versionEntry = new VersionEntry(milestoneObject, entries); string result = markdownParser.GetChangelogBy(versionEntry); AreEqual(String.Empty, result); }
public void TestFrom() { PullRequest pr1 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone1", ClosedAt = DateTimeOffset.ParseExact( "01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr2 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone1", ClosedAt = DateTimeOffset.ParseExact( "01.11.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr3 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr4 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr5 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone2", ClosedAt = DateTimeOffset.ParseExact( "15.09.1993", "dd.MM.yyyy", CultureInfo.InvariantCulture), }.Build(), }.Build(); PullRequest pr6 = new PullRequestBuilder { Milestone = new MilestoneBuilder { Title = "Milestone3", }.Build(), }.Build(); PullRequest pr7 = new PullRequestBuilder().Build(); IReadOnlyList <PullRequest> pullRequests = new[] { pr1, pr2, pr3, pr4, pr5, pr6, pr7, }; IList <MilestoneObject> result = MilestoneObject.From(pullRequests) .ToList(); AreEqual(4, result.Count()); AreEqual(null, result[0] .Milestone?.Title); AreEqual(1, result[0] .PullRequests.Count); AreEqual("Milestone3", result[1] .Milestone?.Title); AreEqual(1, result[1] .PullRequests.Count); AreEqual("Milestone1", result[2] .Milestone?.Title); AreEqual(2, result[2] .PullRequests.Count); AreEqual("Milestone2", result[3] .Milestone?.Title); AreEqual(3, result[3] .PullRequests.Count); }
private VersionEntry CreateVersionEntry([NotNull] MilestoneObject milestone) { return(new VersionEntry(milestone, GetChangelogEntriesForPullRequests(milestone.PullRequests))); }
public VersionEntry(MilestoneObject milestone, IDictionary <string, IList <string> > entries) { Title = milestone.Milestone?.Title; ReleaseDate = milestone.Milestone?.ClosedAt; Entries = entries; }