Пример #1
0
        string Exec(ArgumentsBuilder args)
        {
            var pi = new ProcessStartInfo {
                FileName               = GetHgExePath(),
                Arguments              = args.ToString(),
                UseShellExecute        = false,
                RedirectStandardOutput = true,
                RedirectStandardError  = true,
                WorkingDirectory       = _repoPath,
                CreateNoWindow         = true
            };

            _logger.PutToFile("[hg cli] " + pi.FileName + " " + pi.Arguments);

            using (var p = Process.Start(pi)) {
                string stdOut = p.StandardOutput.ReadToEnd();
                string stdErr = p.StandardError.ReadToEnd();
                p.WaitForExit();
                if (p.ExitCode != 0)
                {
                    throw new Exception(stdErr);
                }
                return(stdOut);
            }
        }
        public void Test_Value_With_File()
        {
            // Arrange.
            var args = new ArgumentsBuilder()
                       .Value(new FileInfo(@"C:\test\testfile.txt"));

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal(@"""C:\test\testfile.txt""", actual);
        }
        public void Test_Arg()
        {
            // Arrange.
            var args = new ArgumentsBuilder()
                       .Arg("flag", "value");

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal("-flag value", actual);
        }
        public void Test_ArgIf(bool precondition, string expected)
        {
            // Arrange.
            var args = new ArgumentsBuilder()
                       .ArgIf(precondition, "flag", "value");

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal(expected, actual);
        }
        public void Test_Value()
        {
            // Arrange.
            var args = new ArgumentsBuilder()
                       .Value("value");

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal("value", actual);
        }
        public void Test_Arg_With_Nondefault_Prefix()
        {
            // Arrange.
            var args = new ArgumentsBuilder("/")
                       .Arg("flag", "value");

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal("/flag value", actual);
        }
        public void Test_Complex_Args()
        {
            // Arrange.
            var args = new ArgumentsBuilder()
                       .Arg("flag1", "a")
                       .ArgIf(false, "flag2", "b")
                       .Arg("flag3", new FileInfo(@"C:\test\testfile.txt"))
                       .Arg("flag4")
                       .ArgIf(true, "flag5", "c")
                       .Value("d");

            // Act.
            var actual = args.ToString();

            // Assert.
            Assert.Equal(@"-flag1 a -flag3 ""C:\test\testfile.txt"" -flag4 -flag5 c d", actual);
        }