예제 #1
0
 public void ShouldUpdatePricesWithin5Points()
 {
     using (var marketFeed = new TestableMarketFeedService(new MockPriceUpdatedEventAggregator()))
     {
         decimal originalPrice = marketFeed.GetPrice("STOCK0");
         marketFeed.InvokeUpdatePrices();
         Assert.IsTrue(Math.Abs(marketFeed.GetPrice("STOCK0") - originalPrice) <= 5);
     }
 }
예제 #2
0
        public void CanGetPriceAndVolumeFromMarketFeed()
        {
            using (var marketFeed = new TestableMarketFeedService(new MockPriceUpdatedEventAggregator()))
            {
                marketFeed.TestUpdatePrice("STOCK0", 40.00m, 1234);

                Assert.AreEqual <decimal>(40.00m, marketFeed.GetPrice("STOCK0"));
                Assert.AreEqual <long>(1234, marketFeed.GetVolume("STOCK0"));
            }
        }
예제 #3
0
        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"]);
        }