private TvDbEpisodeData SetUpTvDbEpisodeData(int id, int tvDbEpisodeIndex, int tvDbSeasonIndex) { var episodeData = TvDbTestData.Episode(id, tvDbEpisodeIndex, tvDbSeasonIndex); _embyData.GetParentId(MediaItemTypes.Series, _sources.TvDb).Returns(id); _tvDbSourceData.Data.Returns(episodeData); return(episodeData); }
private TvDbSeriesData SetUpTvDbSeriesData(int id) { var seriesData = TvDbTestData.Series(id); _embyData.GetParentId(MediaItemTypes.Series, _sources.TvDb).Returns(id); _sources.TvDb.GetSeriesData(_embyData, Arg.Any <ProcessResultContext>()).Returns(seriesData); return(seriesData); }
public async Task GetSeriesData_ReturnsSeries() { var embyItemData = EmbyItemData("Name", 56); var seriesData = TvDbTestData.Series(56, "Name"); _tvDbClient.GetSeriesAsync(56).Returns(Option <TvDbSeriesData> .Some(seriesData)); var result = await _tvDbSource.GetSeriesData(embyItemData, TestProcessResultContext.Instance); result.IsRight.Should().BeTrue(); result.IfRight(r => r.Should().BeSameAs(seriesData)); }
public async Task MapAniDbEpisodeAsync_NoGroupMapping_UsesDefaultSeasonMapper() { var expected = TvDbTestData.Episode(3); this.defaultSeasonEpisodeMapper.MapEpisodeAsync(3, this.seriesMapping).Returns(expected); var episodeMapper = new EpisodeMapper(this.defaultSeasonEpisodeMapper, this.groupMappingEpisodeMapper); var episodeData = await episodeMapper .MapAniDbEpisodeAsync(3, this.seriesMapping, Option <EpisodeGroupMapping> .None) .ToOption(); episodeData.ValueUnsafe().Should().Be(expected); }
public async Task MapEpisodeAsync_AbsoluteDefaultTvDbSeason_MapsOnAbsoluteEpisodeIndex() { this.seriesMapping.Ids.Returns(new SeriesIds(12, 33, Option <int> .None, Option <int> .None)); this.seriesMapping.DefaultTvDbSeason.Returns(new AbsoluteTvDbSeason()); var tvDbEpisodeData = TvDbTestData.Episode(3); this.tvDbClient.GetEpisodeAsync(33, 10).Returns(tvDbEpisodeData); var defaultSeasonEpisodeMapper = new DefaultSeasonEpisodeMapper(this.tvDbClient, this.logManager); var result = await defaultSeasonEpisodeMapper.MapEpisodeAsync(10, this.seriesMapping); await this.tvDbClient.Received(1).GetEpisodeAsync(33, 10); result.ValueUnsafe().Should().Be(tvDbEpisodeData); }
public async Task LoadFrom_CreatesSourceData() { var tvDbSeriesData = TvDbTestData.Series(22, "SeriesName"); _tvDbClient.FindSeriesAsync("SeriesName").Returns(tvDbSeriesData); var loader = new TvDbSeriesFromEmbyData(_tvDbClient, _sources); var result = await loader.LoadFrom(_embyItemData); result.IsRight.Should().BeTrue(); result.IfRight(sd => sd.Data.Should().Be(tvDbSeriesData)); result.IfRight(sd => sd.Source.Should().Be(_sources.TvDb)); result.IfRight(sd => sd.Identifier.Should().BeEquivalentTo(new ItemIdentifier(2, Option <int> .None, "SeriesName"))); }
public async Task LoadFrom_NoMatchingEpisode_Fails() { this.embyItemData.Identifier.Returns(new ItemIdentifier(4, 1, "Name")); this.tvDbClient.GetEpisodesAsync(22) .Returns(new[] { TvDbTestData.Episode(1, 1, 1, name: "NonMatch1"), TvDbTestData.Episode(1, 4, 2, name: "NonMatch2") }.ToList()); var loader = new TvDbEpisodeFromEmbyData(this.sources, this.tvDbClient, this.titleNormaliser); var result = await loader.LoadFrom(this.embyItemData); result.IsLeft.Should().BeTrue(); result.IfLeft(f => f.Reason.Should().Be("Failed to find TvDb episode")); }
public async Task MapAniDbEpisodeAsync_GroupMappingWithTvDbSeriesId_UsesGroupMappingEpisodeMapper() { this.seriesMapping = new SeriesMapping(new SeriesIds(123, 523, Option <int> .None, Option <int> .None), new AbsoluteTvDbSeason(), 2, new List <EpisodeGroupMapping>(), new List <SpecialEpisodePosition>()); var episodeGroupMapping = new EpisodeGroupMapping(1, 1, 3, 1, 1, new List <EpisodeMapping>()); var expected = TvDbTestData.Episode(3); this.groupMappingEpisodeMapper.MapAniDbEpisodeAsync(3, episodeGroupMapping, 523).Returns(expected); var episodeMapper = new EpisodeMapper(this.defaultSeasonEpisodeMapper, this.groupMappingEpisodeMapper); var episodeData = await episodeMapper.MapAniDbEpisodeAsync(3, this.seriesMapping, episodeGroupMapping).ToOption(); episodeData.ValueUnsafe().Should().Be(expected); }
public async Task MapEpisodeAsync_DefaultTvDbSeason_MapsOnSeasonAndEpisodeIndex() { _seriesMapping.Ids.Returns(new SeriesIds(12, 33, Option <int> .None, Option <int> .None)); _seriesMapping.DefaultTvDbSeason.Returns(new TvDbSeason(54)); _seriesMapping.DefaultTvDbEpisodeIndexOffset.Returns(7); var tvDbEpisodeData = TvDbTestData.Episode(3); _tvDbClient.GetEpisodeAsync(33, 54, 17).Returns(tvDbEpisodeData); var defaultSeasonEpisodeMapper = new DefaultSeasonEpisodeMapper(_tvDbClient, _logManager); var result = await defaultSeasonEpisodeMapper.MapEpisodeAsync(10, _seriesMapping); await _tvDbClient.Received(1).GetEpisodeAsync(33, 54, 17); result.ValueUnsafe().Should().Be(tvDbEpisodeData); }
public async Task LoadFrom_MapsToTvDbSeries() { this.CreateAniDbSeries(342, "SeriesName"); this.SetUpSeriesMapping(342, 66); var tvDbSeriesData = TvDbTestData.Series(66); this.sources.TvDb.GetSeriesData(66, Arg.Any <ProcessResultContext>()) .Returns(tvDbSeriesData); var loader = new TvDbSeriesFromAniDb(this.sources, this.mappingList); var result = await loader.LoadFrom(this.mediaItem, this.aniDbSourceData); result.IsRight.Should().BeTrue(); result.IfRight(sd => sd.Data.Should().Be(tvDbSeriesData)); result.IfRight(sd => sd.Source.Should().Be(this.sources.TvDb)); result.IfRight(sd => sd.Id.ValueUnsafe().Should().Be(66)); result.IfRight(sd => sd.Identifier.Should().BeEquivalentTo(new ItemIdentifier(Option <int> .None, Option <int> .None, string.Empty))); }
public void Setup() { this.tvDbSource = Substitute.For <ITvDbSource>(); this.tvDbSource.Name.Returns(SourceNames.TvDb); this.sources = Substitute.For <ISources>(); this.sources.TvDb.Returns(this.tvDbSource); var embyItemData = Substitute.For <IEmbyItemData>(); embyItemData.Identifier.Returns(new ItemIdentifier(67, 1, "Name")); embyItemData.Language.Returns("en"); this.mediaItem = Substitute.For <IMediaItem>(); this.mediaItem.EmbyData.Returns(embyItemData); this.tvDbSeriesData = TvDbTestData.Series(3, "Title"); this.tvDbSource.GetSeriesData(this.mediaItem.EmbyData, Arg.Any <ProcessResultContext>()) .Returns(this.tvDbSeriesData); }
public async Task LoadFrom_MatchOnTitle_CreatesSourceData() { var expected = TvDbTestData.Episode(1, 6, 1, name: "Match"); this.embyItemData.Identifier.Returns(new ItemIdentifier(4, 2, "Match")); this.tvDbClient.GetEpisodesAsync(22) .Returns(new[] { TvDbTestData.Episode(1, 1, 1, name: "NonMatch"), expected }.ToList()); var loader = new TvDbEpisodeFromEmbyData(this.sources, this.tvDbClient, this.titleNormaliser); var result = await loader.LoadFrom(this.embyItemData); result.IsRight.Should().BeTrue(); result.IfRight(sd => sd.Data.Should().Be(expected)); result.IfRight(sd => sd.Source.Should().Be(this.sources.TvDb)); result.IfRight(sd => sd.Identifier.Should().BeEquivalentTo(new ItemIdentifier(6, 1, "Match"))); }
public async Task LoadFrom_MatchOnEpisodeAndDefaultSeasonIndex_CreatesSourceData() { var expected = TvDbTestData.Episode(1, 4, 1, name: "Match"); _embyItemData.Identifier.Returns(new ItemIdentifier(4, Option <int> .None, "Name")); _tvDbClient.GetEpisodesAsync(22) .Returns(new[] { TvDbTestData.Episode(1, 1, 2, name: "NonMatch"), expected }.ToList()); var loader = new TvDbEpisodeFromEmbyData(_sources, _tvDbClient, _titleNormaliser); var result = await loader.LoadFrom(_embyItemData); result.IsRight.Should().BeTrue(); result.IfRight(sd => sd.Data.Should().Be(expected)); result.IfRight(sd => sd.Source.Should().Be(_sources.TvDb)); result.IfRight(sd => sd.Identifier.Should().BeEquivalentTo(new ItemIdentifier(4, 1, "Match"))); }
private TvDbEpisodeData CreateTvDbEpisodeData(int episodeIndex, int season = 1, string name = "TvDbEpisodeName") { return(TvDbTestData.Episode(3, episodeIndex, season, name: name)); }