mirror of
https://github.com/Radarr/Radarr.git
synced 2026-04-27 22:57:09 -04:00
New: Multiple Quality Profiles and Files Per Movie
This commit is contained in:
@@ -57,7 +57,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie = _movie;
|
||||
_remoteMovie.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().Be(expectedResult);
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted == expectedResult);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_qualityType.MinSize = 10;
|
||||
_qualityType.MaxSize = 20;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Release.Size = 18457280000;
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -91,7 +91,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Release.Size = 36857280000;
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -101,9 +101,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie = _movie;
|
||||
_remoteMovie.Release.Size = 1095.Megabytes();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().Be(true);
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
_remoteMovie.Release.Size = 1105.Megabytes();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().Be(false);
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
ExceptionVerification.ExpectedWarns(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using NzbDrone.Core.Configuration;
|
||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||
using NzbDrone.Core.History;
|
||||
using NzbDrone.Core.Indexers;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.Movies;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Qualities;
|
||||
@@ -22,6 +23,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
private const string TITLE = "Movie.Title.2018.720p.HDTV.x264-Radarr";
|
||||
|
||||
private Movie _movie;
|
||||
private MovieFile _movieFile;
|
||||
private QualityModel _hdtv720p;
|
||||
private QualityModel _hdtv1080p;
|
||||
private RemoteMovie _remoteMovie;
|
||||
@@ -32,9 +34,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
_movie = Builder<Movie>.CreateNew()
|
||||
.With(m => m.Id = FIRST_MOVIE_ID)
|
||||
.With(m => m.MovieFileId = 1)
|
||||
.Build();
|
||||
|
||||
_movieFile = Builder<MovieFile>.CreateNew().With(m => m.MovieId = _movie.Id).Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { _movieFile };
|
||||
|
||||
_hdtv720p = new QualityModel(Quality.HDTV720p, new Revision(version: 1));
|
||||
_hdtv1080p = new QualityModel(Quality.HDTV1080p, new Revision(version: 1));
|
||||
|
||||
@@ -81,21 +86,21 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenCdhDisabled();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_accepted_if_movie_does_not_have_a_file()
|
||||
{
|
||||
_remoteMovie.Movie.MovieFileId = 0;
|
||||
_movie.MovieFiles = new List<MovieFile> { };
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_accepted_if_movie_does_not_have_grabbed_event()
|
||||
{
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -103,7 +108,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenHistoryItem(Guid.NewGuid().ToString().ToUpper(), TITLE, _hdtv720p, MovieHistoryEventType.Grabbed);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -114,7 +119,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenHistoryItem(downloadId, TITLE, _hdtv720p, MovieHistoryEventType.Grabbed);
|
||||
GivenHistoryItem(downloadId, TITLE, _hdtv720p, MovieHistoryEventType.DownloadFolderImported);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -130,7 +135,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(t => t.InfoHash = null)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -146,7 +151,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(t => t.InfoHash = downloadId)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -162,7 +167,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(t => t.InfoHash = downloadId)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -178,7 +183,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(t => t.InfoHash = downloadId)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_return_true_if_no_blocked_indexer()
|
||||
{
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -47,7 +47,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
WithBlockedIndexer();
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
Subject.Type.Should().Be(RejectionType.Temporary);
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -56,7 +56,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie.Profile.FormatItems = CustomFormatsTestHelpers.GetSampleFormatItems(_format1.Name);
|
||||
_remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Console.WriteLine(_remoteMovie.CustomFormatScore);
|
||||
Console.WriteLine(_remoteMovie.Movie.Profile.MinFormatScore);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -79,7 +79,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie.Profile.FormatItems = CustomFormatsTestHelpers.GetSampleFormatItems(_format1.Name);
|
||||
_remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie.Profile.FormatItems = CustomFormatsTestHelpers.GetSampleFormatItems(_format1.Name, _format2.Name);
|
||||
_remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -99,7 +99,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie.Profile.FormatItems = CustomFormatsTestHelpers.GetSampleFormatItems(_format1.Name, _format2.Name);
|
||||
_remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -110,7 +110,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.Movie.Profile.MinFormatScore = 0;
|
||||
_remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
private void GivenFileQuality(QualityModel quality)
|
||||
{
|
||||
_remoteMovie.Movie.MovieFile = Builder<MovieFile>.CreateNew().With(x => x.Quality = quality).Build();
|
||||
_remoteMovie.Movie.MovieFiles = new List<MovieFile> { Builder<MovieFile>.CreateNew().With(x => x.Quality = quality).Build() };
|
||||
}
|
||||
|
||||
private void GivenNewQuality(QualityModel quality)
|
||||
@@ -88,7 +88,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
});
|
||||
|
||||
GivenFileQuality(new QualityModel(Quality.DVD, new Revision(version: 2)));
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -102,7 +102,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
});
|
||||
|
||||
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)));
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -116,7 +116,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
});
|
||||
|
||||
GivenFileQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -131,7 +131,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 1)));
|
||||
GivenNewQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)));
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -146,7 +146,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenFileQuality(new QualityModel(Quality.HDTV720p, new Revision(version: 2)));
|
||||
GivenNewQuality(new QualityModel(Quality.Bluray1080p, new Revision(version: 2)));
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -169,7 +169,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenOldCustomFormats(new List<CustomFormat>());
|
||||
GivenNewCustomFormats(new List<CustomFormat> { _customFormat });
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -185,7 +185,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenFileQuality(new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)));
|
||||
GivenNewQuality(new QualityModel(Quality.WEBDL1080p, new Revision(version: 2)));
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -201,7 +201,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenFileQuality(new QualityModel(Quality.WEBDL1080p));
|
||||
GivenNewQuality(new QualityModel(Quality.Bluray1080p));
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ using NzbDrone.Core.IndexerSearch.Definitions;
|
||||
using NzbDrone.Core.Movies;
|
||||
using NzbDrone.Core.Parser;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Profiles;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
using NzbDrone.Test.Common;
|
||||
|
||||
@@ -42,18 +43,24 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_fail2 = new Mock<IDecisionEngineSpecification>();
|
||||
_fail3 = new Mock<IDecisionEngineSpecification>();
|
||||
|
||||
_pass1.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Accept);
|
||||
_pass2.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Accept);
|
||||
_pass3.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Accept);
|
||||
_pass1.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Accept() });
|
||||
_pass2.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Accept() });
|
||||
_pass3.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Accept() });
|
||||
|
||||
_fail1.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Reject("fail1"));
|
||||
_fail2.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Reject("fail2"));
|
||||
_fail3.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(Decision.Reject("fail3"));
|
||||
_fail1.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Reject("fail1") });
|
||||
_fail2.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Reject("fail2") });
|
||||
_fail3.Setup(c => c.IsSatisfiedBy(It.IsAny<RemoteMovie>(), null)).Returns(new List<Decision> { Decision.Reject("fail3") });
|
||||
|
||||
_reports = new List<ReleaseInfo> { new ReleaseInfo { Title = "Trolls.2016.720p.WEB-DL.DD5.1.H264-FGT" } };
|
||||
_remoteEpisode = new RemoteMovie
|
||||
{
|
||||
Movie = new Movie(),
|
||||
Movie = new Movie
|
||||
{
|
||||
QualityProfiles = new List<Profile>
|
||||
{
|
||||
new Profile()
|
||||
}
|
||||
},
|
||||
ParsedMovieInfo = new ParsedMovieInfo()
|
||||
};
|
||||
|
||||
|
||||
@@ -86,41 +86,41 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_return_true_if_it_is_a_search()
|
||||
{
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria()).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria()).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_latest_history_item_is_null()
|
||||
{
|
||||
Mocker.GetMock<IHistoryService>().Setup(s => s.MostRecentForMovie(It.IsAny<int>())).Returns((MovieHistory)null);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_latest_history_item_is_not_grabbed()
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, MovieHistoryEventType.DownloadFailed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
// [Test]
|
||||
// public void should_return_true_if_latest_history_has_a_download_id_and_cdh_is_enabled()
|
||||
// {
|
||||
// GivenMostRecentForEpisode(FIRST_EPISODE_ID, "test", _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
// _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue();
|
||||
// _upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => x.Accepted);
|
||||
// }
|
||||
[Test]
|
||||
public void should_return_true_if_latest_history_item_is_older_than_twelve_hours()
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-13), MovieHistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_upgradable_if_only_episode_is_upgradable()
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, MovieHistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -129,7 +129,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
GivenMostRecentForEpisode(SECOND_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -137,7 +137,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
GivenMostRecentForEpisode(SECOND_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -145,7 +145,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -153,7 +153,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
GivenMostRecentForEpisode(SECOND_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, HistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}*/
|
||||
|
||||
[Test]
|
||||
@@ -176,7 +176,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, MovieHistoryEventType.Grabbed);
|
||||
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -195,14 +195,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, MovieHistoryEventType.Grabbed);
|
||||
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_latest_history_item_is_only_one_hour_old()
|
||||
{
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _notupgradableQuality, DateTime.UtcNow.AddHours(-1), MovieHistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -210,7 +210,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenCdhDisabled();
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), MovieHistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -230,7 +230,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, "test", _upgradableQuality, DateTime.UtcNow.AddDays(-100), MovieHistoryEventType.Grabbed);
|
||||
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -238,7 +238,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenCdhDisabled();
|
||||
GivenMostRecentForEpisode(FIRST_EPISODE_ID, "test", _notupgradableQuality, DateTime.UtcNow.AddDays(-100), MovieHistoryEventType.Grabbed);
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
WithEnglishRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
WithGermanRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -77,7 +77,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
WithGermanRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -87,7 +87,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
WithFrenchRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -100,11 +100,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
WithGermanRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
|
||||
WithEnglishRelease();
|
||||
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Mocker.Resolve<LanguageSpecification>().IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMaximumSize(0);
|
||||
WithSize(1000);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMaximumSize(2000);
|
||||
WithSize(1999);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMaximumSize(2000);
|
||||
WithSize(2000);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -60,7 +60,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMaximumSize(2000);
|
||||
WithSize(2001);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMaximumSize(2000);
|
||||
WithSize(0);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMinimumAge(0);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMinimumAge(30);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithMinimumAge(30);
|
||||
WithAge(10);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,29 +56,29 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void setup_should_return_monitored_episode_should_return_true()
|
||||
{
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void not_monitored_series_should_be_skipped()
|
||||
{
|
||||
_fakeSeries.Monitored = false;
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultMulti, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void only_episode_not_monitored_should_return_false()
|
||||
{
|
||||
WithMovieUnmonitored();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_for_single_episode_search()
|
||||
{
|
||||
_fakeSeries.Monitored = false;
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria { UserInvokedSearch = true }).Accepted.Should().BeTrue();
|
||||
_monitoredEpisodeSpecification.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria { UserInvokedSearch = true }).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,8 +98,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p, new Revision(version: 1, real: 1)));
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Revision.Real.Should().Be(1);
|
||||
@@ -112,8 +112,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p, new Revision(version: 2)));
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Revision.Version.Should().Be(2);
|
||||
@@ -126,8 +126,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p));
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Quality.Should().Be(Quality.HDTV720p);
|
||||
@@ -142,10 +142,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovieHdLargeYoung = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), size: 3000.Megabytes(), age: 1);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovieSd));
|
||||
decisions.Add(new DownloadDecision(remoteMovieHdSmallOld));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmallYoung));
|
||||
decisions.Add(new DownloadDecision(remoteMovieHdLargeYoung));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSd, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieHdSmallOld, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmallYoung, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieHdLargeYoung, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovieHdLargeYoung);
|
||||
@@ -161,8 +161,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovieLarge = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), size: 15000.Megabytes(), age: 1);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovieSmall);
|
||||
@@ -178,8 +178,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovieLarge = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), size: 15000.Megabytes(), age: 1, runtime: 0);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovieLarge);
|
||||
@@ -195,8 +195,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovieLarge = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), size: 15000.Megabytes(), age: 1);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge));
|
||||
decisions.Add(new DownloadDecision(remoteMovieSmall, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovieLarge, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovieLarge);
|
||||
@@ -214,10 +214,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie4 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), size: 15000.Megabytes(), age: 1);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie3));
|
||||
decisions.Add(new DownloadDecision(remoteMovie4));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie3, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie4, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovie3);
|
||||
@@ -230,8 +230,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), age: 5);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovie2);
|
||||
@@ -246,8 +246,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), downloadProtocol: DownloadProtocol.Usenet);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.DownloadProtocol.Should().Be(DownloadProtocol.Usenet);
|
||||
@@ -262,8 +262,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie2 = GivenRemoteMovie(new QualityModel(Quality.HDTV720p), downloadProtocol: DownloadProtocol.Usenet);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
|
||||
@@ -290,8 +290,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.Release.Title = "A Movie 1998";
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
((TorrentInfo)qualifiedReports.First().RemoteMovie.Release).Seeders.Should().Be(torrentInfo2.Seeders);
|
||||
@@ -319,8 +319,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.Release.Title = "A Movie 1998";
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
((TorrentInfo)qualifiedReports.First().RemoteMovie.Release).Peers.Should().Be(torrentInfo2.Peers);
|
||||
@@ -349,8 +349,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.Release.Title = "A Movie 1998";
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
((TorrentInfo)qualifiedReports.First().RemoteMovie.Release).Peers.Should().Be(torrentInfo2.Peers);
|
||||
@@ -380,8 +380,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.Release.Title = "A Movie 1998";
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
((TorrentInfo)qualifiedReports.First().RemoteMovie.Release).Should().Be(torrentInfo1);
|
||||
@@ -400,8 +400,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.Release.Size = 250.Megabytes();
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.Should().Be(remoteMovie1.Release);
|
||||
@@ -419,8 +419,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = remoteMovie2.Movie.Profile.CalculateCustomFormatScore(remoteMovie2.CustomFormats);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.Should().Be(remoteMovie2.Release);
|
||||
@@ -440,8 +440,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = remoteMovie2.Movie.Profile.CalculateCustomFormatScore(remoteMovie2.CustomFormats);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.Should().Be(remoteMovie2.Release);
|
||||
@@ -459,8 +459,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = remoteMovie2.Movie.Profile.CalculateCustomFormatScore(remoteMovie2.CustomFormats);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Release.Should().Be(remoteMovie2.Release);
|
||||
@@ -480,8 +480,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = 0;
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Revision.Version.Should().Be(2);
|
||||
@@ -501,8 +501,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = 0;
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Revision.Version.Should().Be(2);
|
||||
@@ -522,8 +522,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = 0;
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Quality.Should().Be(Quality.WEBDL1080p);
|
||||
@@ -545,8 +545,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteMovie2.CustomFormatScore = 0;
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteMovie1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2));
|
||||
decisions.Add(new DownloadDecision(remoteMovie1, 1));
|
||||
decisions.Add(new DownloadDecision(remoteMovie2, 1));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.ParsedMovieInfo.Quality.Quality.Should().Be(Quality.WEBDL1080p);
|
||||
@@ -563,7 +563,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie3 = GivenRemoteMovie(new QualityModel(Quality.WEBDL1080p), indexerPriority: 1);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.AddRange(new[] { new DownloadDecision(remoteMovie1), new DownloadDecision(remoteMovie2), new DownloadDecision(remoteMovie3) });
|
||||
decisions.AddRange(new[] { new DownloadDecision(remoteMovie1, 1), new DownloadDecision(remoteMovie2, 1), new DownloadDecision(remoteMovie3, 1) });
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovie3);
|
||||
@@ -580,7 +580,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
var remoteMovie4 = GivenRemoteMovie(new QualityModel(Quality.WEBDL1080p), indexerPriority: 25);
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.AddRange(new[] { new DownloadDecision(remoteMovie1), new DownloadDecision(remoteMovie2), new DownloadDecision(remoteMovie3), new DownloadDecision(remoteMovie4) });
|
||||
decisions.AddRange(new[] { new DownloadDecision(remoteMovie1, 1), new DownloadDecision(remoteMovie2, 1), new DownloadDecision(remoteMovie3, 1), new DownloadDecision(remoteMovie4, 1) });
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisionsForMovies(decisions);
|
||||
qualifiedReports.First().RemoteMovie.Should().Be(remoteMovie4);
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenProtocol(DownloadProtocol.Usenet);
|
||||
_delayProfile.EnableUsenet = true;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().Be(true);
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenProtocol(DownloadProtocol.Torrent);
|
||||
_delayProfile.EnableTorrent = true;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().Be(true);
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -60,7 +60,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenProtocol(DownloadProtocol.Usenet);
|
||||
_delayProfile.EnableUsenet = false;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().Be(false);
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenProtocol(DownloadProtocol.Torrent);
|
||||
_delayProfile.EnableTorrent = false;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Accepted.Should().Be(false);
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.ParsedMovieInfo.Quality.Quality = qualityType;
|
||||
_remoteMovie.Movie.Profile.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.DVD, Quality.HDTV720p, Quality.Bluray1080p);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -61,7 +61,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_remoteMovie.ParsedMovieInfo.Quality.Quality = qualityType;
|
||||
_remoteMovie.Movie.Profile.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.DVD, Quality.HDTV720p, Quality.Bluray1080p);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
public void should_return_true_when_queue_is_empty()
|
||||
{
|
||||
GivenEmptyQueue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -115,7 +115,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -130,7 +130,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -147,7 +147,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -165,7 +165,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -183,7 +183,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie });
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -202,7 +202,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
GivenQueue(new List<RemoteMovie> { remoteMovie }, TrackedDownloadState.FailedPending);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().NotContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,42 +34,42 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_return_true_if_no_container_specified()
|
||||
{
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_mkv()
|
||||
{
|
||||
WithContainer("MKV");
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_vob()
|
||||
{
|
||||
WithContainer("VOB");
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_iso()
|
||||
{
|
||||
WithContainer("ISO");
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_m2ts()
|
||||
{
|
||||
WithContainer("M2TS");
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_compare_case_insensitive()
|
||||
{
|
||||
WithContainer("vob");
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase("How the Earth Was Made S02 Disc 1 1080i Blu-ray DTS-HD MA 2.0 AVC-TrollHD")]
|
||||
@@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
public void should_return_false_if_matches_disc_format(string title)
|
||||
{
|
||||
_remoteMovie.Release.Title = title;
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+9
-9
@@ -54,7 +54,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Setup(s => s.AllForTags(It.IsAny<HashSet<int>>()))
|
||||
.Returns(new List<Restriction>());
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -62,7 +62,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions("WEBRip", null);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions("doesnt,exist", null);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions(null, "ignored");
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -86,7 +86,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions(null, "edited");
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase("EdiTED")]
|
||||
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions(required, null);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase("EdiTED")]
|
||||
@@ -108,7 +108,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions(null, ignored);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -123,7 +123,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
new Restriction { Required = "x264", Ignored = "www.Speed.cd" }
|
||||
});
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase("/WEB/", true)]
|
||||
@@ -134,7 +134,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenRestictions(pattern, null);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().Be(expected);
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted == expected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
@@ -30,7 +30,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Build();
|
||||
|
||||
_movie = Builder<Movie>.CreateNew()
|
||||
.With(e => e.MovieFileId = 0)
|
||||
.Build();
|
||||
}
|
||||
|
||||
@@ -42,10 +41,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -53,99 +49,93 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_is_a_repack_for_a_different_quality()
|
||||
{
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.DVD))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
var moviefile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.DVD))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { moviefile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_is_a_repack_for_existing_file()
|
||||
{
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_is_a_repack_for_a_different_file()
|
||||
{
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "NotRadarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeFalse();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_if_release_group_for_existing_file_is_unknown()
|
||||
{
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeFalse();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -154,21 +144,19 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_parsedMovieInfo.ReleaseGroup = null;
|
||||
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeFalse();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -179,21 +167,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Returns(ProperDownloadTypes.DoNotUpgrade);
|
||||
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeFalse();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -204,21 +191,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Returns(ProperDownloadTypes.PreferAndUpgrade);
|
||||
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -229,21 +215,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Returns(ProperDownloadTypes.DoNotPrefer);
|
||||
|
||||
_parsedMovieInfo.Quality.Revision.IsRepack = true;
|
||||
_movie.MovieFileId = 1;
|
||||
_movie.MovieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew()
|
||||
.With(e => e.Quality = new QualityModel(Quality.SDTV))
|
||||
.With(e => e.ReleaseGroup = "Radarr")
|
||||
.Build();
|
||||
|
||||
_movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
var remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(e => e.ParsedMovieInfo = _parsedMovieInfo)
|
||||
.With(e => e.Movie = _movie)
|
||||
.Build();
|
||||
|
||||
Subject.IsSatisfiedBy(remoteMovie, null)
|
||||
.Accepted
|
||||
.Should()
|
||||
.BeTrue();
|
||||
Subject.IsSatisfiedBy(remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(0);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(1000);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(100);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(10);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -76,7 +76,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(0);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -87,7 +87,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
WithRetention(10);
|
||||
WithAge(100);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,12 +37,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.With(d => d.PreferredProtocol = DownloadProtocol.Usenet)
|
||||
.Build();
|
||||
|
||||
var series = Builder<Movie>.CreateNew()
|
||||
var movie = Builder<Movie>.CreateNew()
|
||||
.With(s => s.Profile = _profile)
|
||||
.Build();
|
||||
|
||||
var movieFile = Builder<MovieFile>.CreateNew().With(f => f.MovieId == movie.Id).Build();
|
||||
|
||||
movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
|
||||
_remoteMovie = Builder<RemoteMovie>.CreateNew()
|
||||
.With(r => r.Movie = series)
|
||||
.With(r => r.Movie = movie)
|
||||
.Build();
|
||||
|
||||
_profile.Items = new List<ProfileQualityItem>();
|
||||
@@ -68,7 +72,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
private void GivenExistingFile(QualityModel quality)
|
||||
{
|
||||
// _remoteEpisode.Episodes.First().EpisodeFileId = 1;
|
||||
_remoteMovie.Movie.MovieFile = new MovieFile { Quality = quality };
|
||||
var movieFile = new MovieFile { Quality = quality };
|
||||
|
||||
_remoteMovie.Movie.MovieFiles = new List<MovieFile> { movieFile };
|
||||
}
|
||||
|
||||
private void GivenUpgradeForExistingFile()
|
||||
@@ -81,7 +87,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_true_when_user_invoked_search()
|
||||
{
|
||||
Subject.IsSatisfiedBy(new RemoteMovie(), new MovieSearchCriteria() { UserInvokedSearch = true }).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(new RemoteMovie(), new MovieSearchCriteria() { UserInvokedSearch = true }).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -92,7 +98,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, new MovieSearchCriteria()).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, new MovieSearchCriteria()).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -100,7 +106,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
{
|
||||
_delayProfile.UsenetDelay = 0;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -110,7 +116,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_remoteMovie.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -120,7 +126,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_remoteMovie.ParsedMovieInfo.Quality = new QualityModel(Quality.Bluray720p);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -131,7 +137,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 60;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -142,7 +148,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -160,7 +166,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -178,7 +184,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -191,7 +197,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
-7
@@ -66,7 +66,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeIndexerDefinition.Tags = new HashSet<int>();
|
||||
_fakeMovie.Tags = new HashSet<int>();
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Accepted.Should().BeTrue();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -75,7 +75,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeIndexerDefinition.Tags = new HashSet<int> { 123 };
|
||||
_fakeMovie.Tags = new HashSet<int>();
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Accepted.Should().BeFalse();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -84,7 +84,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeIndexerDefinition.Tags = new HashSet<int>();
|
||||
_fakeMovie.Tags = new HashSet<int> { 123 };
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Accepted.Should().BeTrue();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -93,7 +93,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeIndexerDefinition.Tags = new HashSet<int> { 123, 456 };
|
||||
_fakeMovie.Tags = new HashSet<int> { 123, 789 };
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Accepted.Should().BeTrue();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -102,7 +102,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeIndexerDefinition.Tags = new HashSet<int> { 456 };
|
||||
_fakeMovie.Tags = new HashSet<int> { 123, 789 };
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Accepted.Should().BeFalse();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria()).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -112,7 +112,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeMovie.Tags = new HashSet<int> { 123, 789 };
|
||||
_fakeRelease.IndexerId = 0;
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria { MonitoredEpisodesOnly = true }).Accepted.Should().BeTrue();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria { MonitoredEpisodesOnly = true }).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -122,7 +122,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_fakeMovie.Tags = new HashSet<int> { 123, 789 };
|
||||
_fakeRelease.IndexerId = 2;
|
||||
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria { MonitoredEpisodesOnly = true }).Accepted.Should().BeTrue();
|
||||
_specification.IsSatisfiedBy(_parseResultMulti, new MovieSearchCriteria { MonitoredEpisodesOnly = true }).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
@@ -33,7 +34,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
|
||||
var fakeSeries = Builder<Movie>.CreateNew()
|
||||
.With(c => c.Profile = new Profile { Cutoff = Quality.Bluray1080p.Id })
|
||||
.With(c => c.MovieFile = _firstFile)
|
||||
.With(c => c.MovieFiles = new List<MovieFile> { _firstFile })
|
||||
.Build();
|
||||
|
||||
_parseResultSingle = new RemoteMovie
|
||||
@@ -54,7 +55,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_firstFile.Quality.Quality = Quality.DVD;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -63,7 +64,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
WithFirstFileUpgradable();
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -72,7 +73,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
WithFirstFileUpgradable();
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria()).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, new MovieSearchCriteria()).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -85,7 +86,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_firstFile.Quality.Quality = Quality.DVD;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -98,7 +99,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_firstFile.Quality.Quality = Quality.DVD;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
public void should_return_true_when_propers_are_not_preferred()
|
||||
@@ -110,7 +111,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_firstFile.Quality.Quality = Quality.DVD;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
_searchCriteria.Movie = _movie2;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -39,7 +39,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
_searchCriteria.Movie = _movie1;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteEpisode, _searchCriteria).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -61,7 +61,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
Title = "Series.Title.S01.720p.BluRay.X264-RlsGrp"
|
||||
};
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
// These tests are not needed anymore, since indexer settings are saved on the release itself!
|
||||
@@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
_remoteMovie.Release.IndexerId = 0;
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
.Setup(v => v.Get(It.IsAny<int>()))
|
||||
.Callback<int>(i => { throw new ModelNotFoundException(typeof(IndexerDefinition), i); });
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -88,7 +88,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
GivenReleaseSeeders(null);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase(5)]
|
||||
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
GivenReleaseSeeders(seeders);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[TestCase(0)]
|
||||
@@ -106,7 +106,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
{
|
||||
GivenReleaseSeeders(seeders);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_remoteMovie, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
@@ -42,7 +43,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
FormatItems = CustomFormatsTestHelpers.GetSampleFormatItems(),
|
||||
MinFormatScore = 0
|
||||
})
|
||||
.With(e => e.MovieFile = _firstFile)
|
||||
.With(e => e.MovieFiles = new List<MovieFile> { _firstFile })
|
||||
.Build();
|
||||
|
||||
_parseResultSingle = new RemoteMovie
|
||||
@@ -65,15 +66,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_return_true_if_movie_has_no_existing_file()
|
||||
{
|
||||
_parseResultSingle.Movie.MovieFile = null;
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_parseResultSingle.Movie.MovieFiles = new List<MovieFile>();
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_be_upgradable_if_only_movie_is_upgradable()
|
||||
{
|
||||
WithFirstFileUpgradable();
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -85,7 +86,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
_firstFile.Quality = new QualityModel(Quality.WEBDL1080p);
|
||||
_parseResultSingle.ParsedMovieInfo.Quality = new QualityModel(Quality.WEBDL1080p);
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -93,7 +94,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
_firstFile.Quality = new QualityModel(Quality.WEBDL1080p, new Revision(2));
|
||||
_parseResultSingle.ParsedMovieInfo.Quality = new QualityModel(Quality.WEBDL1080p);
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
_upgradeDisk.IsSatisfiedBy(_parseResultSingle, null).Should().OnlyContain(x => !x.Accepted);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user