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 NewsController(ArticleViewModel articleViewModel, NewsReaderViewModel newsReaderViewModel)
 {
     this.articleViewModel = articleViewModel;         
     this.newsReaderViewModel = newsReaderViewModel;
     if (articleViewModel != null)
     {
         this.articleViewModel.PropertyChanged += this.ArticleViewModel_PropertyChanged;
     }
 }
Exemplo n.º 3
0
        public void WhenConstructedWithNullRegionManager_Throws()
        {
            // Prepare
            INewsFeedService newsFeedService = new Mock<INewsFeedService>().Object;
            IRegionManager regionManager = null;
            IEventAggregator eventAggregator = new Mock<IEventAggregator>().Object;

            // Act
            ArticleViewModel actual = new ArticleViewModel(newsFeedService, regionManager, eventAggregator);

            // Verify
        }
Exemplo n.º 4
0
        public void WhenConstructed_InitializesValues()
        {
            // 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;

            // Act
            ArticleViewModel actual = new ArticleViewModel(newsFeedService, regionManager, eventAggregator);

            // Verify
            Assert.IsNull(actual.Articles);
            Assert.IsNull(actual.SelectedArticle); 
            Assert.IsNotNull(actual.ShowArticleListCommand);
            Assert.IsNotNull(actual.ShowNewsReaderCommand);
        }
Exemplo n.º 5
0
 public ArticleView(ArticleViewModel viewModel, INewsController newsController)
 {
     InitializeComponent();
     ViewModel      = viewModel;
     NewsController = newsController;
 }
Exemplo n.º 6
0
        public void WhenShowNewsReaderCommandInvokes_RegionIsNavigated()
        {
            // Prepare
            NewsArticle newsArticle = new NewsArticle();

            var tickerSymbolSelectedEvent = new Mock<TickerSymbolSelectedEvent>().Object;

            Mock<INewsFeedService> mockNewsFeedService = new Mock<INewsFeedService>();
            Mock<IRegionManager> mockRegionManager = new Mock<IRegionManager>();
            Mock<IEventAggregator> mockEventAggregator = new Mock<IEventAggregator>();
            mockEventAggregator.Setup(x => x.GetEvent<TickerSymbolSelectedEvent>()).Returns(tickerSymbolSelectedEvent);

            INewsFeedService newsFeedService = mockNewsFeedService.Object;
            IRegionManager regionManager = mockRegionManager.Object;
            IEventAggregator eventAggregator = mockEventAggregator.Object;

            ArticleViewModel target = new ArticleViewModel(newsFeedService, regionManager, eventAggregator);

            bool propertyChangedRaised = false;
            target.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "SelectedArticle")
                {
                    propertyChangedRaised = true;
                }
            };

            // Act
            target.SelectedArticle = newsArticle;

            // Verify
            Assert.AreEqual(newsArticle, target.SelectedArticle);
            Assert.IsTrue(propertyChangedRaised);
        }
Exemplo n.º 7
0
        public void WhenCompanySymbolSet_NewsArticlesAreRetrieved()
        {
            // Prepare
            string companySymbol = "CompanySymbol";

            List<NewsArticle> articles = new List<NewsArticle>();

            var tickerSymbolSelectedEvent = new Mock<TickerSymbolSelectedEvent>().Object;

            Mock<INewsFeedService> mockNewsFeedService = new Mock<INewsFeedService>();
            mockNewsFeedService.Setup(x => x.GetNews(companySymbol)).Returns(articles).Verifiable();
            Mock<IRegionManager> mockRegionManager = new Mock<IRegionManager>();
            Mock<IEventAggregator> mockEventAggregator = new Mock<IEventAggregator>();
            mockEventAggregator.Setup(x => x.GetEvent<TickerSymbolSelectedEvent>()).Returns(tickerSymbolSelectedEvent);

            INewsFeedService newsFeedService = mockNewsFeedService.Object;
            IRegionManager regionManager = mockRegionManager.Object;
            IEventAggregator eventAggregator = mockEventAggregator.Object;

            ArticleViewModel target = new ArticleViewModel(newsFeedService, regionManager, eventAggregator);

            bool propertyChangedRaised = false;
            target.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "Articles")
                {
                    propertyChangedRaised = true;
                }
            };

            // Act
            target.CompanySymbol = companySymbol;

            // Verify
            mockNewsFeedService.VerifyAll();
            Assert.AreSame(target.Articles, articles);
            Assert.IsTrue(propertyChangedRaised);
        }