示例#1
0
        public void Setup()
        {
            _messageRepoMock = new Mock <IMessageRepository>();
            _treeView        = new TreeView();

            _messageViewUpdater = new MessageViewUpdater(_messageRepoMock.Object, _treeView);

            _messages = new[]
            {
                new Message
                {
                    MessageType        = MessageType.General,
                    ReceiverId         = 0,
                    Route              = new Channel[0],
                    SenderId           = 1,
                    LastTransferNodeId = 2,
                    Data         = null,
                    DataSize     = 10,
                    ServiceSize  = 1,
                    ParentId     = Guid.Empty,
                    SendAttempts = 2
                }
            };

            _messageRepoMock.Setup(m => m.GetAllMessages(It.IsAny <uint?>(), It.IsAny <MessageFiltrationMode>()))
            .Returns(_messages);
        }
示例#2
0
 public BackgroundWorker(IMessageExchanger messageExchanger, IMessageGenerator messageGenerator,
                         IComponentDrawer networkDrawer, IMessageCreator messageCreator,
                         IMessageRegistrator messageRegistrator, IMessageViewUpdater messageViewUpdated,
                         int updatePeriod)
 {
     _messageExchanger   = messageExchanger;
     _messageGenerator   = messageGenerator;
     _networkDrawer      = networkDrawer;
     _messageCreator     = messageCreator;
     _messageRegistrator = messageRegistrator;
     _updatePeriod       = updatePeriod;
     _messageViewUpdated = messageViewUpdated;
     _locker             = new Mutex();
 }
示例#3
0
        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();
        }