Beispiel #1
0
        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));
 }