public void CanInitPresenter()
        {
            ITrendLineView view = new MockTrendLineView();
            IMarketHistoryService historyService = new MockMarketHistoryService();
            TrendLinePresenter presenter = new TrendLinePresenter(view, historyService);

            Assert.IsNotNull(presenter);
        }
        public void CanInitPresenter()
        {
            var historyService = new MockMarketHistoryService();
            var view = new MockTrendLineView();
            var eventAggregator = new MockEventAggregator();
            eventAggregator.AddMapping<TickerSymbolSelectedEvent>(new MockTickerSymbolSelectedEvent());
            TrendLinePresentationModel presentationModel = new TrendLinePresentationModel(view, historyService, eventAggregator);

            Assert.IsNotNull(presentationModel);
        }
        public void OnTickerSymbolSelectedUpdatesChartTitle()
        {
            MockTrendLineView view = new MockTrendLineView();
            MockMarketHistoryService historyService = new MockMarketHistoryService();
            TrendLinePresenter presenter = new TrendLinePresenter(view, historyService);

            presenter.OnTickerSymbolSelected("TEST");

            Assert.AreEqual("TEST", view.ChartTitlePassed);
        }
        public void CanInitPresenter()
        {
            var historyService = new MockMarketHistoryService();
            var eventAggregator = new Mock<IEventAggregator>();
            eventAggregator.Setup(x => x.GetEvent<TickerSymbolSelectedEvent>()).Returns(
                new MockTickerSymbolSelectedEvent());
            TrendLineViewModel presentationModel = new TrendLineViewModel(historyService, eventAggregator.Object);

            Assert.IsNotNull(presentationModel);
        }
        public void OnTickerSymbolSelectedUpdatesLineChartWithPriceHistoryData()
        {
            MockTrendLineView view = new MockTrendLineView();
            MockMarketHistoryService historyService = new MockMarketHistoryService();
            TrendLinePresenter presenter = new TrendLinePresenter(view, historyService);

            presenter.OnTickerSymbolSelected("TEST");

            Assert.IsNotNull(view.HistoryCollectionPassed);
            Assert.AreEqual(historyService.Data.Count, view.HistoryCollectionPassed.Count);
            Assert.AreEqual(historyService.Data[0], view.HistoryCollectionPassed[0]);
        }
        public void ShouldUpdateModelWithDataFromServiceOnTickerSymbolSelected()
        {
            var historyService = new MockMarketHistoryService();
            var eventAggregator = new MockEventAggregator();
            var tickerSymbolSelected = new MockTickerSymbolSelectedEvent();
            eventAggregator.AddMapping<TickerSymbolSelectedEvent>(tickerSymbolSelected);
            TrendLinePresentationModel presentationModel = new TrendLinePresentationModel(new MockTrendLineView(), historyService, eventAggregator);

            tickerSymbolSelected.SubscribeArgumentAction("MyTickerSymbol");
            
            Assert.IsTrue(historyService.GetPriceHistoryCalled);
            Assert.AreEqual("MyTickerSymbol", historyService.GetPriceHistoryArgument);
            Assert.IsNotNull(presentationModel.HistoryCollection);
            Assert.AreEqual(historyService.Data.Count, presentationModel.HistoryCollection.Count);
            Assert.AreEqual(historyService.Data[0], presentationModel.HistoryCollection[0]);
            Assert.AreEqual("MyTickerSymbol", presentationModel.TickerSymbol);
        }