public void When_setting_the_incoming_message_channel() { var messagingService = new TestUnifiedMessagingService(); var messagingController = new UnifiedMessagingController( messagingService, new MessageRepository(), new TestMessageFormatter(), new TestFiber()); messagingController.StartReceiving(); Assert.That(messagingService.StartReceiving_WasCalled, "It should start receiving from the messaging plugins."); }
void App_Startup(object sender, StartupEventArgs e) { var messagingPlugInRepository = new MessagingPlugInRepository(); var messagingPluginFinder = new MessagingPluginFinder(messagingPlugInRepository); var unifiedMessenger = new UnifiedMessenger(messagingPlugInRepository); var messagingFiber = new AsyncFiber(Dispatcher); var cachedCredentialRepository = new MessagingCredentialCache(messagingPlugInRepository); var userSecurityPrompt = new UserSecurityPrompt(messagingFiber); messagingPlugInRepository.OnCredentialsRequestedNotify(cachedCredentialRepository); cachedCredentialRepository.OnCredentialsRequestedNotify(userSecurityPrompt); cachedCredentialRepository.OnCredentialsProvidedNotify(unifiedMessenger); userSecurityPrompt.OnCredentialsProvidedNotify(cachedCredentialRepository); var codePasteToUrlService = new CodePasteToUrlService(); var automaticMessageFormatting = new AutoFormatCodePastesAsUrls(codePasteToUrlService); var messageRepository = new MessageRepository(); var unifiedMessagingController = new UnifiedMessagingController(unifiedMessenger, messageRepository, automaticMessageFormatting, messagingFiber); automaticMessageFormatting.OnMessageToSendNotify(unifiedMessagingController); var messagingViewModel = new MessagingViewModel(unifiedMessagingController); var messagingWindow = new MessagingWindow(messagingViewModel); messageRepository.OnAddedMessagesNotify(unifiedMessagingController); unifiedMessagingController.OnReceivedMessagesNotify(messagingViewModel); messagingPluginFinder.GetAllPlugins(); unifiedMessagingController.StartReceiving(); unifiedMessagingController.RequestMessageUpdate(); messagingWindow.Show(); }