public async Task LineHandlerAndWriteLine() { var prompt = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); var inStream = new MemoryStream(); await inStream.WriteLineAsync("test"); await inStream.WriteLineAsync("exit"); Console.SetIn(inStream.GetReader()); const string line = "testline"; await prompt.SetLineHandler(async (k) => { cmd.WriteLine(line); await Task.CompletedTask; }).Run(); var p = await prompt.PopulatePrompt(); Assert.AreEqual(p + line + "\r\n" + p + p + p, outWriter.CleanOutput()); }
public async Task Defaults() { var defaults = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); Console.SetIn(await InputCommand("exit")); await defaults.SetLineHandler(async (k) => await Task.CompletedTask) .Run(); Assert.AreEqual(await defaults.PopulatePrompt(), outWriter.CleanOutput()); }
public async Task QuitLine() { var prompt = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); Console.SetIn(await InputCommand("quit")); await prompt.SetLineHandler(async (k) => await Task.CompletedTask) .SetQuitLine("quit") .Run(); Assert.AreEqual(await prompt.PopulatePrompt(), outWriter.CleanOutput()); }
public async Task CustomPrompt() { var prompt = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); Console.SetIn(await InputCommand("exit")); var newPrompt = "hello > "; await prompt.SetLineHandler(async (k) => await Task.CompletedTask) .SetPopulatePromptAction(async() => await Task.FromResult(newPrompt)) .Run(); Assert.AreEqual(newPrompt, outWriter.CleanOutput()); }
public async Task OnStartup() { var prompt = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); Console.SetIn(await InputCommand("exit")); prompt.SetLineHandler(async(k) => await Task.CompletedTask); var didRun = false; await prompt.SetOnStartupAction(async() => { didRun = true; await Task.CompletedTask; }).Run(); Assert.AreEqual(await prompt.PopulatePrompt(), outWriter.CleanOutput()); Assert.IsTrue(didRun); }
public async Task LineHandlerUnhandledException() { var prompt = cmd.Build(); var outWriter = new StringWriter(); Console.SetOut(outWriter); var inStream = new MemoryStream(); await inStream.WriteLineAsync("test"); await inStream.WriteLineAsync("exit"); Console.SetIn(inStream.GetReader()); const string exceptionMessage = "test exception"; await prompt.SetLineHandler((_) => throw new Exception(exceptionMessage)) .Run(); var p = await prompt.PopulatePrompt(); Assert.AreEqual(p + "Unhandled Exception: Useful.Tests - " + exceptionMessage + "\r\n" + p + p + p, outWriter.CleanOutput()); }