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); }