public void AccountPositionModificationUpdatesPM()
        {
            var accountPositionService = new MockAccountPositionService();
            var marketFeedService      = new MockMarketFeedService();

            marketFeedService.SetPrice("FUND0", 20.00m);
            accountPositionService.AddPosition("FUND0", 150.00m, 100);
            ObservablePosition position = new ObservablePosition(accountPositionService, marketFeedService, CreateEventAggregator());

            bool itemUpdated = false;

            position.Items.First(p => p.TickerSymbol == "FUND0").PropertyChanged += delegate
            {
                itemUpdated = true;
            };

            AccountPosition accountPosition = accountPositionService.GetAccountPositions().First <AccountPosition>(p => p.TickerSymbol == "FUND0");

            accountPosition.Shares   += 11;
            accountPosition.CostBasis = 25.00m;

            Assert.IsTrue(itemUpdated);
            Assert.AreEqual(111, position.Items.First(p => p.TickerSymbol == "FUND0").Shares);
            Assert.AreEqual(25.00m, position.Items.First(p => p.TickerSymbol == "FUND0").CostBasis);
        }
예제 #2
0
        public void AccountPositionModificationUpdatesPM()
        {
            eventAggregator.AddMapping<MarketPricesUpdatedEvent>(new MockMarketPricesUpdatedEvent());
            marketFeedService.SetPrice("FUND0", 20.00m);
            accountPositionService.AddPosition("FUND0", 150.00m, 100);
            var presentationModel = CreatePresentationModel();

            bool presentationModelItemUpdated = false;
            presentationModel.PositionSummaryItems.First(p => p.TickerSymbol == "FUND0").PropertyChanged += delegate
               {
                   presentationModelItemUpdated = true;
               };

            AccountPosition accountPosition = accountPositionService.GetAccountPositions().First<AccountPosition>(p => p.TickerSymbol == "FUND0");
            accountPosition.Shares += 11;
            accountPosition.CostBasis = 25.00m;

            Assert.IsTrue(presentationModelItemUpdated);
            Assert.AreEqual(111, presentationModel.PositionSummaryItems.First(p => p.TickerSymbol == "FUND0").Shares);
            Assert.AreEqual(25.00m, presentationModel.PositionSummaryItems.First(p => p.TickerSymbol == "FUND0").CostBasis);
        }