public void TestStdOut()
        {
            var provider = new MemoryConsoleProvider();

            provider.Write("Test".ToCharArray());
            provider.Write("ing ");
            provider.Write(this);
            provider.Write(" ");
            provider.Write("asserts {0} {1} ", "All", "Tests");
            provider.Write(true);
            provider.Write("This is .  Garbage string".ToCharArray(), 8, 2);
            provider.WriteLine();
            provider.WriteLine("Test line".ToCharArray());
            provider.WriteLine("Test line 2");
            provider.WriteLine("Test {0}", "formatted line");
            provider.WriteLine(this);
            provider.WriteLine("Testing a specific substring.".ToCharArray(), 8, 20);

            var meString = this.ToString();

            Assert.AreEqual(string.Format("Testing {0} asserts All Tests True. " + Environment.NewLine +
                                          "Test line" + Environment.NewLine +
                                          "Test line 2" + Environment.NewLine +
                                          "Test formatted line" + Environment.NewLine +
                                          "{0}" + Environment.NewLine +
                                          "a specific substring" + Environment.NewLine, meString), provider.StdOut.ToString());
        }
Esempio n. 2
0
        /// <summary>
        /// Runs a console command with custom input and returns the output.
        /// </summary>
        /// <param name="command">Command to run</param>
        /// <param name="appViewModel">Current application view model</param>
        /// <param name="arguments">Input arguments</param>
        /// <param name="stdIn">New-line separated standard input</param>
        /// <returns>New-line separated standard output</returns>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="command"/> or <paramref name="appViewModel"/> is null.</exception>
        public static async Task <string> TestConsoleCommand(ConsoleCommand command, ApplicationViewModel appViewModel, string[] arguments, string stdIn)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }
            if (appViewModel == null)
            {
                throw new ArgumentNullException(nameof(appViewModel));
            }

            if (arguments == null)
            {
                arguments = new string[] { };
            }
            if (stdIn == null)
            {
                stdIn = "";
            }

            var provider = new MemoryConsoleProvider();

            provider.StdIn.Append(stdIn);
            command.Console = provider;
            await command.MainAsync(arguments).ConfigureAwait(false);

            return(provider.GetStdOut());
        }
        public void TestStdIn()
        {
            var provider = new MemoryConsoleProvider();

            provider.StdIn.Append("!Line ");
            provider.StdIn.AppendLine("1");
            provider.StdIn.AppendLine("Line 2");

            Assert.AreEqual(Convert.ToInt32('!'), provider.Read());
            Assert.AreEqual("Line 1", provider.ReadLine());
            Assert.AreEqual("Line 2", provider.ReadLine());
        }