public void Handle_Send_Messsage_To_Client()
        {
            //Arrange
            StockPriceChangedEvent        mockEvent = new StockPriceChangedEvent(message: "Mock Message");
            StockPriceChangedEventHandler handler   = new StockPriceChangedEventHandler(mockHubContext.Object);

            Mock <IHubCallerClients> mockClients     = new Mock <IHubCallerClients>();
            Mock <IClientProxy>      mockClientProxy = new Mock <IClientProxy>();

            mockClients.Setup(clients => clients.All).Returns(mockClientProxy.Object);

            mockHubContext.Setup(h => h.Clients.All).Returns(mockClientProxy.Object);

            //Act
            handler.Handle(mockEvent);

            //Assert
            mockClients.Verify(clients => clients.All, Times.Never);
            mockClientProxy.Verify(
                clientProxy => clientProxy.SendCoreAsync(
                    "UpdatedOrderState",
                    It.Is <object[]>(o => o != null),
                    default(CancellationToken)),
                Times.Once
                );
        }
Пример #2
0
        public void ChangeStockPrice(IStock stock, double newPrice)
        {
            var stockKvp = _stockIndex.Where(s => s.Key.Name == stock.Name)
                           .Select(s => s)
                           .FirstOrDefault();

            var eventMessage = new StockPriceChangedEventMessage()
            {
                NewPrice = newPrice,
                OldPrice = stockKvp.Value,
                Stock    = stock,
            };

            _stockIndex[stockKvp.Key] = newPrice;

            StockPriceChangedEvent?.Invoke(this, eventMessage);
        }