public async Task UpdateChannelsSavesEpisodes() { // channel var channel = new Channel("dummyLink"); var newEpisode = new Episode { Title = "new episode" }; var channels = new List <Channel> { channel }; ChannelStore.GetAllAsync().Returns(channels); ChannelStore.GetChannelInfos().Returns(channels.Select(_ => new ChannelInfo { Id = _.Id, FeedUrl = _.Link, ImageUrl = _.ImageUrl, EpisodeInfos = _.Episodes.Select(x => new EpisodeInfo { Id = x.Guid, Date = x.Date }) })); await PodcastViewModel.InitChannels(); PodcastViewModel.FeedParser.LoadFeed(Arg.Any <string>()).Returns(new ItunesFeed()); PodcastViewModel.FeedParser.ParseItems(Arg.Any <IEnumerable <ItunesItem> >(), Arg.Any <ChannelInfo>()) .Returns(new[] { newEpisode }); PodcastViewModel.UpdateCancelToken = new CancellationTokenSource(); await PodcastViewModel.UpdateChannelsCommand.Execute(); // assert await ChannelStore.Received(1).SaveEpisodes(Arg.Is <IEnumerable <Episode> >(_ => _.Contains(newEpisode))); //Repository.All<Episode>().Should().Contain(newEpisode); //await DbContext.Received(1).SaveChangesAsync(); }