public void WhenLastTickPriceFiredThenSendTickPriceMessage() { // Arrange const string Symbol = "AMZN"; const double Price = 11; var fired = false; Messenger.Default.Register <TickPrice>(this, x => { if (x.Symbol == Symbol && x.Price == Price && x.Type == TickType.LAST) { fired = true; } }); var manager = new TestMarketDataManager(); var contract = new Contract { Symbol = "AMZN", Exchange = BrokerConstants.Routers.Smart, PrimaryExch = Exchange.NYSE.ToString() }; // Act manager.RequestStreamingPrice(contract, false); manager.RaiseTickPriceMessage(new TickPriceMessage(MarketDataManager.TICK_ID_BASE + 1, TickType.LAST, Price, new TickAttrib())); // Assert Assert.True(fired); }
public void WhenPriceIsNegativeThenIgnore() { // Arrange const double Price = -1; var fired = false; Messenger.Default.Register <TickPrice>(this, x => fired = true); var manager = new TestMarketDataManager(); // Act manager.RaiseTickPriceMessage(new TickPriceMessage(MarketDataManager.TICK_ID_BASE + 1, TickType.LAST, Price, new TickAttrib())); // Assert Assert.False(fired); }
public void WhenMessageForRequestNotFoundThenIgnore() { // Arrange const double Price = 10; var fired = false; Messenger.Default.Register <TickPrice>(this, x => fired = true); var manager = new TestMarketDataManager(); // Act manager.RequestStreamingPrice(new Contract(), false); manager.RaiseTickPriceMessage(new TickPriceMessage(-1, TickType.LAST, Price, new TickAttrib())); // Assert Assert.False(fired); }
public void WhenRequestForOhlcThenSendBarMessage() { // Arrange const double Open = 10; const double High = 12; const double Low = 9; const double Close = 10.50; var eventCount = 0; var fired = false; Messenger.Default.Register <BarPriceMessage>(this, x => { eventCount++; if (x.Bar.High == High && x.Bar.Low == Low && x.Bar.Open == Open && x.Bar.Close == Close) { fired = true; } }); var manager = new TestMarketDataManager(); // Act manager.RequestStreamingPrice(new Contract { Symbol = "AMZN" }, true); var requestId = MarketDataManager.TICK_ID_BASE + 1; manager.RaiseTickPriceMessage(new TickPriceMessage(requestId, TickType.OPEN, Open, new TickAttrib())); manager.RaiseTickPriceMessage(new TickPriceMessage(requestId, TickType.HIGH, High, new TickAttrib())); manager.RaiseTickPriceMessage(new TickPriceMessage(requestId, TickType.LOW, Low, new TickAttrib())); manager.RaiseTickPriceMessage(new TickPriceMessage(requestId, TickType.CLOSE, Close, new TickAttrib())); // Assert Assert.True(fired); Assert.Equal(1, eventCount); }