SearchForSeries won't fail if an apostrophe is used in the search term (Let's PetaPoco handle building the query, as it should).

pull/4/head
Mark McDowall 13 years ago
parent 51958672d0
commit 58abb6fbc2

@ -721,5 +721,30 @@ namespace NzbDrone.Core.Test.ProviderTests
//Assert //Assert
series.Should().HaveCount(0); series.Should().HaveCount(0);
} }
[Test]
public void SearchForSeries_should_return_results_when_query_has_special_characters()
{
var mocker = new AutoMoqer(MockBehavior.Strict);
var db = TestDbHelper.GetEmptyDatabase();
mocker.SetConstant(db);
var fakeQuality = Builder<QualityProfile>.CreateNew().Build();
var fakeSeries = Builder<Series>.CreateListOfSize(10)
.All()
.With(e => e.QualityProfileId = fakeQuality.QualityProfileId)
.TheLast(1)
.With(s => s.Title = "It's Always Sunny")
.Build();
db.InsertMany(fakeSeries);
db.Insert(fakeQuality);
//Act
var series = mocker.Resolve<SeriesProvider>().SearchForSeries("it's");
//Assert
series.Should().HaveCount(1);
}
} }
} }

@ -186,11 +186,11 @@ namespace NzbDrone.Core.Providers
public virtual List<Series> SearchForSeries(string title) public virtual List<Series> SearchForSeries(string title)
{ {
var query = String.Format(@"SELECT * FROM Series var query = String.Format("%{0}%", title);
INNER JOIN QualityProfiles ON Series.QualityProfileId = QualityProfiles.QualityProfileId
WHERE Title LIKE '%{0}%'", title);
var series = _database.Fetch<Series, QualityProfile>(query); var series = _database.Fetch<Series, QualityProfile>(@"SELECT * FROM Series
INNER JOIN QualityProfiles ON Series.QualityProfileId = QualityProfiles.QualityProfileId
WHERE Title LIKE @0", query);
return series; return series;
} }

Loading…
Cancel
Save