public void ShouldPublishUpdatedAfterUpdatingPrices() { var eventAggregator = new MockPriceUpdatedEventAggregator(); using (var marketFeed = new TestableMarketFeedService(eventAggregator)) { marketFeed.InvokeUpdatePrices(); } Assert.IsTrue(eventAggregator.MockMarketPriceUpdatedEvent.PublishCalled); }
public void ShouldPublishUpdatedOnSinglePriceChange() { var eventAggregator = new MockPriceUpdatedEventAggregator(); using (TestableMarketFeedService marketFeed = new TestableMarketFeedService(eventAggregator)) { marketFeed.TestUpdatePrice("STOCK0", 30.00m, 1000); } Assert.IsTrue(eventAggregator.MockMarketPriceUpdatedEvent.PublishCalled); }
public void PublishedEventContainsTheUpdatedPriceList() { var eventAgregator = new MockPriceUpdatedEventAggregator(); var marketFeed = new TestableMarketFeedService(eventAgregator); Assert.IsTrue(marketFeed.SymbolExists("STOCK0")); marketFeed.InvokeUpdatePrices(); Assert.IsTrue(eventAgregator.MockMarketPriceUpdatedEvent.PublishCalled); var payload = eventAgregator.MockMarketPriceUpdatedEvent.PublishArgumentPayload; Assert.IsNotNull(payload); Assert.IsTrue(payload.ContainsKey("STOCK0")); Assert.AreEqual(marketFeed.GetPrice("STOCK0"), payload["STOCK0"]); }
public void UpdateShouldPublishWithinRefreshInterval() { var eventAggregator = new MockPriceUpdatedEventAggregator(); using (var marketFeed = new TestableMarketFeedService(eventAggregator)) { marketFeed.RefreshInterval = 500; // ms var callCompletedEvent = new System.Threading.ManualResetEvent(false); eventAggregator.MockMarketPriceUpdatedEvent.PublishCalledEvent += delegate { callCompletedEvent.Set(); }; callCompletedEvent.WaitOne(5000, true); // Wait up to 5 seconds } Assert.IsTrue(eventAggregator.MockMarketPriceUpdatedEvent.PublishCalled); }
public TestableMarketFeedService(XDocument xmlDocument, MockPriceUpdatedEventAggregator eventAggregator) : base(xmlDocument, eventAggregator) { }
public TestableMarketFeedService(MockPriceUpdatedEventAggregator eventAggregator) : base(eventAggregator) { }
public void UpdateShouldPublishWithinRefreshInterval() { var eventAggregator = new MockPriceUpdatedEventAggregator(); using (var marketFeed = new TestableMarketFeedService(eventAggregator)) { marketFeed.RefreshInterval = 500; // ms var callCompletedEvent = new System.Threading.ManualResetEvent(false); eventAggregator.MockMarketPriceUpdatedEvent.PublishCalledEvent += delegate { callCompletedEvent.Set(); }; #if SILVERLIGHT callCompletedEvent.WaitOne(5000); // Wait up to 5 seconds #else callCompletedEvent.WaitOne(5000, true); // Wait up to 5 seconds #endif } Assert.IsTrue(eventAggregator.MockMarketPriceUpdatedEvent.PublishCalled); }