Don't throw error when episode title matching doesn't find a match

This commit is contained in:
Mark McDowall 2015-04-09 16:48:13 -07:00
parent f13a4b5aa5
commit c58d607349
2 changed files with 17 additions and 2 deletions

View File

@ -59,5 +59,15 @@ namespace NzbDrone.Core.Test.TvTests.EpisodeServiceTests
.Should()
.Be(expectedTitle);
}
[Test]
public void should_return_null_when_no_match_is_found()
{
GivenEpisodesWithTitles();
Subject.FindEpisodeByTitle(1, 1, "The.Walking.Dead.S04.Special.Inside.The.Walking.Dead.Walker.University.720p.HDTV.x264-W4F")
.Should()
.BeNull();
}
}
}

View File

@ -109,7 +109,7 @@ namespace NzbDrone.Core.Tv
var normalizedReleaseTitle = Parser.Parser.NormalizeEpisodeTitle(releaseTitle).Replace(".", " ");
var episodes = _episodeRepository.GetEpisodes(seriesId, seasonNumber);
var query = episodes.Select(
var matches = episodes.Select(
episode => new
{
Position = normalizedReleaseTitle.IndexOf(Parser.Parser.NormalizeEpisodeTitle(episode.Title), StringComparison.CurrentCultureIgnoreCase),
@ -121,7 +121,12 @@ namespace NzbDrone.Core.Tv
.ThenByDescending(e => e.Length)
.ToList();
return query.First().Episode;
if (matches.Any())
{
return matches.First().Episode;
}
return null;
}
public List<Episode> EpisodesWithFiles(int seriesId)