Exemplo n.º 1
0
        public void GetsStandardErrorFromConsole()
        {
            var consoleMock = new Mock <IConsoleWriter>();

            consoleMock.SetupGet(c => c.StandardError).Returns(TextWriter.Null);
            var exporter = new ConsoleExporter(consoleMock.Object);

            exporter.ExportParsedData(new ParsedData(VersionData.Parse("1.0.0"), new ReleaseNotesData()), "stderr", false);

            consoleMock.VerifyGet(c => c.StandardError, Times.Once);
        }
Exemplo n.º 2
0
        static void VersionTest()
        {
            Console.Write("Input Json File Path:");
            string path = Console.ReadLine();

            VersionData data = VersionData.Parse(JObject.Parse(File.ReadAllText(path)));

            Console.WriteLine(data.Assets);
            foreach (var data2 in data.Libraries)
            {
                Console.WriteLine(data2.GetFileInfo().Url);
            }

            Console.WriteLine(data.Id);
            Console.WriteLine(data.InheritsFrom);
            Console.WriteLine(data.Jar);
        }
Exemplo n.º 3
0
        public ParsedData ParseVersionFromCommits(IEnumerable <CommitInfo> commits)
        {
            if (commits is null)
            {
                throw new ArgumentNullException(nameof(commits));
            }

            VersionData?version          = null;
            var         releaseNotes     = new ReleaseNotesData();
            var         firstCommit      = true;
            var         firstCommitIsTag = false;
            var         metadata         = string.Empty;
            var         commitCount      = 0;

            foreach (var commit in commits)
            {
                this._writer.AddIndent();
                var parsedCommit = ParseConventionalCommit(commit, firstCommit || !commit.IsTag);
                if (parsedCommit != null || commit.IsTag)
                {
                    version = this._versionParser.ParseVersion(version, parsedCommit ?? commit);
                }

                if (parsedCommit != null && (firstCommit || !commit.IsTag))
                {
                    this._releaseNoteParser.ParseReleaseNotes(releaseNotes, parsedCommit);
                }

                this._writer.RemoveIndent();

                if (firstCommit)
                {
                    if (!commit.IsTag && commit.RawText.StartsWith("Merge ", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    firstCommitIsTag = commit.IsTag;
                    metadata         = commit.Sha;
                }

                if (!firstCommit && commit.IsTag)
                {
                    break;
                }

                if (firstCommit || !commit.IsTag)
                {
                    commitCount++;
                }

                firstCommit = false;
            }

            if (version?.IsEmpty() != false)
            {
                if (!string.IsNullOrEmpty(this.config.Tag))
                {
                    version = VersionData.Parse(this.config.NextVersion + "-" + this.config.Tag);
                    if (firstCommitIsTag)
                    {
                        version.Weight = 1;
                    }
                }
                else
                {
                    version = VersionData.Parse(this.config.NextVersion);
                }
            }

            var versionBumped = false;

            if (!firstCommitIsTag)
            {
                versionBumped = ForceNextVersion(version);
            }
            else if (version.MajorMinorPatch == "0.0.0")
            {
                version.SetNextBump(VersionBump.None, true);
                versionBumped = ForceNextVersion(version);
            }

            version.Metadata = metadata;
            version.Commits  = commitCount;
            if (!firstCommitIsTag && versionBumped &&
                !string.IsNullOrEmpty(this.config.Tag) &&
                !string.Equals(this.config.Tag, version.PreReleaseLabel, StringComparison.OrdinalIgnoreCase) &&
                string.Compare(this.config.Tag, version.PreReleaseLabel, StringComparison.OrdinalIgnoreCase) > 0)
            {
                version.PreReleaseLabel = this.config.Tag;
                version.Weight          = Math.Max(version.Weight ?? 1, 1);
            }

            return(new ParsedData(version, releaseNotes));
        }
Exemplo n.º 4
0
        public void ThrowsNotSupportedExceptionOnInvalidValues([Values("help.json", "stdwarn", "release.md")] string output)
        {
            var consoleMock = new Mock <IConsoleWriter>();

            consoleMock.SetupGet(c => c.StandardError).Returns(TextWriter.Null);
            consoleMock.SetupGet(c => c.StandardOut).Returns(TextWriter.Null);
            var exporter = new ConsoleExporter(consoleMock.Object);

            Should.Throw <NotSupportedException>(() =>
                                                 exporter.ExportParsedData(new ParsedData(VersionData.Parse("1.0.0"), new ReleaseNotesData()), output, false));

            consoleMock.VerifyGet(c => c.StandardOut, Times.Never);
            consoleMock.VerifyGet(c => c.StandardError, Times.Never);
        }