public void WhenArticleViewModelSelectedArticleChanged_NewsReaderViewModelNewsArticleUpdated() { // Prepare INewsFeedService newsFeedService = new Mock<INewsFeedService>().Object; IRegionManager regionManager = new Mock<IRegionManager>().Object; var tickerSymbolSelectedEvent = new Mock<TickerSymbolSelectedEvent>().Object; var mockEventAggregator = new Mock<IEventAggregator>(); mockEventAggregator.Setup(x => x.GetEvent<TickerSymbolSelectedEvent>()).Returns(tickerSymbolSelectedEvent); IEventAggregator eventAggregator = mockEventAggregator.Object; ArticleViewModel articleViewModel = new ArticleViewModel(newsFeedService, regionManager, eventAggregator); NewsReaderViewModel newsReaderViewModel = new NewsReaderViewModel(); var controller = new NewsController(articleViewModel, newsReaderViewModel); NewsArticle newsArticle = new NewsArticle() { Title = "SomeTitle", Body = "Newsbody" }; // Act articleViewModel.SelectedArticle = newsArticle; // Verify Assert.AreSame(newsArticle, newsReaderViewModel.NewsArticle); }
public void ShouldNotifyReaderWhenCurrentNewsArticleChanges() { var presenter = new MockArticlePresentationModel(); var eventAggregator = new MockEventAggregator(); eventAggregator.AddMapping<TickerSymbolSelectedEvent>(new MockTickerSymbolSelectedEvent()); var newsReaderPresenter = new MockNewsReaderPresenter(); var controller = new NewsController(CreateRegionManager(), presenter, eventAggregator, newsReaderPresenter); controller.CurrentNewsArticleChanged(new NewsArticle() { Title = "SomeTitle", Body = "Newsbody" }); Assert.IsTrue(newsReaderPresenter.SetNewsArticleCalled); }
public void ShowNewsResolvesPresenterAndCallsSetTickerSymbolOnItAndAddsNamedViewToRegion() { var presenter = new MockArticlePresentationModel(); var eventAggregator = new MockEventAggregator(); eventAggregator.AddMapping<TickerSymbolSelectedEvent>(new MockTickerSymbolSelectedEvent()); var controller = new NewsController(CreateRegionManager(), presenter, eventAggregator, new MockNewsReaderPresenter()); controller.ShowNews("Test"); Assert.IsNotNull(presenter.SetTickerSymbolArgumentCompanySymbol); Assert.AreEqual("Test", presenter.SetTickerSymbolArgumentCompanySymbol); }
public void ControllerShowNewsWhenRasingGlobalEvent() { var presenter = new MockArticlePresentationModel(); var eventAggregator = new MockEventAggregator(); var tickerSymbolSelectedEvent = new MockTickerSymbolSelectedEvent(); eventAggregator.AddMapping<TickerSymbolSelectedEvent>(tickerSymbolSelectedEvent); var controller = new NewsController(CreateRegionManager(), presenter, eventAggregator, new MockNewsReaderPresenter()); controller.Run(); Assert.IsNotNull(tickerSymbolSelectedEvent.SubscribeArgumentAction); tickerSymbolSelectedEvent.SubscribeArgumentAction("TEST_SYMBOL"); Assert.AreEqual("TEST_SYMBOL", presenter.SetTickerSymbolArgumentCompanySymbol); }
public void ControllerShowNewsViewWhenArticlePresenterReceivesEvent() { var articlePresentationModel = new MockArticlePresentationModel(); var eventAggregator = new MockEventAggregator(); eventAggregator.AddMapping<TickerSymbolSelectedEvent>(new MockTickerSymbolSelectedEvent()); var newsReaderPresenter = new MockNewsReaderPresenter(); var regionManager = CreateRegionManager(); var shellRegion = (MockRegion)regionManager.Regions["SecondaryRegion"]; var controller = new NewsController(regionManager, articlePresentationModel, eventAggregator, newsReaderPresenter); controller.ShowNewsReader(); Assert.IsTrue(shellRegion.ActivateCalled); Assert.AreEqual(newsReaderPresenter.View, shellRegion.ActivateArg); }
public void ControllerShowNewsViewWhenArticlePresenterReceivesEvent() { var presenter = new MockArticlePresentationModel(); var eventAggregator = new MockEventAggregator(); eventAggregator.AddMapping<TickerSymbolSelectedEvent>(new MockTickerSymbolSelectedEvent()); var newsReaderPresenter = new MockNewsReaderPresenter(); var controller = new NewsController(new MockRegionManager(), presenter, eventAggregator, newsReaderPresenter); controller.ShowNewsReader(); Assert.IsTrue(newsReaderPresenter.ShowWasCalled); }