public async Task PtyMessageHandler_Handle_ResizeTabRequestLogsErrorMessageWhenProcessIsNotFound() { // Given var terminal = new Terminal { Id = Guid.NewGuid().ToString(), Command = "bash", }; var mockProcess = new Mock <IProcess>(); var process = mockProcess.Object; MockEngine .Setup(e => e.TryGetProcess(terminal.Id, out process)).Returns(false); // When var request = new ResizeTabRequest(tabId: terminal.Id); var handler = new PtyMessageHandler(MockEngine.Object, MockConfig.Object, MockLogger.Object); await handler.Handle(request); // Then MockLogger.Verify( l => l.LogError("Error ({messageName}): can't find terminal with id {terminalId}", nameof(ResizeTabRequest), terminal.Id) ); }
public async Task PtyMessageHandler_Handle_ResizesThePtyOnResizeTabRequest() { // Given var terminal = new Terminal { Id = Guid.NewGuid().ToString(), Command = "bash", }; var mockProcess = new Mock <IProcess>(); var process = mockProcess.Object; MockEngine .Setup(e => e.TryGetProcess(terminal.Id, out process)).Returns(true); // When var request = new ResizeTabRequest(tabId: terminal.Id); var handler = new PtyMessageHandler(MockEngine.Object, MockConfig.Object, MockLogger.Object); await handler.Handle(request); // Then mockProcess.Verify( p => p.SetWindowSize(24, 80) ); }
public async Task PtyEndpoint_Handles_ResizeTabRequest() { // Given var mockEngine = _testHost.MockEngine; var terminal = new Terminal { Id = Guid.NewGuid().ToString(), Command = "bash", }; var request = new ResizeTabRequest(terminal.Id, 100, 300); var mockProcess = new Mock <IProcess>(); var process = mockProcess.Object; var reset = new AutoResetEvent(false); mockEngine .Setup(engine => engine.TryGetProcess(terminal.Id, out process)) .Returns(true); mockProcess .Setup(process => process.SetWindowSize(request.Rows, request.Cols)) .Callback(() => reset.Set()); // When using var cts = new CancellationTokenSource(timeOut); await socket.SendBinaryMessageAsync(writer, request, cts.Token); reset.WaitOne(TimeSpan.FromSeconds(5)); // Then mockProcess.Verify( process => process.SetWindowSize(request.Rows, request.Cols), Times.Once() ); }