public async Task MapAniDbEpisodeAsync_GroupMappingWithoutTvDbSeriesId_ReturnsNone()
        {
            var episodeMapper = new EpisodeMapper(this.defaultSeasonEpisodeMapper, this.groupMappingEpisodeMapper);

            var episodeData = await episodeMapper.MapAniDbEpisodeAsync(3, this.seriesMapping,
                                                                       new EpisodeGroupMapping(1, 1, 3, 1, 1, new List <EpisodeMapping>()))
                              .ToOption();

            episodeData.IsNone.Should().BeTrue();
        }
        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 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);
        }