public void Should_return_list_of_episodes()
        {
            _episodesQueryDataSource.GetToDate(_episodesToDate).Returns(CreateEpisodesList());
            _subscriptionQueryDataSource.GetAllSubscriptions().Returns(CreateSubscriptionList());

            var result = _handler.Handle(_query);

            Assert.NotNull(result);
            Assert.NotNull(result.Episodes);
            Assert.Equal(4, result.Episodes.Count());
        }
        public void Handle(UpdateEpisodesForAllSubscriptionsCommand command)
        {
            var subscriptions = _subscriptionQueryDataSource.GetAllSubscriptions();

            foreach (var subscription in subscriptions)
            {
                var lastAirDate = _updateEpisodesService.UpdateEpisodesForSubscription(subscription);
                if (lastAirDate != null)
                {
                    _subscriptionCommandDataSource.SaveLastAirDate(subscription.Id, lastAirDate.Value.Date);
                }
            }
        }
Пример #3
0
        public EpisodesToDateResult Handle(EpisodesToDateQuery query)
        {
            var shows    = _subscriptionQueryDataSource.GetAllSubscriptions();
            var episodes = _episodesQueryDataSource.GetToDate(query.ToDate);

            return(new EpisodesToDateResult
            {
                Episodes = episodes.Select(e => new EpisodeWithSubscriptionInfoDto
                {
                    Episode = e,
                    Subscription = shows.First(id => id.Id == e.SubscriptionId)
                })
            });
        }
        public void Should_update_episodes_for_all_subscriptions()
        {
            var subscription1Airdate = DateTime.Now.AddDays(2);
            var subscription2Airdate = DateTime.Now.AddDays(5);

            _updateEpisodesService.UpdateEpisodesForSubscription(Arg.Is <Subscription>(s => s.Id == _subscription1.Id)).Returns(subscription1Airdate);
            _updateEpisodesService.UpdateEpisodesForSubscription(Arg.Is <Subscription>(s => s.Id == _subscription2.Id)).Returns(subscription2Airdate);
            _subscriptionQueryDataSource.GetAllSubscriptions().Returns(new List <Subscription> {
                _subscription1, _subscription2
            });

            _handler.Handle(new UpdateEpisodesForAllSubscriptionsCommand());

            _updateEpisodesService.Received(1).UpdateEpisodesForSubscription(Arg.Is <Subscription>(s => s.Id == _subscription1.Id && s.TvShowId == _subscription1.TvShowId && s.TvShowName == _subscription1.TvShowName && s.LastAirDate == _subscription1.LastAirDate.Date));
            _updateEpisodesService.Received(1).UpdateEpisodesForSubscription(Arg.Is <Subscription>(s => s.Id == _subscription2.Id && s.TvShowId == _subscription2.TvShowId && s.TvShowName == _subscription2.TvShowName && s.LastAirDate == _subscription2.LastAirDate.Date));
            _subscriptionCommandDataSource.Received(1).SaveLastAirDate(_subscription1.Id, subscription1Airdate.Date);
            _subscriptionCommandDataSource.Received(1).SaveLastAirDate(_subscription2.Id, subscription2Airdate.Date);
        }
Пример #5
0
        public AllSubscriptionsWithNextEpisodeResult Handle(AllSubscriptionsWithNextEpisodeQuery query)
        {
            var subscriptions = _subscriptionQueryDataSource.GetAllSubscriptions();

            var result = new List <SubscriptionWithNextEpisodeDto>();

            foreach (var subscription in subscriptions)
            {
                result.Add(new SubscriptionWithNextEpisodeDto
                {
                    Subscription = subscription,
                    NextEpisode  = _episodesQueryDataSource.GetNextEpisode(subscription.Id)
                });
            }

            return(new AllSubscriptionsWithNextEpisodeResult
            {
                Subscriptions = result
            });
        }
        public void Should_get_next_show_for_each_subscription()
        {
            _subscriptionQueryDataSource.GetAllSubscriptions().Returns(new List <Subscription> {
                CreateSubscription()
            });
            _episodesQueryDataSource.GetNextEpisode(1)
            .Returns(new Episode
            {
                AirDate       = DateTime.Now.AddDays(1),
                Title         = "Hello",
                SeasonNumber  = 1,
                EpisodeNumber = 2
            });

            var result = _handler.Handle(new AllSubscriptionsWithNextEpisodeQuery());

            _episodesQueryDataSource.Received(1).GetNextEpisode(1);

            var subscription = result.Subscriptions.First();

            Assert.Equal(555, subscription.Subscription.TvShowId);
            Assert.Equal("Hello", subscription.NextEpisode.Title);
        }