diff --git a/src/NzbDrone.Core.Test/IndexerTests/HDBitsTests/HDBitsRequestGeneratorFixture.cs b/src/NzbDrone.Core.Test/IndexerTests/HDBitsTests/HDBitsRequestGeneratorFixture.cs index db8aa7512..476dd1396 100644 --- a/src/NzbDrone.Core.Test/IndexerTests/HDBitsTests/HDBitsRequestGeneratorFixture.cs +++ b/src/NzbDrone.Core.Test/IndexerTests/HDBitsTests/HDBitsRequestGeneratorFixture.cs @@ -1,8 +1,10 @@ +using System.Collections.Generic; using System.Linq; using FluentAssertions; using Newtonsoft.Json; using NUnit.Framework; using NzbDrone.Common.Http; +using NzbDrone.Core.Indexers; using NzbDrone.Core.Indexers.HDBits; using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.Test.Framework; @@ -22,6 +24,27 @@ public void Setup() Username = "somename" }; + Subject.Capabilities = new IndexerCapabilities + { + TvSearchParams = new List + { + TvSearchParam.Q, TvSearchParam.Season, TvSearchParam.Ep, TvSearchParam.TvdbId + }, + MovieSearchParams = new List + { + MovieSearchParam.Q, MovieSearchParam.ImdbId + }, + }; + + Subject.Capabilities.Categories.AddCategoryMapping(6, NewznabStandardCategory.Audio, "Audio Track"); + Subject.Capabilities.Categories.AddCategoryMapping(3, NewznabStandardCategory.TVDocumentary, "Documentary"); + Subject.Capabilities.Categories.AddCategoryMapping(8, NewznabStandardCategory.Other, "Misc/Demo"); + Subject.Capabilities.Categories.AddCategoryMapping(1, NewznabStandardCategory.Movies, "Movie"); + Subject.Capabilities.Categories.AddCategoryMapping(4, NewznabStandardCategory.Audio, "Music"); + Subject.Capabilities.Categories.AddCategoryMapping(5, NewznabStandardCategory.TVSport, "Sport"); + Subject.Capabilities.Categories.AddCategoryMapping(2, NewznabStandardCategory.TV, "TV"); + Subject.Capabilities.Categories.AddCategoryMapping(7, NewznabStandardCategory.XXX, "XXX"); + _movieSearchCriteria = new MovieSearchCriteria { Categories = new int[] { 2000, 2010 }, @@ -29,11 +52,6 @@ public void Setup() }; } - private void MovieWithoutIMDB() - { - _movieSearchCriteria.ImdbId = null; - } - [Test] public void should_search_by_imdbid_if_supported() { @@ -49,17 +67,8 @@ public void should_search_by_imdbid_if_supported() var body = encoding.GetString(page.HttpRequest.ContentData); var query = JsonConvert.DeserializeObject(body); - query.Category.Should().HaveCount(2); + query.Category.Should().HaveCount(1); query.ImdbInfo.Id.Should().Be(imdbQuery); } - - [Test] - public void should_return_no_results_if_no_imdb() - { - MovieWithoutIMDB(); - - var results = Subject.GetSearchRequests(_movieSearchCriteria); - results.GetTier(0).Should().HaveCount(0); - } } } diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBits.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBits.cs index 5f75c0f68..8deaf10c4 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBits.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBits.cs @@ -23,7 +23,7 @@ public HDBits(IHttpClient httpClient, IIndexerStatusService indexerStatusService public override IIndexerRequestGenerator GetRequestGenerator() { - return new HDBitsRequestGenerator() { Settings = Settings, BaseUrl = BaseUrl }; + return new HDBitsRequestGenerator() { Settings = Settings, BaseUrl = BaseUrl, Capabilities = Capabilities }; } public override IParseIndexerResponse GetParser() diff --git a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs index ecafbfc10..f642fb939 100644 --- a/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs +++ b/src/NzbDrone.Core/Indexers/Definitions/HDBits/HDBitsRequestGenerator.cs @@ -29,12 +29,15 @@ public virtual IndexerPageableRequestChain GetSearchRequests(MovieSearchCriteria query.Search = searchCriteria.SanitizedSearchTerm; } - var imdbId = int.Parse(searchCriteria.ImdbId.Substring(2)); - - if (imdbId != 0) + if (searchCriteria.ImdbId.IsNotNullOrWhiteSpace()) { - query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo(); - query.ImdbInfo.Id = imdbId; + var imdbId = int.Parse(searchCriteria.ImdbId.Substring(2)); + + if (imdbId != 0) + { + query.ImdbInfo = query.ImdbInfo ?? new ImdbInfo(); + query.ImdbInfo.Id = imdbId; + } } pageableRequests.Add(GetRequest(query));