public void Yields_Correct_Lines()
        {
            var lines = ProcessExtensions.ExecuteAndRead(null, false, false, null, TestExe).ToList();

            lines.ShouldBe(
                new[] {
                "aaa",
                "bbb",
                "",
                "ccc",
            });
        }
Ejemplo n.º 2
0
        public IEnumerable <GitCommitInfo> RevList(int maxCount, IEnumerable <GitRev> revs)
        {
            Guard.NotNull(revs, nameof(revs));
            revs = revs.ToList();
            if (!revs.Any())
            {
                throw new ArgumentException("Empty", nameof(revs));
            }
            if (revs.Any(rev => rev == null))
            {
                throw new ArgumentException("Null item", nameof(revs));
            }

            if (maxCount < -1)
            {
                throw new ArgumentOutOfRangeException(nameof(maxCount));
            }

            var args =
                new List <string>()
            {
                "-C", Path, "rev-list", "--format=fuller", "--date=iso-strict", "--parents",
            };

            if (maxCount >= 0)
            {
                args.Add($"--max-count={maxCount}");
            }

            args.AddRange(revs.Select(rev => rev.ToString()));

            try
            {
                return
                    (ParseRevList(
                         ProcessExtensions.ExecuteAndRead(
                             null, false, true, null,
                             "git", args.ToArray())
                         .GetEnumerator()));
            }

            catch (ProcessExecuteException pex)
            {
                throw new GitException(pex.Result);
            }
        }
 public void Throws_ProcessExecuteException_On_Unsuccessful_ExitCode()
 {
     Should.Throw <ProcessExecuteException>(() =>
                                            ProcessExtensions.ExecuteAndRead(null, false, false, null, TestExe, "99").ToList());
 }