1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-10-29 23:12:39 +01:00

Fixed: All preferred words being added to filename

This commit is contained in:
Mark McDowall 2019-03-04 18:31:53 -08:00
parent 582beed977
commit 984b7bbeea
3 changed files with 86 additions and 1 deletions

View File

@ -351,6 +351,7 @@
<Compile Include="ParserTests\ValidateParsedEpisodeInfoFixture.cs" />
<Compile Include="Profiles\Delay\DelayProfileServiceFixture.cs" />
<Compile Include="Profiles\Qualities\QualityIndexCompareToFixture.cs" />
<Compile Include="Profiles\Releases\PreferredWordService\GetMatchingPreferredWordsFixture.cs" />
<Compile Include="Profiles\Releases\PreferredWordService\CalculateFixture.cs" />
<Compile Include="Qualities\QualityFinderFixture.cs" />
<Compile Include="Qualities\RevisionComparableFixture.cs" />

View File

@ -0,0 +1,79 @@
using System.Collections.Generic;
using System.Linq;
using FizzWare.NBuilder;
using FluentAssertions;
using Moq;
using NUnit.Framework;
using NzbDrone.Core.Profiles.Releases;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Core.Tv;
namespace NzbDrone.Core.Test.Profiles.Releases.PreferredWordService
{
[TestFixture]
public class GetMatchingPreferredWordsFixture : CoreTest<Core.Profiles.Releases.PreferredWordService>
{
private Series _series = null;
private List<ReleaseProfile> _releaseProfiles = null;
private string _title = "Series.Title.S01E01.720p.HDTV.x264-Sonarr";
[SetUp]
public void Setup()
{
_series = Builder<Series>.CreateNew()
.With(s => s.Tags = new HashSet<int>(new[] {1, 2}))
.Build();
_releaseProfiles = new List<ReleaseProfile>();
_releaseProfiles.Add(new ReleaseProfile
{
Preferred = new List<KeyValuePair<string, int>>
{
new KeyValuePair<string, int>("x264", 5),
new KeyValuePair<string, int>("x265", -10)
}
});
Mocker.GetMock<ITermMatcherService>()
.Setup(s => s.MatchingTerm(It.IsAny<string>(), _title))
.Returns<string, string>((term, title) => title.Contains(term) ? term : null);
}
private void GivenReleaseProfile()
{
Mocker.GetMock<IReleaseProfileService>()
.Setup(s => s.AllForTags(It.IsAny<HashSet<int>>()))
.Returns(_releaseProfiles);
}
[Test]
public void should_return_empty_list_when_there_are_no_release_profiles()
{
Mocker.GetMock<IReleaseProfileService>()
.Setup(s => s.AllForTags(It.IsAny<HashSet<int>>()))
.Returns(new List<ReleaseProfile>());
Subject.GetMatchingPreferredWords(_series, _title).Should().BeEmpty();
}
[Test]
public void should_return_empty_list_when_there_are_no_matching_preferred_words()
{
_releaseProfiles.First().Preferred.RemoveAt(0);
GivenReleaseProfile();
Subject.GetMatchingPreferredWords(_series, _title).Should().BeEmpty();
}
[Test]
public void should_return_list_of_matching_terms()
{
GivenReleaseProfile();
Subject.GetMatchingPreferredWords(_series, _title).Should().Contain(new[] {"x264"});
}
}
}

View File

@ -16,7 +16,12 @@
public string MatchingTerm(string value)
{
return _term;
if (value.ToLowerInvariant().Contains(_term))
{
return _term;
}
return null;
}
}
}