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 ); }
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); }