public void OnMessageReceived_DisplayTerminalOutputRequest_InvokesCorrectOutputHandler() { var terminalId = _fixture.Create <int>(); var output = _fixture.Create <string>(); var receivedOutput = string.Empty; var request = new DisplayTerminalOutputRequest { TerminalId = terminalId, Output = output }; var message = new Dictionary <string, string> { [MessageKeys.Type] = nameof(DisplayTerminalOutputRequest), [MessageKeys.Content] = JsonConvert.SerializeObject(request) }; var settingsService = new Mock <ISettingsService>(); var keyBindings = _fixture.CreateMany <KeyBinding>(3); settingsService.Setup(x => x.GetCommandKeyBindings()).Returns(new Dictionary <string, ICollection <KeyBinding> > { [nameof(Command.ToggleWindow)] = keyBindings.ToList() }); var trayProcessCommunicationService = new TrayProcessCommunicationService(settingsService.Object); var appServiceConnection = new Mock <IAppServiceConnection>(); trayProcessCommunicationService.Initialize(appServiceConnection.Object); trayProcessCommunicationService.SubscribeForTerminalOutput(terminalId, o => { receivedOutput = o; }); appServiceConnection.Raise(x => x.MessageReceived += null, null, message); receivedOutput.Should().Be(output); }
private void _terminalsManager_DisplayOutputRequested(object sender, DisplayTerminalOutputRequest e) { _appServiceConnection.SendMessageAsync(CreateMessage(e)); }