Radarr/src/NzbDrone.Core.Test/DecisionEngineTests/CutoffSpecificationFixture.cs

103 lines
4.2 KiB
C#
Raw Normal View History

2019-06-11 02:59:39 +00:00
using System.Collections.Generic;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.CustomFormats;
2019-12-22 22:08:53 +00:00
using NzbDrone.Core.DecisionEngine.Specifications;
using NzbDrone.Core.Profiles;
using NzbDrone.Core.Qualities;
using NzbDrone.Core.Test.CustomFormats;
2019-12-22 22:08:53 +00:00
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.DecisionEngineTests
{
[TestFixture]
public class CutoffSpecificationFixture : CoreTest<UpgradableSpecification>
{
private CustomFormat _customFormat;
[SetUp]
public void Setup()
{
}
private void GivenCustomFormatHigher()
{
_customFormat = new CustomFormat("My Format", "L_ENGLISH") { Id = 1 };
CustomFormatsFixture.GivenCustomFormats(_customFormat, CustomFormat.None);
}
[Test]
public void should_return_true_if_current_episode_is_less_than_cutoff()
{
2019-06-11 02:59:39 +00:00
Subject.CutoffNotMet(new Profile { Cutoff = Quality.Bluray1080p.Id, Items = Qualities.QualityFixture.GetDefaultQualities() },
2014-09-01 02:28:42 +00:00
new QualityModel(Quality.DVD, new Revision(version: 2))).Should().BeTrue();
}
[Test]
public void should_return_false_if_current_episode_is_equal_to_cutoff()
{
2019-06-11 02:59:39 +00:00
Subject.CutoffNotMet(new Profile { Cutoff = Quality.HDTV720p.Id, Items = Qualities.QualityFixture.GetDefaultQualities() },
2014-09-01 02:28:42 +00:00
new QualityModel(Quality.HDTV720p, new Revision(version: 2))).Should().BeFalse();
}
[Test]
public void should_return_false_if_current_episode_is_greater_than_cutoff()
{
2019-06-11 02:59:39 +00:00
Subject.CutoffNotMet(new Profile { Cutoff = Quality.HDTV720p.Id, Items = Qualities.QualityFixture.GetDefaultQualities() },
2014-09-01 02:28:42 +00:00
new QualityModel(Quality.Bluray1080p, new Revision(version: 2))).Should().BeFalse();
}
[Test]
public void should_return_true_when_new_episode_is_proper_but_existing_is_not()
{
2019-06-11 02:59:39 +00:00
Subject.CutoffNotMet(new Profile { Cutoff = Quality.HDTV720p.Id, Items = Qualities.QualityFixture.GetDefaultQualities() },
2014-09-01 02:28:42 +00:00
new QualityModel(Quality.HDTV720p, new Revision(version: 1)),
new QualityModel(Quality.HDTV720p, new Revision(version: 2))).Should().BeTrue();
}
[Test]
public void should_return_false_if_cutoff_is_met_and_quality_is_higher()
{
2019-06-11 02:59:39 +00:00
Subject.CutoffNotMet(new Profile { Cutoff = Quality.HDTV720p.Id, Items = Qualities.QualityFixture.GetDefaultQualities() },
2014-09-01 02:28:42 +00:00
new QualityModel(Quality.HDTV720p, new Revision(version: 2)),
new QualityModel(Quality.Bluray1080p, new Revision(version: 2))).Should().BeFalse();
}
[Test]
public void should_return_false_if_custom_formats_is_met_and_quality_and_format_higher()
{
GivenCustomFormatHigher();
var old = new QualityModel(Quality.HDTV720p);
old.CustomFormats = new List<CustomFormat> { CustomFormat.None };
var newQ = new QualityModel(Quality.Bluray1080p);
newQ.CustomFormats = new List<CustomFormat> { _customFormat };
Subject.CutoffNotMet(
new Profile
{
2019-06-11 02:59:39 +00:00
Cutoff = Quality.HDTV720p.Id,
Items = Qualities.QualityFixture.GetDefaultQualities(),
FormatCutoff = CustomFormat.None.Id,
FormatItems = CustomFormatsFixture.GetSampleFormatItems("None", "My Format")
2019-12-22 22:08:53 +00:00
},
old,
newQ).Should().BeFalse();
}
[Test]
public void should_return_true_if_cutoffs_are_met_but_is_a_revision_upgrade()
{
2019-12-22 22:08:53 +00:00
Profile profile = new Profile
{
Cutoff = Quality.HDTV1080p.Id,
Items = Qualities.QualityFixture.GetDefaultQualities(),
};
Subject.CutoffNotMet(
2019-12-22 22:08:53 +00:00
profile,
new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)),
new QualityModel(Quality.WEBDL1080p, new Revision(version: 2))).Should().BeTrue();
}
}
2014-09-01 02:28:42 +00:00
}