public void WhenCurrentWatchItemSet_PropertyIsUpdated() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); Mock <TickerSymbolSelectedEvent> mockTickerSymbolSelectedEvent = new Mock <TickerSymbolSelectedEvent>(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); mockEventAggregator.Setup(x => x.GetEvent <TickerSymbolSelectedEvent>()).Returns(mockTickerSymbolSelectedEvent.Object); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; WatchListViewModel target = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); bool propertyChangedRaised = false; target.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "CurrentWatchItem") { propertyChangedRaised = true; } }; // Act target.CurrentWatchItem = target.WatchListItems[1]; // Verify Assert.AreSame(target.WatchListItems[1], target.CurrentWatchItem); Assert.IsTrue(propertyChangedRaised); }
public void WhenMarketPriceChagnes_PriceUpdated() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; WatchListViewModel target = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); Dictionary <string, decimal> newPrices = new Dictionary <string, decimal>() { { "A", 10 }, { "B", 20 }, { "C", 30 }, }; // Act marketPricesUpdatedEvent.Publish(newPrices); // Verify Assert.AreEqual(3, target.WatchListItems.Count); Assert.AreEqual(10, target.WatchListItems[0].CurrentPrice); Assert.AreEqual(20, target.WatchListItems[1].CurrentPrice); Assert.AreEqual(30, target.WatchListItems[2].CurrentPrice); }
public void WhenWatchListItemAdded_NavigatesToWatchListView() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegion> mockMainRegion = new Mock <IRegion>(); mockMainRegion.Setup(x => x.RequestNavigate(new Uri("/WatchListView", UriKind.RelativeOrAbsolute), It.IsAny <Action <NavigationResult> >())).Verifiable(); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); mockRegionManager.Setup(x => x.Regions[RegionNames.MainRegion]).Returns(mockMainRegion.Object); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; WatchListViewModel target = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); // Act target.WatchListItems.Add(new WatchItem("D", 20)); // Verify mockMainRegion.Verify(x => x.RequestNavigate(new Uri("/WatchListView", UriKind.RelativeOrAbsolute), It.IsAny <Action <NavigationResult> >()), Times.Once()); }
public void WhenRemoveCommandExecuted_RemovesWatchEntry() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegion> mockMainRegion = new Mock <IRegion>(); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); mockRegionManager.Setup(x => x.Regions[RegionNames.MainRegion]).Returns(mockMainRegion.Object); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; WatchListViewModel target = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); // Act target.RemoveWatchCommand.Execute("A"); // Verify Assert.AreEqual(2, target.WatchListItems.Count); }
public void WhenCurrentWatchItemSet_TickerSymbolSelectedEventRaised() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); Mock <TickerSymbolSelectedEvent> mockTickerSymbolSelectedEvent = new Mock <TickerSymbolSelectedEvent>(); mockTickerSymbolSelectedEvent.Setup(x => x.Publish("B")).Verifiable(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); mockEventAggregator.Setup(x => x.GetEvent <TickerSymbolSelectedEvent>()).Returns(mockTickerSymbolSelectedEvent.Object); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; WatchListViewModel target = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); // Act target.CurrentWatchItem = target.WatchListItems[1]; // Verify mockTickerSymbolSelectedEvent.VerifyAll(); }
public void WhenConstructed_IntializesValues() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); watchList.Add("B"); watchList.Add("C"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Returns(1); mockMarketFeedService.Setup(x => x.GetPrice("B")).Returns(2); mockMarketFeedService.Setup(x => x.GetPrice("C")).Returns(3); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; // Act WatchListViewModel actual = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); // Verify Assert.IsNotNull(actual); Assert.AreEqual("WATCH LIST", actual.HeaderInfo); Assert.AreEqual(3, actual.WatchListItems.Count); Assert.IsNull(actual.CurrentWatchItem); Assert.IsNotNull(actual.RemoveWatchCommand); mockWatchListService.VerifyAll(); }
public void WhenMarketPriceNotAvailable_PriceSetToNull() { // Prepare MockMarketPricesUpdatedEvent marketPricesUpdatedEvent = new MockMarketPricesUpdatedEvent(); ObservableCollection <string> watchList = new ObservableCollection <string>(); watchList.Add("A"); Mock <IWatchListService> mockWatchListService = new Mock <IWatchListService>(); mockWatchListService.Setup(x => x.RetrieveWatchList()).Returns(watchList).Verifiable(); Mock <IMarketFeedService> mockMarketFeedService = new Mock <IMarketFeedService>(); mockMarketFeedService.Setup(x => x.GetPrice("A")).Throws(new ArgumentException("tickerSymbol")); Mock <IRegionManager> mockRegionManager = new Mock <IRegionManager>(); Mock <IEventAggregator> mockEventAggregator = new Mock <IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent <MarketPricesUpdatedEvent>()).Returns(marketPricesUpdatedEvent); IWatchListService watchListService = mockWatchListService.Object; IMarketFeedService marketFeedService = mockMarketFeedService.Object; IRegionManager regionManager = mockRegionManager.Object; IEventAggregator eventAggregator = mockEventAggregator.Object; // Act WatchListViewModel actual = new WatchListViewModel(watchListService, marketFeedService, regionManager, eventAggregator); // Verify Assert.IsNotNull(actual); Assert.AreEqual(1, actual.WatchListItems.Count); Assert.AreEqual("A", actual.WatchListItems[0].TickerSymbol); Assert.AreEqual(null, actual.WatchListItems[0].CurrentPrice); }