public void UpdateTablesShouldStartSendingInformationMessagesToMetropolitanNetworks() { // Arrange var centralMachine = _nodes.First(n => n.NodeType == NodeType.CentralMachine); // Act _messageCreator.UpdateTables(); var messageCount = centralMachine.MessageQueueHandlers .SelectMany(m => m.Messages) .Count(m => m.MessageType == MessageType.MatrixUpdateMessage); // Assert Assert.That(messageCount, Is.EqualTo(centralMachine.LinkedNodesId.Count)); Assert.IsTrue(centralMachine.IsActive); }
private void TimerOnElapsed(object sender, EventArgs e) { _locker.WaitOne(); Ticks++; if (Ticks % _updatePeriod == 0) { _messageCreator.UpdateTables(); } _messageGenerator?.Generate(); _messageExchanger?.HandleMessagesOnce(); _messageRegistrator?.RegisterMessages(); _networkDrawer?.UpdateComponents(); _messageViewUpdated.Show(); _locker.ReleaseMutex(); }
private void InitializeAllServices(double messageGenerateChance, int tableUpdatePeriod, bool isPackageMode, bool isRouterStupid, int messagesSize) { if (isRouterStupid) { _messageRouter = new IndependentMessageRouter(_network); } else { _messageRouter = new MessageRouter(_network); } if (isPackageMode) { _messageCreator = new PackageMessageCreator(_network, _messageRouter); } else { _messageCreator = new RequestMessageCreator(_network, _messageRouter); } _positiveResponseMessageCreator = new PositiveResponseCreator(_network, _messageRouter); _negativeResponseMessageCreator = new NegativeResponseCreator(_network, _messageRouter); _messageHandler = new MessageHandler(_network, _messageCreator, _positiveResponseMessageCreator); _messageReceiver = new MessageReceiver(_messageHandler, _negativeResponseMessageCreator); _messageExchanger = new MessageExchanger(_network, _messageReceiver); if (messagesSize > 0) { _messageGenerator = new SpecifiedSizeMessageGenerator(_network, _messageCreator, messageGenerateChance, messagesSize); } else { _messageGenerator = new MessageGenerator(_network, _messageCreator, messageGenerateChance); } _messageRepository = new MessageRepository(_network); _messageViewUpdater = new MessageViewUpdater(_messageRepository, Messages); _messageRegistrator = new MessageRegistrator(_messageRepository); _messagesStatisticCounter = new MessagesStatisticCounter(_messageRegistrator, _messageRepository); _backgroundWorker = new Background.BackgroundWorker(_messageExchanger, _messageGenerator, _networkDrawer, _messageCreator, _messageRegistrator, _messageViewUpdater, tableUpdatePeriod); _messageCreator.UpdateTables(); FiltrationModeSelect_OnSelectionChanged(FiltrationModeSelect, null); _backgroundWorker.Run(); _backgroundWorker.Interval = IntervalSlider.Value; _headerUpdater = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(IntervalSlider.Value) }; _headerUpdater.Tick += (sender, args) => Title = $"Coursework (time: {_backgroundWorker.Ticks})"; _headerUpdater.Start(); }