More Fun in Core with Naming

This commit is contained in:
Qstick
2020-05-18 23:28:26 -04:00
committed by ta264
parent b0e966418e
commit 307989aab7
122 changed files with 1084 additions and 1198 deletions
@@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private Author _artist;
private QualityModel _mp3;
private QualityModel _flac;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private List<History.History> _history;
private BookFile _firstFile;
@@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_mp3 = new QualityModel(Quality.MP3_320, new Revision(version: 1));
_flac = new QualityModel(Quality.FLAC, new Revision(version: 1));
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = _artist,
ParsedBookInfo = new ParsedBookInfo { Quality = _mp3 },
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenCdhDisabled();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -107,13 +107,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(c => c.GetFilesByBook(It.IsAny<int>()))
.Returns(new List<BookFile> { });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_accepted_if_album_does_not_have_grabbed_event()
{
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -121,7 +121,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenHistoryItem(Guid.NewGuid().ToString().ToUpper(), TITLE, _mp3, HistoryEventType.Grabbed);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -132,7 +132,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.DownloadImported);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -143,12 +143,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(downloadId, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
_remoteBook.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = downloadId)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -159,12 +159,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(downloadId, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
_remoteBook.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = null)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -173,12 +173,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenHistoryItem(null, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(null, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
_remoteBook.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = null)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -189,12 +189,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenHistoryItem(downloadId, TITLE, _mp3, HistoryEventType.Grabbed);
GivenHistoryItem(downloadId, TITLE, _flac, HistoryEventType.DownloadImported);
_remoteAlbum.Release = Builder<TorrentInfo>.CreateNew()
_remoteBook.Release = Builder<TorrentInfo>.CreateNew()
.With(t => t.DownloadProtocol = DownloadProtocol.Torrent)
.With(t => t.InfoHash = downloadId)
.Build();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -14,12 +14,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class BlockedIndexerSpecificationFixture : CoreTest<BlockedIndexerSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Release = new ReleaseInfo { IndexerId = 1 }
};
@@ -39,7 +39,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_true_if_no_blocked_indexer()
{
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -47,7 +47,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
WithBlockedIndexer();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
Subject.Type.Should().Be(RejectionType.Temporary);
}
}
@@ -15,13 +15,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[TestFixture]
public class DiscographySpecificationFixture : CoreTest<DiscographySpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
var artist = Builder<Author>.CreateNew().With(s => s.Id = 1234).Build();
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
ParsedBookInfo = new ParsedBookInfo
{
@@ -46,29 +46,29 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_true_if_is_not_a_discography()
{
_remoteAlbum.ParsedBookInfo.Discography = false;
_remoteAlbum.Books.Last().ReleaseDate = DateTime.UtcNow.AddDays(+2);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
_remoteBook.ParsedBookInfo.Discography = false;
_remoteBook.Books.Last().ReleaseDate = DateTime.UtcNow.AddDays(+2);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_all_albums_have_released()
{
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_if_one_album_has_not_released()
{
_remoteAlbum.Books.Last().ReleaseDate = DateTime.UtcNow.AddDays(+2);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
_remoteBook.Books.Last().ReleaseDate = DateTime.UtcNow.AddDays(+2);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_an_album_does_not_have_an_release_date()
{
_remoteAlbum.Books.Last().ReleaseDate = null;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
_remoteBook.Books.Last().ReleaseDate = null;
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class DownloadDecisionMakerFixture : CoreTest<DownloadDecisionMaker>
{
private List<ReleaseInfo> _reports;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private Mock<IDecisionEngineSpecification> _pass1;
private Mock<IDecisionEngineSpecification> _pass2;
@@ -57,7 +57,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_failDelayed1.SetupGet(c => c.Priority).Returns(SpecificationPriority.Disk);
_reports = new List<ReleaseInfo> { new ReleaseInfo { Title = "Coldplay-A Head Full Of Dreams-CD-FLAC-2015-PERFECT" } };
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = new Author(),
Books = new List<Book> { new Book() }
@@ -65,7 +65,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Mocker.GetMock<IParsingService>()
.Setup(c => c.Map(It.IsAny<ParsedBookInfo>(), It.IsAny<SearchCriteriaBase>()))
.Returns(_remoteAlbum);
.Returns(_remoteBook);
}
private void GivenSpecifications(params Mock<IDecisionEngineSpecification>[] mocks)
@@ -80,12 +80,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Subject.GetRssDecision(_reports).ToList();
_fail1.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_fail2.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_fail3.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_pass1.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_pass2.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_pass3.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_fail1.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
_fail2.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
_fail3.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
_pass1.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
_pass2.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
_pass3.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
}
[Test]
@@ -94,7 +94,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenSpecifications(_pass1, _failDelayed1);
Subject.GetRssDecision(_reports).ToList();
_failDelayed1.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Once());
_failDelayed1.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Once());
}
[Test]
@@ -104,7 +104,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Subject.GetRssDecision(_reports).ToList();
_failDelayed1.Verify(c => c.IsSatisfiedBy(_remoteAlbum, null), Times.Never());
_failDelayed1.Verify(c => c.IsSatisfiedBy(_remoteBook, null), Times.Never());
}
[Test]
@@ -185,7 +185,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenSpecifications(_pass1, _pass2, _pass3);
_remoteAlbum.Author = null;
_remoteBook.Author = null;
Subject.GetRssDecision(_reports);
@@ -221,7 +221,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenSpecifications(_pass1, _pass2, _pass3);
_remoteAlbum.Author = null;
_remoteBook.Author = null;
var result = Subject.GetRssDecision(_reports);
@@ -260,7 +260,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
Mocker.SetConstant<IEnumerable<IDecisionEngineSpecification>>(new List<IDecisionEngineSpecification>
{
Mocker.Resolve<NzbDrone.Core.DecisionEngine.Specifications.Search.AlbumRequestedSpecification>()
Mocker.Resolve<NzbDrone.Core.DecisionEngine.Specifications.Search.BookRequestedSpecification>()
});
var decisions = Subject.GetSearchDecision(reports, criteria);
@@ -275,7 +275,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenSpecifications(_pass1, _pass2, _pass3);
_remoteAlbum.Author = null;
_remoteBook.Author = null;
var result = Subject.GetRssDecision(_reports);
@@ -289,7 +289,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenSpecifications(_pass1, _pass2, _pass3);
_remoteAlbum.Books = new List<Book>();
_remoteBook.Books = new List<Book>();
var result = Subject.GetRssDecision(_reports);
@@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private Author _artist;
private Book _album1;
private Book _album2;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private IndexerDefinition _indexerDefinition;
[SetUp]
@@ -30,7 +30,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_album1 = Builder<Book>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
_album2 = Builder<Book>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = _artist,
Books = new List<Book> { _album1 },
@@ -54,23 +54,23 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void GivenPublishDateFromToday(int days)
{
_remoteAlbum.Release.PublishDate = DateTime.Today.AddDays(days);
_remoteBook.Release.PublishDate = DateTime.Today.AddDays(days);
}
[Test]
public void should_return_true_if_indexer_not_specified()
{
_remoteAlbum.Release.IndexerId = 0;
_remoteBook.Release.IndexerId = 0;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_release_contains_multiple_albums()
{
_remoteAlbum.Books.Add(_album2);
_remoteBook.Books.Add(_album2);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(v => v.Get(It.IsAny<int>()))
.Callback<int>(i => { throw new ModelNotFoundException(typeof(IndexerDefinition), i); });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[TestCase(-2)]
@@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenPublishDateFromToday(days);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[TestCase(-10)]
@@ -98,7 +98,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenPublishDateFromToday(days);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[TestCase(-10)]
@@ -109,7 +109,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_indexerDefinition.Settings = new TorrentRssIndexerSettings { EarlyReleaseLimit = null };
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
}
}
@@ -9,12 +9,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
public class MaximumSizeSpecificationFixture : CoreTest<MaximumSizeSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook() { Release = new ReleaseInfo() };
_remoteBook = new RemoteBook() { Release = new ReleaseInfo() };
}
private void WithMaximumSize(int size)
@@ -24,7 +24,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void WithSize(int size)
{
_remoteAlbum.Release.Size = size * 1024 * 1024;
_remoteBook.Release.Size = size * 1024 * 1024;
}
[Test]
@@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMaximumSize(0);
WithSize(1000);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMaximumSize(2000);
WithSize(1999);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMaximumSize(2000);
WithSize(2000);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -60,7 +60,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMaximumSize(2000);
WithSize(2001);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMaximumSize(2000);
WithSize(0);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
}
}
@@ -13,12 +13,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class MinimumAgeSpecificationFixture : CoreTest<MinimumAgeSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Release = new ReleaseInfo() { DownloadProtocol = DownloadProtocol.Usenet }
};
@@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void WithAge(int minutes)
{
_remoteAlbum.Release.PublishDate = DateTime.UtcNow.AddMinutes(-minutes);
_remoteBook.Release.PublishDate = DateTime.UtcNow.AddMinutes(-minutes);
}
[Test]
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMinimumAge(0);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMinimumAge(30);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithMinimumAge(30);
WithAge(10);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -12,9 +12,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
[TestFixture]
public class MonitoredAlbumSpecificationFixture : CoreTest<MonitoredAlbumSpecification>
public class MonitoredAlbumSpecificationFixture : CoreTest<MonitoredBookSpecification>
{
private MonitoredAlbumSpecification _monitoredAlbumSpecification;
private MonitoredBookSpecification _monitoredAlbumSpecification;
private RemoteBook _parseResultMulti;
private RemoteBook _parseResultSingle;
@@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[SetUp]
public void Setup()
{
_monitoredAlbumSpecification = Mocker.Resolve<MonitoredAlbumSpecification>();
_monitoredAlbumSpecification = Mocker.Resolve<MonitoredBookSpecification>();
_fakeArtist = Builder<Author>.CreateNew()
.With(c => c.Monitored = true)
@@ -36,27 +36,27 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private RemoteBook GivenRemoteAlbum(List<Book> albums, QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet)
{
var remoteAlbum = new RemoteBook();
remoteAlbum.ParsedBookInfo = new ParsedBookInfo();
remoteAlbum.ParsedBookInfo.Quality = quality;
var remoteBook = new RemoteBook();
remoteBook.ParsedBookInfo = new ParsedBookInfo();
remoteBook.ParsedBookInfo.Quality = quality;
remoteAlbum.Books = new List<Book>();
remoteAlbum.Books.AddRange(albums);
remoteBook.Books = new List<Book>();
remoteBook.Books.AddRange(albums);
remoteAlbum.Release = new ReleaseInfo();
remoteAlbum.Release.PublishDate = DateTime.Now.AddDays(-age);
remoteAlbum.Release.Size = size;
remoteAlbum.Release.DownloadProtocol = downloadProtocol;
remoteBook.Release = new ReleaseInfo();
remoteBook.Release.PublishDate = DateTime.Now.AddDays(-age);
remoteBook.Release.Size = size;
remoteBook.Release.DownloadProtocol = downloadProtocol;
remoteAlbum.Author = Builder<Author>.CreateNew()
remoteBook.Author = Builder<Author>.CreateNew()
.With(e => e.QualityProfile = new QualityProfile
{
Items = Qualities.QualityFixture.GetDefaultQualities()
}).Build();
remoteAlbum.DownloadAllowed = true;
remoteBook.DownloadAllowed = true;
return remoteAlbum;
return remoteBook;
}
private void GivenPreferredDownloadProtocol(DownloadProtocol downloadProtocol)
@@ -72,12 +72,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_put_propers_before_non_propers()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1)));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 2)));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 1)));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320, new Revision(version: 2)));
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Version.Should().Be(2);
@@ -86,12 +86,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_put_higher_quality_before_lower()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Quality.Should().Be(Quality.MP3_320);
@@ -100,46 +100,46 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_order_by_age_then_largest_rounded_to_200mb()
{
var remoteAlbumSd = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 100.Megabytes(), age: 1);
var remoteAlbumHdSmallOld = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1200.Megabytes(), age: 1000);
var remoteAlbumSmallYoung = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1250.Megabytes(), age: 10);
var remoteAlbumHdLargeYoung = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 3000.Megabytes(), age: 1);
var remoteBookSd = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 100.Megabytes(), age: 1);
var remoteBookHdSmallOld = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1200.Megabytes(), age: 1000);
var remoteBookSmallYoung = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 1250.Megabytes(), age: 10);
var remoteBookHdLargeYoung = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 3000.Megabytes(), age: 1);
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbumSd));
decisions.Add(new DownloadDecision(remoteAlbumHdSmallOld));
decisions.Add(new DownloadDecision(remoteAlbumSmallYoung));
decisions.Add(new DownloadDecision(remoteAlbumHdLargeYoung));
decisions.Add(new DownloadDecision(remoteBookSd));
decisions.Add(new DownloadDecision(remoteBookHdSmallOld));
decisions.Add(new DownloadDecision(remoteBookSmallYoung));
decisions.Add(new DownloadDecision(remoteBookHdLargeYoung));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Should().Be(remoteAlbumHdLargeYoung);
qualifiedReports.First().RemoteBook.Should().Be(remoteBookHdLargeYoung);
}
[Test]
public void should_order_by_youngest()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 10);
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 5);
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 10);
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), age: 5);
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Should().Be(remoteAlbum2);
qualifiedReports.First().RemoteBook.Should().Be(remoteBook2);
}
[Test]
public void should_not_throw_if_no_albums_are_found()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes());
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes());
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes());
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), size: 500.Megabytes());
remoteAlbum1.Books = new List<Book>();
remoteBook1.Books = new List<Book>();
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
Subject.PrioritizeDecisions(decisions);
}
@@ -149,12 +149,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenPreferredDownloadProtocol(DownloadProtocol.Usenet);
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent);
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet);
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent);
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet);
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Release.DownloadProtocol.Should().Be(DownloadProtocol.Usenet);
@@ -165,12 +165,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenPreferredDownloadProtocol(DownloadProtocol.Torrent);
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent);
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet);
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Torrent);
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320), downloadProtocol: DownloadProtocol.Usenet);
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Release.DownloadProtocol.Should().Be(DownloadProtocol.Torrent);
@@ -179,14 +179,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_discography_pack_above_single_album()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.FLAC));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.FLAC));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
remoteAlbum1.ParsedBookInfo.Discography = true;
remoteBook1.ParsedBookInfo.Discography = true;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Discography.Should().BeTrue();
@@ -195,14 +195,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_quality_over_discography_pack()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
remoteAlbum1.ParsedBookInfo.Discography = true;
remoteBook1.ParsedBookInfo.Discography = true;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Discography.Should().BeFalse();
@@ -211,22 +211,22 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_single_album_over_multi_album()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Books.Count.Should().Be(remoteAlbum2.Books.Count);
qualifiedReports.First().RemoteBook.Books.Count.Should().Be(remoteBook2.Books.Count);
}
[Test]
public void should_prefer_releases_with_more_seeders()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var torrentInfo1 = new TorrentInfo();
torrentInfo1.PublishDate = DateTime.Now;
@@ -237,12 +237,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
var torrentInfo2 = torrentInfo1.JsonClone();
torrentInfo2.Seeders = 100;
remoteAlbum1.Release = torrentInfo1;
remoteAlbum2.Release = torrentInfo2;
remoteBook1.Release = torrentInfo1;
remoteBook2.Release = torrentInfo2;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
((TorrentInfo)qualifiedReports.First().RemoteBook.Release).Seeders.Should().Be(torrentInfo2.Seeders);
@@ -251,8 +251,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_releases_with_more_peers_given_equal_number_of_seeds()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var torrentInfo1 = new TorrentInfo();
torrentInfo1.PublishDate = DateTime.Now;
@@ -264,12 +264,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
var torrentInfo2 = torrentInfo1.JsonClone();
torrentInfo2.Peers = 100;
remoteAlbum1.Release = torrentInfo1;
remoteAlbum2.Release = torrentInfo2;
remoteBook1.Release = torrentInfo1;
remoteBook2.Release = torrentInfo2;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
((TorrentInfo)qualifiedReports.First().RemoteBook.Release).Peers.Should().Be(torrentInfo2.Peers);
@@ -278,8 +278,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_releases_with_more_peers_no_seeds()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var torrentInfo1 = new TorrentInfo();
torrentInfo1.PublishDate = DateTime.Now;
@@ -292,12 +292,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
torrentInfo2.Seeders = 0;
torrentInfo2.Peers = 100;
remoteAlbum1.Release = torrentInfo1;
remoteAlbum2.Release = torrentInfo2;
remoteBook1.Release = torrentInfo1;
remoteBook2.Release = torrentInfo2;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
((TorrentInfo)qualifiedReports.First().RemoteBook.Release).Peers.Should().Be(torrentInfo2.Peers);
@@ -306,8 +306,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_first_release_if_peers_and_size_are_too_similar()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var torrentInfo1 = new TorrentInfo();
torrentInfo1.PublishDate = DateTime.Now;
@@ -321,12 +321,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
torrentInfo2.Peers = 10;
torrentInfo1.Size = 250.Megabytes();
remoteAlbum1.Release = torrentInfo1;
remoteAlbum2.Release = torrentInfo2;
remoteBook1.Release = torrentInfo1;
remoteBook2.Release = torrentInfo2;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
((TorrentInfo)qualifiedReports.First().RemoteBook.Release).Should().Be(torrentInfo1);
@@ -335,28 +335,28 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_first_release_if_age_and_size_are_too_similar()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
remoteAlbum1.Release.PublishDate = DateTime.UtcNow.AddDays(-100);
remoteAlbum1.Release.Size = 200.Megabytes();
remoteBook1.Release.PublishDate = DateTime.UtcNow.AddDays(-100);
remoteBook1.Release.Size = 200.Megabytes();
remoteAlbum2.Release.PublishDate = DateTime.UtcNow.AddDays(-150);
remoteAlbum2.Release.Size = 250.Megabytes();
remoteBook2.Release.PublishDate = DateTime.UtcNow.AddDays(-150);
remoteBook2.Release.Size = 250.Megabytes();
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.Release.Should().Be(remoteAlbum1.Release);
qualifiedReports.First().RemoteBook.Release.Should().Be(remoteBook1.Release);
}
[Test]
public void should_prefer_quality_over_the_number_of_peers()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.AZW3));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.AZW3));
var torrentInfo1 = new TorrentInfo();
torrentInfo1.PublishDate = DateTime.Now;
@@ -370,12 +370,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
torrentInfo2.Peers = 10;
torrentInfo1.Size = 250.Megabytes();
remoteAlbum1.Release = torrentInfo1;
remoteAlbum2.Release = torrentInfo2;
remoteBook1.Release = torrentInfo1;
remoteBook2.Release = torrentInfo2;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
((TorrentInfo)qualifiedReports.First().RemoteBook.Release).Should().Be(torrentInfo1);
@@ -384,12 +384,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_put_higher_quality_before_lower_always()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Quality.Should().Be(Quality.MP3_320);
@@ -398,15 +398,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_prefer_higher_score_over_lower_score()
{
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
remoteAlbum1.PreferredWordScore = 10;
remoteAlbum2.PreferredWordScore = 0;
remoteBook1.PreferredWordScore = 10;
remoteBook2.PreferredWordScore = 0;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.PreferredWordScore.Should().Be(10);
@@ -419,15 +419,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(s => s.DownloadPropersAndRepacks)
.Returns(ProperDownloadTypes.PreferAndUpgrade);
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
remoteAlbum1.PreferredWordScore = 10;
remoteAlbum2.PreferredWordScore = 0;
remoteBook1.PreferredWordScore = 10;
remoteBook2.PreferredWordScore = 0;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Version.Should().Be(2);
@@ -440,15 +440,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(s => s.DownloadPropersAndRepacks)
.Returns(ProperDownloadTypes.DoNotUpgrade);
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
remoteAlbum1.PreferredWordScore = 10;
remoteAlbum2.PreferredWordScore = 0;
remoteBook1.PreferredWordScore = 10;
remoteBook2.PreferredWordScore = 0;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Revision.Version.Should().Be(2);
@@ -461,15 +461,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(s => s.DownloadPropersAndRepacks)
.Returns(ProperDownloadTypes.DoNotPrefer);
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
var remoteBook1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
var remoteBook2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
remoteAlbum1.PreferredWordScore = 10;
remoteAlbum2.PreferredWordScore = 0;
remoteBook1.PreferredWordScore = 10;
remoteBook2.PreferredWordScore = 0;
var decisions = new List<DownloadDecision>();
decisions.Add(new DownloadDecision(remoteAlbum1));
decisions.Add(new DownloadDecision(remoteAlbum2));
decisions.Add(new DownloadDecision(remoteBook1));
decisions.Add(new DownloadDecision(remoteBook2));
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
qualifiedReports.First().RemoteBook.ParsedBookInfo.Quality.Quality.Should().Be(Quality.FLAC);
@@ -14,15 +14,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[TestFixture]
public class ProtocolSpecificationFixture : CoreTest<ProtocolSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private DelayProfile _delayProfile;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook();
_remoteAlbum.Release = new ReleaseInfo();
_remoteAlbum.Author = new Author();
_remoteBook = new RemoteBook();
_remoteBook.Release = new ReleaseInfo();
_remoteBook.Author = new Author();
_delayProfile = new DelayProfile();
@@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void GivenProtocol(DownloadProtocol downloadProtocol)
{
_remoteAlbum.Release.DownloadProtocol = downloadProtocol;
_remoteBook.Release.DownloadProtocol = downloadProtocol;
}
[Test]
@@ -42,7 +42,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenProtocol(DownloadProtocol.Usenet);
_delayProfile.EnableUsenet = true;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().Be(true);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().Be(true);
}
[Test]
@@ -51,7 +51,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenProtocol(DownloadProtocol.Torrent);
_delayProfile.EnableTorrent = true;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().Be(true);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().Be(true);
}
[Test]
@@ -60,7 +60,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenProtocol(DownloadProtocol.Usenet);
_delayProfile.EnableUsenet = false;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().Be(false);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().Be(false);
}
[Test]
@@ -69,7 +69,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
GivenProtocol(DownloadProtocol.Torrent);
_delayProfile.EnableTorrent = false;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().Be(false);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().Be(false);
}
}
}
@@ -14,7 +14,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class QualityAllowedByProfileSpecificationFixture : CoreTest<QualityAllowedByProfileSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
public static object[] AllowedTestCases =
{
@@ -36,7 +36,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id })
.Build();
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = fakeArtist,
ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
@@ -47,20 +47,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[TestCaseSource(nameof(AllowedTestCases))]
public void should_allow_if_quality_is_defined_in_profile(Quality qualityType)
{
_remoteAlbum.ParsedBookInfo.Quality.Quality = qualityType;
_remoteAlbum.Author.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
_remoteBook.ParsedBookInfo.Quality.Quality = qualityType;
_remoteBook.Author.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
[TestCaseSource(nameof(DeniedTestCases))]
public void should_not_allow_if_quality_is_not_defined_in_profile(Quality qualityType)
{
_remoteAlbum.ParsedBookInfo.Quality.Quality = qualityType;
_remoteAlbum.Author.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
_remoteBook.ParsedBookInfo.Quality.Quality = qualityType;
_remoteBook.Author.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -19,7 +19,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
private Author _artist;
private Book _album;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private Author _otherArtist;
private Book _otherAlbum;
@@ -55,7 +55,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_releaseInfo = Builder<ReleaseInfo>.CreateNew()
.Build();
_remoteAlbum = Builder<RemoteBook>.CreateNew()
_remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo { Quality = new QualityModel(Quality.MP3_320) })
@@ -70,11 +70,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Returns(new List<Queue.Queue>());
}
private void GivenQueue(IEnumerable<RemoteBook> remoteAlbums, TrackedDownloadState trackedDownloadState = TrackedDownloadState.Downloading)
private void GivenQueue(IEnumerable<RemoteBook> remoteBooks, TrackedDownloadState trackedDownloadState = TrackedDownloadState.Downloading)
{
var queue = remoteAlbums.Select(remoteAlbum => new Queue.Queue
var queue = remoteBooks.Select(remoteBook => new Queue.Queue
{
RemoteBook = remoteAlbum,
RemoteBook = remoteBook,
TrackedDownloadState = trackedDownloadState
});
@@ -87,20 +87,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public void should_return_true_when_queue_is_empty()
{
GivenEmptyQueue();
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_when_artist_doesnt_match()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _otherArtist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -108,7 +108,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
_artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -118,9 +118,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -128,7 +128,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
_artist.QualityProfile.Value.Cutoff = Quality.MP3_320.Id;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -138,14 +138,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_when_album_doesnt_match()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _otherAlbum })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -155,16 +155,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_when_qualities_are_the_same_with_higher_preferred_word_score()
{
_remoteAlbum.PreferredWordScore = 1;
_remoteBook.PreferredWordScore = 1;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -174,14 +174,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_when_qualities_are_the_same()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -191,8 +191,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -200,7 +200,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
_artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -210,14 +210,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_matching_multi_album_is_in_queue()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album, _otherAlbum })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -227,14 +227,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_multi_album_has_one_album_in_queue()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -244,16 +244,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
_remoteAlbum.Books.Add(_otherAlbum);
_remoteBook.Books.Add(_otherAlbum);
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_multi_part_album_is_already_in_queue()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album, _otherAlbum })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -263,16 +263,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
_remoteAlbum.Books.Add(_otherAlbum);
_remoteBook.Books.Add(_otherAlbum);
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_multi_part_album_has_two_albums_in_queue()
{
var remoteAlbums = Builder<RemoteBook>.CreateListOfSize(2)
var remoteBooks = Builder<RemoteBook>.CreateListOfSize(2)
.All()
.With(r => r.Author = _artist)
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -286,9 +286,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Books = new List<Book> { _otherAlbum })
.Build();
_remoteAlbum.Books.Add(_otherAlbum);
GivenQueue(remoteAlbums);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
_remoteBook.Books.Add(_otherAlbum);
GivenQueue(remoteBooks);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -297,7 +297,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id;
_artist.QualityProfile.Value.UpgradeAllowed = false;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -307,8 +307,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum });
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
GivenQueue(new List<RemoteBook> { remoteBook });
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -316,7 +316,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
_artist.QualityProfile.Value.Cutoff = Quality.FLAC.Id;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = _artist)
.With(r => r.Books = new List<Book> { _album })
.With(r => r.ParsedBookInfo = new ParsedBookInfo
@@ -326,9 +326,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.With(r => r.Release = _releaseInfo)
.Build();
GivenQueue(new List<RemoteBook> { remoteAlbum }, TrackedDownloadState.DownloadFailedPending);
GivenQueue(new List<RemoteBook> { remoteBook }, TrackedDownloadState.DownloadFailedPending);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
}
}
@@ -11,12 +11,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class RawDiskSpecificationFixture : CoreTest<RawDiskSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Release = new ReleaseInfo() { DownloadProtocol = DownloadProtocol.Torrent }
};
@@ -24,41 +24,41 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void WithContainer(string container)
{
_remoteAlbum.Release.Container = container;
_remoteBook.Release.Container = container;
}
[Test]
public void should_return_true_if_no_container_specified()
{
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_flac()
{
WithContainer("FLAC");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_false_if_vob()
{
WithContainer("VOB");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_return_false_if_iso()
{
WithContainer("ISO");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_compare_case_insensitive()
{
WithContainer("vob");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -13,12 +13,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[TestFixture]
public class ReleaseRestrictionsSpecificationFixture : CoreTest<ReleaseRestrictionsSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = new Author
{
@@ -54,7 +54,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(s => s.AllForTags(It.IsAny<HashSet<int>>()))
.Returns(new List<ReleaseProfile>());
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -62,7 +62,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions("WEBRip", null);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions("doesnt,exist", null);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions(null, "ignored");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -86,7 +86,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions(null, "edited");
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[TestCase("EdiTED")]
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions(required, null);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[TestCase("EdiTED")]
@@ -108,13 +108,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions(null, ignored);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_be_false_when_release_contains_one_restricted_word_and_one_required_word()
{
_remoteAlbum.Release.Title = "[ www.Speed.cd ] - Katy Perry - Witness (2017) MP3 [320 kbps] ";
_remoteBook.Release.Title = "[ www.Speed.cd ] - Katy Perry - Witness (2017) MP3 [320 kbps] ";
Mocker.GetMock<IReleaseProfileService>()
.Setup(s => s.AllForTags(It.IsAny<HashSet<int>>()))
@@ -123,7 +123,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
new ReleaseProfile { Required = "320", Ignored = "www.Speed.cd" }
});
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[TestCase("/WEB/", true)]
@@ -134,7 +134,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
GivenRestictions(pattern, null);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().Be(expected);
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().Be(expected);
}
}
}
@@ -16,7 +16,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[TestFixture]
public class RepackSpecificationFixture : CoreTest<RepackSpecification>
{
private ParsedBookInfo _parsedAlbumInfo;
private ParsedBookInfo _parsedBookInfo;
private List<Book> _albums;
private List<BookFile> _trackFiles;
@@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
{
Mocker.Resolve<UpgradableSpecification>();
_parsedAlbumInfo = Builder<ParsedBookInfo>.CreateNew()
_parsedBookInfo = Builder<ParsedBookInfo>.CreateNew()
.With(p => p.Quality = new QualityModel(Quality.FLAC,
new Revision(2, 0, false)))
.With(p => p.ReleaseGroup = "Readarr")
@@ -48,12 +48,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_true_if_it_is_not_a_repack()
{
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeTrue();
@@ -66,14 +66,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
.Setup(c => c.GetFilesByBook(It.IsAny<int>()))
.Returns(new List<BookFile>());
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeTrue();
@@ -82,7 +82,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_true_if_is_a_repack_for_a_different_quality()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_trackFiles.Select(c =>
{
@@ -95,12 +95,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
return c;
}).ToList();
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeTrue();
@@ -109,7 +109,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_true_if_is_a_repack_for_all_existing_files()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_trackFiles.Select(c =>
{
@@ -122,12 +122,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
return c;
}).ToList();
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeTrue();
@@ -136,7 +136,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_false_if_is_a_repack_for_some_but_not_all_trackfiles()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_trackFiles.Select(c =>
{
@@ -151,12 +151,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
_trackFiles.First().ReleaseGroup = "NotReadarr";
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeFalse();
@@ -165,7 +165,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_false_if_is_a_repack_for_different_group()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_trackFiles.Select(c =>
{
@@ -178,12 +178,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
return c;
}).ToList();
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeFalse();
@@ -192,7 +192,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_false_if_release_group_for_existing_file_is_unknown()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_trackFiles.Select(c =>
{
@@ -205,12 +205,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
return c;
}).ToList();
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeFalse();
@@ -219,8 +219,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
[Test]
public void should_return_false_if_release_group_for_release_is_unknown()
{
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
_parsedAlbumInfo.ReleaseGroup = null;
_parsedBookInfo.Quality.Revision.IsRepack = true;
_parsedBookInfo.ReleaseGroup = null;
_trackFiles.Select(c =>
{
@@ -234,12 +234,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
return c;
}).ToList();
var remoteAlbum = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedAlbumInfo)
var remoteBook = Builder<RemoteBook>.CreateNew()
.With(e => e.ParsedBookInfo = _parsedBookInfo)
.With(e => e.Books = _albums)
.Build();
Subject.IsSatisfiedBy(remoteAlbum, null)
Subject.IsSatisfiedBy(remoteBook, null)
.Accepted
.Should()
.BeFalse();
@@ -13,12 +13,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
public class RetentionSpecificationFixture : CoreTest<RetentionSpecification>
{
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
{
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Release = new ReleaseInfo() { DownloadProtocol = DownloadProtocol.Usenet }
};
@@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
private void WithAge(int days)
{
_remoteAlbum.Release.PublishDate = DateTime.UtcNow.AddDays(-days);
_remoteBook.Release.PublishDate = DateTime.UtcNow.AddDays(-days);
}
[Test]
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithRetention(0);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -49,7 +49,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithRetention(1000);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -58,7 +58,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithRetention(100);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -67,7 +67,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithRetention(10);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
@@ -76,18 +76,18 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
WithRetention(0);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_when_release_is_not_usenet()
{
_remoteAlbum.Release.DownloadProtocol = DownloadProtocol.Torrent;
_remoteBook.Release.DownloadProtocol = DownloadProtocol.Torrent;
WithRetention(10);
WithAge(100);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
}
}
@@ -25,7 +25,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
{
private QualityProfile _profile;
private DelayProfile _delayProfile;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
[SetUp]
public void Setup()
@@ -41,7 +41,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
.With(s => s.QualityProfile = _profile)
.Build();
_remoteAlbum = Builder<RemoteBook>.CreateNew()
_remoteBook = Builder<RemoteBook>.CreateNew()
.With(r => r.Author = artist)
.Build();
@@ -52,11 +52,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
_profile.Cutoff = Quality.AZW3.Id;
_remoteAlbum.ParsedBookInfo = new ParsedBookInfo();
_remoteAlbum.Release = new ReleaseInfo();
_remoteAlbum.Release.DownloadProtocol = DownloadProtocol.Usenet;
_remoteBook.ParsedBookInfo = new ParsedBookInfo();
_remoteBook.Release = new ReleaseInfo();
_remoteBook.Release.DownloadProtocol = DownloadProtocol.Usenet;
_remoteAlbum.Books = Builder<Book>.CreateListOfSize(1).Build().ToList();
_remoteBook.Books = Builder<Book>.CreateListOfSize(1).Build().ToList();
Mocker.GetMock<IMediaFileService>()
.Setup(s => s.GetFilesByBook(It.IsAny<int>()))
@@ -100,12 +100,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
[Test]
public void should_be_false_when_system_invoked_search_and_release_is_younger_than_delay()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteBook.Release.PublishDate = DateTime.UtcNow;
_delayProfile.UsenetDelay = 720;
Subject.IsSatisfiedBy(_remoteAlbum, new BookSearchCriteria()).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, new BookSearchCriteria()).Accepted.Should().BeFalse();
}
[Test]
@@ -113,44 +113,44 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
{
_delayProfile.UsenetDelay = 0;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_true_when_quality_is_last_allowed_in_profile()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320);
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_true_when_release_is_older_than_delay()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteAlbum.Release.PublishDate = DateTime.UtcNow.AddHours(-10);
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteBook.Release.PublishDate = DateTime.UtcNow.AddHours(-10);
_delayProfile.UsenetDelay = 60;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_false_when_release_is_younger_than_delay()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MOBI);
_remoteBook.Release.PublishDate = DateTime.UtcNow;
_delayProfile.UsenetDelay = 720;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
[Test]
public void should_be_true_when_release_is_a_proper_for_existing_album()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
_remoteBook.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.MP3_320));
GivenUpgradeForExistingFile();
@@ -161,14 +161,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
_delayProfile.UsenetDelay = 720;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_true_when_release_is_a_real_for_existing_album()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(real: 1));
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(real: 1));
_remoteBook.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.MP3_320));
GivenUpgradeForExistingFile();
@@ -179,20 +179,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
_delayProfile.UsenetDelay = 720;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality()
{
_remoteAlbum.ParsedBookInfo.Quality = new QualityModel(Quality.AZW3, new Revision(version: 2));
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
_remoteBook.ParsedBookInfo.Quality = new QualityModel(Quality.AZW3, new Revision(version: 2));
_remoteBook.Release.PublishDate = DateTime.UtcNow;
GivenExistingFile(new QualityModel(Quality.PDF));
_delayProfile.UsenetDelay = 720;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}
@@ -14,7 +14,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
private Author _artist1;
private Author _artist2;
private RemoteBook _remoteAlbum = new RemoteBook();
private RemoteBook _remoteBook = new RemoteBook();
private SearchCriteriaBase _searchCriteria = new BookSearchCriteria();
[SetUp]
@@ -23,7 +23,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
_artist1 = Builder<Author>.CreateNew().With(s => s.Id = 1).Build();
_artist2 = Builder<Author>.CreateNew().With(s => s.Id = 2).Build();
_remoteAlbum.Author = _artist1;
_remoteBook.Author = _artist1;
}
[Test]
@@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
_searchCriteria.Author = _artist2;
Subject.IsSatisfiedBy(_remoteAlbum, _searchCriteria).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, _searchCriteria).Accepted.Should().BeFalse();
}
[Test]
@@ -39,7 +39,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
_searchCriteria.Author = _artist1;
Subject.IsSatisfiedBy(_remoteAlbum, _searchCriteria).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, _searchCriteria).Accepted.Should().BeTrue();
}
}
}
@@ -16,7 +16,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
public class TorrentSeedingSpecificationFixture : TestBase<TorrentSeedingSpecification>
{
private Author _artist;
private RemoteBook _remoteAlbum;
private RemoteBook _remoteBook;
private IndexerDefinition _indexerDefinition;
[SetUp]
@@ -24,7 +24,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
_artist = Builder<Author>.CreateNew().With(s => s.Id = 1).Build();
_remoteAlbum = new RemoteBook
_remoteBook = new RemoteBook
{
Author = _artist,
Release = new TorrentInfo
@@ -47,27 +47,27 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
private void GivenReleaseSeeders(int? seeders)
{
(_remoteAlbum.Release as TorrentInfo).Seeders = seeders;
(_remoteBook.Release as TorrentInfo).Seeders = seeders;
}
[Test]
public void should_return_true_if_not_torrent()
{
_remoteAlbum.Release = new ReleaseInfo
_remoteBook.Release = new ReleaseInfo
{
IndexerId = 1,
Title = "Artist - Album [FLAC-RlsGrp]"
};
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_indexer_not_specified()
{
_remoteAlbum.Release.IndexerId = 0;
_remoteBook.Release.IndexerId = 0;
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -77,7 +77,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(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[Test]
@@ -85,7 +85,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
GivenReleaseSeeders(null);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[TestCase(5)]
@@ -94,7 +94,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
GivenReleaseSeeders(seeders);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeTrue();
}
[TestCase(0)]
@@ -103,7 +103,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
{
GivenReleaseSeeders(seeders);
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
Subject.IsSatisfiedBy(_remoteBook, null).Accepted.Should().BeFalse();
}
}
}