mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-04-23 22:25:56 -04:00
@@ -33,6 +33,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_episodes = Builder<Episode>.CreateListOfSize(10)
|
||||
.All()
|
||||
.With(s => s.SeasonNumber = 1)
|
||||
.With(s => s.Runtime = 30)
|
||||
.BuildList();
|
||||
|
||||
_parseResultMultiSet = new RemoteEpisode
|
||||
@@ -40,7 +41,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Series = _series,
|
||||
Release = new ReleaseInfo(),
|
||||
ParsedEpisodeInfo = new ParsedEpisodeInfo { Quality = new QualityModel(Quality.SDTV, new Revision(version: 2)) },
|
||||
Episodes = Builder<Episode>.CreateListOfSize(6).All().With(s => s.SeasonNumber = 1).BuildList()
|
||||
Episodes = Builder<Episode>.CreateListOfSize(6)
|
||||
.All()
|
||||
.With(s => s.SeasonNumber = 1)
|
||||
.With(s => s.Runtime = 30)
|
||||
.BuildList()
|
||||
};
|
||||
|
||||
_parseResultMulti = new RemoteEpisode
|
||||
@@ -48,7 +53,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Series = _series,
|
||||
Release = new ReleaseInfo(),
|
||||
ParsedEpisodeInfo = new ParsedEpisodeInfo { Quality = new QualityModel(Quality.SDTV, new Revision(version: 2)) },
|
||||
Episodes = Builder<Episode>.CreateListOfSize(2).All().With(s => s.SeasonNumber = 1).BuildList()
|
||||
Episodes = Builder<Episode>.CreateListOfSize(2)
|
||||
.All()
|
||||
.With(s => s.SeasonNumber = 1)
|
||||
.With(s => s.Runtime = 30)
|
||||
.BuildList()
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteEpisode
|
||||
@@ -61,6 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Builder<Episode>.CreateNew()
|
||||
.With(s => s.SeasonNumber = 1)
|
||||
.With(s => s.EpisodeNumber = 1)
|
||||
.With(s => s.Runtime = 30)
|
||||
.Build()
|
||||
}
|
||||
};
|
||||
@@ -94,13 +104,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
_parseResultSingle.Episodes.First().Id = 5;
|
||||
_parseResultSingle.Episodes.First().Runtime = runtime;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
|
||||
[TestCase(30, 500, true)]
|
||||
[TestCase(30, 250, true)]
|
||||
[TestCase(30, 1000, false)]
|
||||
[TestCase(60, 1000, true)]
|
||||
[TestCase(60, 250, true)]
|
||||
[TestCase(60, 2000, false)]
|
||||
public void should_return_expected_result_for_first_episode_of_season(int runtime, int sizeInMegaBytes, bool expectedResult)
|
||||
{
|
||||
@@ -108,13 +119,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
_parseResultSingle.Episodes.First().Id = _episodes.First().Id;
|
||||
_parseResultSingle.Episodes.First().Runtime = _episodes.First().Runtime;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
|
||||
[TestCase(30, 500, true)]
|
||||
[TestCase(30, 250, true)]
|
||||
[TestCase(30, 1000, false)]
|
||||
[TestCase(60, 1000, true)]
|
||||
[TestCase(60, 250, true)]
|
||||
[TestCase(60, 2000, false)]
|
||||
public void should_return_expected_result_for_last_episode_of_season(int runtime, int sizeInMegaBytes, bool expectedResult)
|
||||
{
|
||||
@@ -122,6 +134,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
_parseResultSingle.Episodes.First().Id = _episodes.Last().Id;
|
||||
_parseResultSingle.Episodes.First().Runtime = _episodes.First().Runtime;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
@@ -137,6 +150,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = runtime;
|
||||
_parseResultMulti.Series = _series;
|
||||
_parseResultMulti.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
_parseResultMulti.Episodes.ForEach(e => e.Runtime = runtime);
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
@@ -152,6 +166,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = runtime;
|
||||
_parseResultMultiSet.Series = _series;
|
||||
_parseResultMultiSet.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
_parseResultMultiSet.Episodes.ForEach(e => e.Runtime = runtime);
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMultiSet, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
@@ -162,6 +177,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = 30;
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = 0;
|
||||
_parseResultSingle.Episodes.First().Runtime = 30;
|
||||
_qualityType.MinSize = 10;
|
||||
_qualityType.MaxSize = 20;
|
||||
|
||||
@@ -174,6 +190,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = 30;
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = 18457280000;
|
||||
_parseResultSingle.Episodes.First().Runtime = 30;
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
@@ -185,6 +202,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = 60;
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = 36857280000;
|
||||
_parseResultSingle.Episodes.First().Runtime = 60;
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
@@ -197,6 +215,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Series.SeriesType = SeriesTypes.Daily;
|
||||
_parseResultSingle.Release.Size = 300.Megabytes();
|
||||
_parseResultSingle.Episodes.First().Runtime = 60;
|
||||
|
||||
_qualityType.MaxSize = 10;
|
||||
|
||||
@@ -212,6 +231,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Series.SeriesType = SeriesTypes.Daily;
|
||||
_parseResultSingle.Release.Size = 8000.Megabytes();
|
||||
_parseResultSingle.Episodes.First().Runtime = 30;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
@@ -232,6 +252,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Episodes.First().Id = 5;
|
||||
_parseResultSingle.Release.Size = 200.Megabytes();
|
||||
_parseResultSingle.Episodes.First().SeasonNumber = 2;
|
||||
_parseResultSingle.Episodes.First().Runtime = 0;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(false);
|
||||
}
|
||||
@@ -247,6 +268,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Episodes.First().SeasonNumber = 1;
|
||||
_parseResultSingle.Episodes.First().EpisodeNumber = 2;
|
||||
_parseResultSingle.Episodes.First().AirDateUtc = _episodes.First().AirDateUtc.Value.AddDays(7);
|
||||
_parseResultSingle.Episodes.First().Runtime = 0;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(false);
|
||||
}
|
||||
@@ -262,6 +284,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultSingle.Episodes.First().SeasonNumber = 1;
|
||||
_parseResultSingle.Episodes.First().EpisodeNumber = 2;
|
||||
_parseResultSingle.Episodes.First().AirDateUtc = _episodes.First().AirDateUtc.Value.AddHours(1);
|
||||
_parseResultSingle.Episodes.First().Runtime = 0;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(true);
|
||||
}
|
||||
@@ -272,7 +295,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_series.Runtime = 0;
|
||||
_parseResultMulti.Series = _series;
|
||||
_parseResultMulti.Release.Size = 200.Megabytes();
|
||||
_parseResultMulti.Episodes.ForEach(e => e.SeasonNumber = 2);
|
||||
_parseResultMulti.Episodes.ForEach(e =>
|
||||
{
|
||||
e.SeasonNumber = 2;
|
||||
e.Runtime = 0;
|
||||
});
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().Be(false);
|
||||
}
|
||||
@@ -290,6 +317,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
e.SeasonNumber = 1;
|
||||
e.AirDateUtc = airDateUtc;
|
||||
e.Runtime = 0;
|
||||
});
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().Be(false);
|
||||
@@ -308,9 +336,29 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
e.SeasonNumber = 1;
|
||||
e.AirDateUtc = airDateUtc;
|
||||
e.Runtime = 0;
|
||||
});
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().Be(true);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_use_series_runtime_if_episode_runtime_is_not_set()
|
||||
{
|
||||
var airDateUtc = _episodes.First().AirDateUtc.Value.AddHours(1);
|
||||
|
||||
_series.Runtime = 30;
|
||||
|
||||
_parseResultSingle.Series = _series;
|
||||
_parseResultSingle.Release.Size = 200.Megabytes();
|
||||
_parseResultSingle.Episodes.ForEach(e =>
|
||||
{
|
||||
e.SeasonNumber = 1;
|
||||
e.AirDateUtc = airDateUtc;
|
||||
e.Runtime = 0;
|
||||
});
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user