fixed: return proper error when searching for invalid tvdb id.

pull/3113/head
Keivan Beigi 10 years ago
parent 46bf80dcd1
commit d5da0ec4dd

@ -44,10 +44,14 @@ namespace NzbDrone.Core.Test.MetadataSourceTests
result[0].Title.Should().Be(expected); result[0].Title.Should().Be(expected);
} }
[Test] [TestCase("tvdbid:")]
public void no_search_result() [TestCase("tvdbid: 99999999999999999999")]
[TestCase("tvdbid: 0")]
[TestCase("tvdbid: -12")]
[TestCase("adjalkwdjkalwdjklawjdlKAJD;EF")]
public void no_search_result(string term)
{ {
var result = Subject.SearchForNewSeries(Guid.NewGuid().ToString()); var result = Subject.SearchForNewSeries(term);
result.Should().BeEmpty(); result.Should().BeEmpty();
} }

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Web; using System.Web;
using NLog; using NLog;
@ -37,13 +38,27 @@ namespace NzbDrone.Core.MetadataSource
int tvdbId; int tvdbId;
if (slug.IsNullOrWhiteSpace() || slug.Any(char.IsWhiteSpace) || !Int32.TryParse(slug, out tvdbId)) if (slug.IsNullOrWhiteSpace() || slug.Any(char.IsWhiteSpace) || !Int32.TryParse(slug, out tvdbId) || tvdbId <= 0)
{ {
return Enumerable.Empty<TVDBSharp.Models.Show>(); return Enumerable.Empty<TVDBSharp.Models.Show>();
} }
try
{
return new[] { _tvdb.GetShow(tvdbId) }; return new[] { _tvdb.GetShow(tvdbId) };
} }
catch (WebException ex)
{
var resp = ex.Response as HttpWebResponse;
if (resp != null && resp.StatusCode == HttpStatusCode.NotFound)
{
return Enumerable.Empty<TVDBSharp.Models.Show>();
}
throw;
}
}
return _tvdb.Search(GetSearchTerm(lowerTitle), 10); return _tvdb.Search(GetSearchTerm(lowerTitle), 10);
} }

Loading…
Cancel
Save