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)));
 }
Esempio n. 8
0
 public VersionEntry(MilestoneObject milestone, IDictionary <string, IList <string> > entries)
 {
     Title       = milestone.Milestone?.Title;
     ReleaseDate = milestone.Milestone?.ClosedAt;
     Entries     = entries;
 }