コード例 #1
0
        public void Setup()
        {
            _messageRegistratorMock = new Mock <IMessageRegistrator>();
            _messageRepoMock        = new Mock <IMessageRepository>();

            _messagesStatisticCounter = new MessagesStatisticCounter(_messageRegistratorMock.Object,
                                                                     _messageRepoMock.Object);

            _finishedMessage = new Message
            {
                ParentId    = Guid.NewGuid(),
                IsReceived  = true,
                DataSize    = 5,
                ServiceSize = 2,
                MessageType = MessageType.MatrixUpdateMessage
            };

            _unfinishedMessage = new Message
            {
                ParentId    = Guid.NewGuid(),
                DataSize    = 5,
                ServiceSize = 2
            };

            _messageRegistratorMock.Setup(m => m.MessagesStartTimes)
            .Returns(new Dictionary <Guid, long>
            {
                [_finishedMessage.ParentId]   = 0,
                [_unfinishedMessage.ParentId] = 1,
            });

            _messageRegistratorMock.Setup(m => m.MessagesEndTimes)
            .Returns(new Dictionary <Guid, long> {
                [_finishedMessage.ParentId] = 3
            });

            _messageRepoMock.Setup(m => m.GetAllMessages(It.IsAny <uint?>(), It.IsAny <MessageFiltrationMode>()))
            .Returns(new[] { _finishedMessage, _unfinishedMessage });

            const int avarageDeliveryTime = 3;

            _expectedStatistic = new MessagesStatistic
            {
                MessagesCount                = 2,
                GeneralMessagesCount         = 1,
                AvarageDeliveryTime          = avarageDeliveryTime,
                GeneralMessagesReceivedCount = 0,
                ReceivedMessagesCount        = 1,
                TotalReceivedDataSize        = _finishedMessage.DataSize,
                TotalReceivedMessagesSize    = _finishedMessage.Size
            };
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: L0ndra/Coursework
        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();
        }