private async Task <Option <TvDbEpisodeData> > MapEpisodeWithDefaultSeasonAsync(int aniDbEpisodeIndex,
                                                                                        int tvDbSeriesId, int defaultTvDbEpisodeIndexOffset, int defaultTvDbSeasonIndex)
        {
            var tvDbEpisodeIndex = aniDbEpisodeIndex + defaultTvDbEpisodeIndexOffset;

            var tvDbEpisodeData =
                await _tvDbClient.GetEpisodeAsync(tvDbSeriesId, defaultTvDbSeasonIndex, tvDbEpisodeIndex);

            return(tvDbEpisodeData.Match(d =>
            {
                _log.Debug(
                    $"Found mapped TvDb episode: {tvDbEpisodeData}");

                return d;
            }, () => Option <TvDbEpisodeData> .None));
        }
        public async Task MapEpisodeAsync_AbsoluteDefaultTvDbSeason_MapsOnAbsoluteEpisodeIndex()
        {
            _seriesMapping.Ids.Returns(new SeriesIds(12, 33, Option <int> .None, Option <int> .None));
            _seriesMapping.DefaultTvDbSeason.Returns(new AbsoluteTvDbSeason());

            var tvDbEpisodeData = TvDbTestData.Episode(3);

            _tvDbClient.GetEpisodeAsync(33, 10).Returns(tvDbEpisodeData);

            var defaultSeasonEpisodeMapper = new DefaultSeasonEpisodeMapper(_tvDbClient, _logManager);

            var result = await defaultSeasonEpisodeMapper.MapEpisodeAsync(10, _seriesMapping);

            await _tvDbClient.Received(1).GetEpisodeAsync(33, 10);

            result.ValueUnsafe().Should().Be(tvDbEpisodeData);
        }