public async Task LoadFrom_NoSeriesId_Fails() { this.embyItemData.GetParentId(MediaItemTypes.Series, this.sources.TvDb).Returns(Option <int> .None); 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("No TvDb Id found on parent series")); }
public async Task LoadFrom_EpisodeLoadFail_Fails() { this.embyItemData.Identifier.Returns(new ItemIdentifier(4, 1, "Name")); 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 load parent series with TvDb Id '22'")); }
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 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"))); }
public void CanLoadFrom_WrongItemType_IsFalse() { var loader = new TvDbEpisodeFromEmbyData(this.sources, this.tvDbClient, this.titleNormaliser); loader.CanLoadFrom(MediaItemTypes.Season).Should().BeFalse(); }
public void CanLoadFrom_Null_IsFalse() { var loader = new TvDbEpisodeFromEmbyData(this.sources, this.tvDbClient, this.titleNormaliser); loader.CanLoadFrom(null).Should().BeFalse(); }
public void CanLoadFrom_CorrectItemType_IsTrue() { var loader = new TvDbEpisodeFromEmbyData(this.sources, this.tvDbClient, this.titleNormaliser); loader.CanLoadFrom(MediaItemTypes.Episode).Should().BeTrue(); }