mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-04-25 22:46:31 -04:00
New: Store and use original Series language
This commit is contained in:
+13
-7
@@ -18,6 +18,7 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators
|
||||
public class AggregateLanguageFixture : CoreTest<AggregateLanguage>
|
||||
{
|
||||
private LocalEpisode _localEpisode;
|
||||
private Series _series;
|
||||
private string _simpleReleaseTitle = "Series.Title.S01E01.xyz-RlsGroup";
|
||||
|
||||
[SetUp]
|
||||
@@ -26,11 +27,16 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators
|
||||
var episodes = Builder<Episode>.CreateListOfSize(1)
|
||||
.BuildList();
|
||||
|
||||
_series = Builder<Series>.CreateNew()
|
||||
.With(m => m.OriginalLanguage = Language.English)
|
||||
.Build();
|
||||
|
||||
_localEpisode = Builder<LocalEpisode>.CreateNew()
|
||||
.With(l => l.DownloadClientEpisodeInfo = null)
|
||||
.With(l => l.FolderEpisodeInfo = null)
|
||||
.With(l => l.FileEpisodeInfo = null)
|
||||
.With(l => l.Episodes = episodes)
|
||||
.With(l => l.Series = _series)
|
||||
.Build();
|
||||
}
|
||||
|
||||
@@ -72,7 +78,7 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators
|
||||
{
|
||||
var result = Subject.Aggregate(_localEpisode, null);
|
||||
|
||||
result.Languages.Should().Contain(Language.English);
|
||||
result.Languages.Should().Contain(_series.OriginalLanguage);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -120,13 +126,13 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators
|
||||
[Test]
|
||||
public void should_return_file_language_when_file_language_is_higher_than_others()
|
||||
{
|
||||
_localEpisode.DownloadClientEpisodeInfo = GetParsedEpisodeInfo(new List<Language> { Language.English }, _simpleReleaseTitle);
|
||||
_localEpisode.FolderEpisodeInfo = GetParsedEpisodeInfo(new List<Language> { Language.English }, _simpleReleaseTitle);
|
||||
_localEpisode.DownloadClientEpisodeInfo = GetParsedEpisodeInfo(new List<Language> { Language.Unknown }, _simpleReleaseTitle);
|
||||
_localEpisode.FolderEpisodeInfo = GetParsedEpisodeInfo(new List<Language> { Language.Unknown }, _simpleReleaseTitle);
|
||||
_localEpisode.FileEpisodeInfo = GetParsedEpisodeInfo(new List<Language> { Language.French }, _simpleReleaseTitle);
|
||||
|
||||
GivenAugmenters(new List<Language> { Language.French },
|
||||
new List<Language> { Language.English },
|
||||
new List<Language> { Language.English },
|
||||
new List<Language> { Language.Unknown },
|
||||
new List<Language> { Language.Unknown },
|
||||
null);
|
||||
|
||||
Subject.Aggregate(_localEpisode, null).Languages.Should().Contain(_localEpisode.FileEpisodeInfo.Languages);
|
||||
@@ -135,9 +141,9 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Aggregation.Aggregators
|
||||
[Test]
|
||||
public void should_return_multi_language()
|
||||
{
|
||||
GivenAugmenters(new List<Language> { Language.English },
|
||||
GivenAugmenters(new List<Language> { Language.Unknown },
|
||||
new List<Language> { Language.French, Language.German },
|
||||
new List<Language> { Language.English },
|
||||
new List<Language> { Language.Unknown },
|
||||
null);
|
||||
|
||||
Subject.Aggregate(_localEpisode, null).Languages.Should().Equal(new List<Language> { Language.French, Language.German });
|
||||
|
||||
-40
@@ -260,46 +260,6 @@ namespace NzbDrone.Core.Test.MediaFiles.EpisodeImport.Specifications
|
||||
Subject.IsSatisfiedBy(_localEpisode, null).Accepted.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_it_is_a_preferred_word_downgrade_and_equal_language_and_quality()
|
||||
{
|
||||
var lowFormat = new List<CustomFormat> { new CustomFormat("Bad Format", new ResolutionSpecification { Value = (int)Resolution.R1080p }) { Id = 2 } };
|
||||
|
||||
CustomFormatsFixture.GivenCustomFormats(lowFormat.First());
|
||||
|
||||
_series.QualityProfile.Value.FormatItems = CustomFormatsFixture.GetSampleFormatItems();
|
||||
|
||||
Mocker.GetMock<IConfigService>()
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.DoNotPrefer);
|
||||
|
||||
Mocker.GetMock<ICustomFormatCalculationService>()
|
||||
.Setup(s => s.ParseCustomFormat(It.IsAny<EpisodeFile>()))
|
||||
.Returns(new List<CustomFormat>());
|
||||
|
||||
Mocker.GetMock<ICustomFormatCalculationService>()
|
||||
.Setup(s => s.ParseCustomFormat(It.IsAny<ParsedEpisodeInfo>()))
|
||||
.Returns(lowFormat);
|
||||
|
||||
_localEpisode.Quality = new QualityModel(Quality.Bluray1080p);
|
||||
|
||||
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
||||
.All()
|
||||
.With(e => e.EpisodeFileId = 1)
|
||||
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
||||
new EpisodeFile
|
||||
{
|
||||
Quality = new QualityModel(Quality.Bluray1080p),
|
||||
Languages = new List<Language> { Language.Spanish }
|
||||
}))
|
||||
.Build()
|
||||
.ToList();
|
||||
|
||||
_localEpisode.FileEpisodeInfo = Builder<ParsedEpisodeInfo>.CreateNew().Build();
|
||||
|
||||
Subject.IsSatisfiedBy(_localEpisode, null).Accepted.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_it_is_a_preferred_word_downgrade_and_language_downgrade_and_a_quality_upgrade()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user