public async Task StringResult_Tests() { using (var client = new PSClient()) { var value = "Hello World -- " + Guid.NewGuid().ToString(); await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); var result = await client.InvokeScriptAsync<string>(PSUtils.EscapeString(value)); Assert.AreEqual(value, result.Single()); } }
public async Task ReadLine_Test() { using (var client = new PSClient()) { await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); await Task.Delay(TimeSpan.FromMilliseconds(100)); client.ConfigureNonInteractiveConsoleHost(); client.HostUI.ReadLineCallback = () => "Hello World"; Assert.AreEqual("Hello World", (await client.InvokeScriptAsync <string>("Read-Host")).Single()); } }
public async Task ReadLine_Exception1_Tests() { using (var client = new PSClient()) { await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); await Task.Delay(TimeSpan.FromMilliseconds(100)); try { var result = await client.InvokeScriptAsync <string>("Read-Host"); Assert.Fail("Read-Host did not fail!"); } catch (Exception ex) { if (!(ex is InvalidOperationException) && !(ex is CmdletInvocationException)) { throw; } } } }
public async Task TestWriteHost2() { using (var client = new PSClient()) { await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); client.ConfigureNonInteractiveConsoleHost(); string v = string.Empty; var oldCallback = client.HostUI.WriteCallback; client.HostUI.WriteCallback = (s, fg, bg, c) => { if (s == PSOutputStream.Default) { v += c; } oldCallback?.Invoke(s, fg, bg, c); }; await client.InvokeScriptAsync("Write-Host \"Hello World\";"); Assert.AreEqual("Hello World", v.Trim()); Assert.IsTrue(v.EndsWith("\n")); } }
public async Task TestWriteHost() { using (var client = new PSClient()) { await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); string v = string.Empty; client.HostUI.WriteCallback = (s, fg, bg, c) => { if (s == PSOutputStream.Default) { v += c; } }; await client.InvokeScriptAsync("Write-Host \"Hello World\";"); Assert.AreEqual("Hello World", v.Trim()); Assert.IsTrue(v.EndsWith("\n")); // Also test multi-close await client.CloseAsync(); await client.CloseAsync(); await client.CloseAsync(); } }
public async Task ReadLine_Exception3_Tests() { using (var client = new PSClient()) { await client.OpenAsync(PSConnectionInfo.CreateLocalConnection()); await Task.Delay(TimeSpan.FromMilliseconds(100)); client.ConfigureNonInteractiveSilentHost(); await Assert.ThrowsExceptionAsync <CmdletInvocationException>(async() => await client.InvokeScriptAsync <string>("Read-Host")); } }