コード例 #1
0
 public void AddAddsArgumentWithPrefix()
 {
     var args = new SecureArguments("initial");
     args.Add("value1", "p=");
     var expected = "initial p=value1";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #2
0
 public void AddAddsArgumentWithPrefixAndDoubleQuotes()
 {
     var args = new SecureArguments("initial");
     args.Add("value1", "p=", true);
     var expected = "initial p=\"value1\"";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #3
0
 public void AddIfAddsIfConditionMatches()
 {
     var args = new SecureArguments("initial");
     args.AddIf(true, "value1");
     var expected = "initial value1";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #4
0
 public void PlusAddsArgument()
 {
     var args = new SecureArguments("initial");
     args += "value1";
     var expected = "initial value1";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #5
0
 public void ToStringGeneratesPrivateStringInPrivateMode()
 {
     var args = new SecureArguments(
         new PrivateString("privateData"),
         "publicData");
     var actual = args.ToString(SecureDataMode.Private);
     var expected = "privateData publicData";
     Assert.AreEqual(expected, actual);
 }
コード例 #6
0
 public void ToStringGeneratesPublicString()
 {
     var args = new SecureArguments(
         new PrivateString("privateData"),
         "publicData");
     var actual = args.ToString();
     var expected = "privateData publicData";
     Assert.AreNotEqual(expected, actual);
 }
コード例 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 /// <param name="priority">The priority.</param>
 /// <param name="successExitCodes">The success exit codes.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory, ProcessPriorityClass priority, int[] successExitCodes)
 {
     this.arguments                   = arguments;
     this.priority                    = priority;
     startInfo.FileName               = filename.StripQuotes();
     startInfo.Arguments              = arguments == null ? null : arguments.ToString(SecureDataMode.Private);
     startInfo.WorkingDirectory       = workingDirectory.StripQuotes();
     startInfo.UseShellExecute        = false;
     startInfo.CreateNoWindow         = true;
     startInfo.RedirectStandardOutput = true;
     startInfo.RedirectStandardError  = true;
     startInfo.RedirectStandardInput  = false;
     this.successExitCodes            = successExitCodes ?? new[] { 0 };
 }
コード例 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 /// <param name="priority">The priority.</param>
 /// <param name="successExitCodes">The success exit codes.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory, ProcessPriorityClass priority, int[] successExitCodes)
 {
     this.arguments = arguments;
     this.priority = priority;
     startInfo.FileName = filename.StripQuotes();
     startInfo.Arguments = arguments == null ? null : arguments.ToString(SecureDataMode.Private);
     startInfo.WorkingDirectory = workingDirectory.StripQuotes();
     startInfo.UseShellExecute = false;
     startInfo.CreateNoWindow = true;
     startInfo.RedirectStandardOutput = true;
     startInfo.RedirectStandardError = true;
     startInfo.RedirectStandardInput = false;
     this.successExitCodes = successExitCodes ?? new[] { 0 };
 }
コード例 #9
0
 public void ConstructorSetsProperties()
 {
     var filename = "nameoffile";
     var args = new SecureArguments("value 1", new PrivateString("value 2"));
     var workingDirectory = "C:\\somewhere";
     var priority = ProcessPriorityClass.AboveNormal;
     var exitCodes = new[] { 0, 1, 2, 3 };
     var info = new ProcessInfo(filename, args, workingDirectory, priority, exitCodes);
     Assert.AreEqual(filename, info.FileName);
     Assert.AreSame(args, info.Arguments);
     var argsValue = "value 1 value 2";
     Assert.AreEqual(argsValue, info.PrivateArguments);
     Assert.AreNotEqual(argsValue, info.PublicArguments);
     Assert.AreEqual(workingDirectory, info.WorkingDirectory);
     Assert.AreEqual(priority, info.Priority);
     Assert.AreEqual(exitCodes, info.SuccessExitCodes);
     Assert.IsNotNull(info.EnvironmentVariables);
 }
コード例 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 /// <param name="priority">The priority.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory, ProcessPriorityClass priority) :
     this(filename, arguments, workingDirectory, priority, null)
 {
 }
コード例 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory) :
     this(filename, arguments, workingDirectory, DefaultPriority)
 {
 }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 public ProcessInfo(string filename, SecureArguments arguments) :
     this(filename, arguments, null)
 {
 }
コード例 #13
0
 public void AddIfDoesNotAddWithConditionMismatch()
 {
     var args = new SecureArguments("initial");
     args.AddIf(false, "value1");
     var expected = "initial";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory) :
     this(filename, arguments, workingDirectory, DefaultPriority)
 {
 }
コード例 #15
0
 public void ConstructorAddsArguments()
 {
     var args = new SecureArguments("Test", 2);
     Assert.AreEqual(2, args.Count);
 }
コード例 #16
0
 public void AddIfHandlesPrefixAndQuotes()
 {
     var args = new SecureArguments("initial");
     args.AddIf(true, "value1", "p=", true);
     var expected = "initial p=\"value1\"";
     var actual = args.ToString();
     Assert.AreEqual(expected, actual);
 }
コード例 #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 /// <param name="workingDirectory">The working directory.</param>
 /// <param name="priority">The priority.</param>
 public ProcessInfo(string filename, SecureArguments arguments, string workingDirectory, ProcessPriorityClass priority) :
     this(filename, arguments, workingDirectory, priority, null)
 {
 }
コード例 #18
0
 /// <summary>
 /// Initialises the process.
 /// </summary>
 /// <returns>
 /// The information for the process.
 /// </returns>
 private ProcessInfo InitialiseProcess()
 {
     var args = new SecureArguments();
     args.Add(this.ProjectFile);
     return new ProcessInfo(
         this.Executable ?? DefaultExecutable,
         args,
         Environment.CurrentDirectory);
 }
コード例 #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProcessInfo"/> class.
 /// </summary>
 /// <param name="filename">The filename.</param>
 /// <param name="arguments">The arguments.</param>
 public ProcessInfo(string filename, SecureArguments arguments) :
     this(filename, arguments, null)
 {
 }