mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-22 22:14:44 -04:00
New: Readarr 0.1
This commit is contained in:
@@ -1,212 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||
using NzbDrone.Core.Music;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
[TestFixture]
|
||||
|
||||
public class AcceptableSizeSpecificationFixture : CoreTest<AcceptableSizeSpecification>
|
||||
{
|
||||
private const int HIGH_KBPS_BITRATE = 1600;
|
||||
private const int TWENTY_MINUTE_EP_MILLIS = 20 * 60 * 1000;
|
||||
private const int FORTY_FIVE_MINUTE_LP_MILLIS = 45 * 60 * 1000;
|
||||
private RemoteAlbum _parseResultMultiSet;
|
||||
private RemoteAlbum _parseResultMulti;
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private Artist _artist;
|
||||
private QualityDefinition _qualityType;
|
||||
|
||||
private Album AlbumBuilder(int id = 0)
|
||||
{
|
||||
return new Album
|
||||
{
|
||||
Id = id,
|
||||
AlbumReleases = new List<AlbumRelease>
|
||||
{
|
||||
new AlbumRelease
|
||||
{
|
||||
Duration = 0,
|
||||
Monitored = true
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_artist = Builder<Artist>.CreateNew()
|
||||
.Build();
|
||||
|
||||
_parseResultMultiSet = new RemoteAlbum
|
||||
{
|
||||
Artist = _artist,
|
||||
Release = new ReleaseInfo(),
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
Albums = new List<Album> { AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder() }
|
||||
};
|
||||
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
Artist = _artist,
|
||||
Release = new ReleaseInfo(),
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
Albums = new List<Album> { AlbumBuilder(), AlbumBuilder() }
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteAlbum
|
||||
{
|
||||
Artist = _artist,
|
||||
Release = new ReleaseInfo(),
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
Albums = new List<Album> { AlbumBuilder(2) }
|
||||
};
|
||||
|
||||
Mocker.GetMock<IQualityDefinitionService>()
|
||||
.Setup(v => v.Get(It.IsAny<Quality>()))
|
||||
.Returns<Quality>(v => Quality.DefaultQualityDefinitions.First(c => c.Quality == v));
|
||||
|
||||
_qualityType = Builder<QualityDefinition>.CreateNew()
|
||||
.With(q => q.MinSize = 150)
|
||||
.With(q => q.MaxSize = 210)
|
||||
.With(q => q.Quality = Quality.MP3_192)
|
||||
.Build();
|
||||
|
||||
Mocker.GetMock<IQualityDefinitionService>().Setup(s => s.Get(Quality.MP3_192)).Returns(_qualityType);
|
||||
|
||||
Mocker.GetMock<IAlbumService>().Setup(
|
||||
s => s.GetAlbumsByArtist(It.IsAny<int>()))
|
||||
.Returns(new List<Album>()
|
||||
{
|
||||
AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(),
|
||||
AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(2), AlbumBuilder()
|
||||
});
|
||||
}
|
||||
|
||||
private void GivenLastAlbum()
|
||||
{
|
||||
Mocker.GetMock<IAlbumService>().Setup(
|
||||
s => s.GetAlbumsByArtist(It.IsAny<int>()))
|
||||
.Returns(new List<Album>
|
||||
{
|
||||
AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(),
|
||||
AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(), AlbumBuilder(2)
|
||||
});
|
||||
}
|
||||
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 20, false)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 25, true)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 35, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 45, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 55, true)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 75, false)]
|
||||
public void single_album(int runtime, int sizeInMegaBytes, bool expectedResult)
|
||||
{
|
||||
_parseResultSingle.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = runtime;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultSingle.Artist = _artist;
|
||||
_parseResultSingle.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 20 * 2, false)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 25 * 2, true)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 35 * 2, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 45 * 2, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 55 * 2, true)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 75 * 2, false)]
|
||||
public void multi_album(int runtime, int sizeInMegaBytes, bool expectedResult)
|
||||
{
|
||||
_parseResultMulti.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = runtime;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultMulti.Artist = _artist;
|
||||
_parseResultMulti.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 20 * 6, false)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 25 * 6, true)]
|
||||
[TestCase(TWENTY_MINUTE_EP_MILLIS, 35 * 6, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 45 * 6, false)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 55 * 6, true)]
|
||||
[TestCase(FORTY_FIVE_MINUTE_LP_MILLIS, 75 * 6, false)]
|
||||
public void multiset_album(int runtime, int sizeInMegaBytes, bool expectedResult)
|
||||
{
|
||||
_parseResultMultiSet.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = runtime;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultMultiSet.Artist = _artist;
|
||||
_parseResultMultiSet.Release.Size = sizeInMegaBytes.Megabytes();
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMultiSet, null).Accepted.Should().Be(expectedResult);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_size_is_zero()
|
||||
{
|
||||
GivenLastAlbum();
|
||||
_parseResultSingle.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = TWENTY_MINUTE_EP_MILLIS;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultSingle.Artist = _artist;
|
||||
_parseResultSingle.Release.Size = 0;
|
||||
_qualityType.MinSize = 150;
|
||||
_qualityType.MaxSize = 210;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_unlimited_20_minute()
|
||||
{
|
||||
GivenLastAlbum();
|
||||
_parseResultSingle.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = TWENTY_MINUTE_EP_MILLIS;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultSingle.Artist = _artist;
|
||||
_parseResultSingle.Release.Size = (HIGH_KBPS_BITRATE * 128) * (TWENTY_MINUTE_EP_MILLIS / 1000);
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_unlimited_45_minute()
|
||||
{
|
||||
GivenLastAlbum();
|
||||
_parseResultSingle.Albums.Select(c =>
|
||||
{
|
||||
c.AlbumReleases.Value[0].Duration = FORTY_FIVE_MINUTE_LP_MILLIS;
|
||||
return c;
|
||||
}).ToList();
|
||||
_parseResultSingle.Artist = _artist;
|
||||
_parseResultSingle.Release.Size = (HIGH_KBPS_BITRATE * 128) * (FORTY_FIVE_MINUTE_LP_MILLIS / 1000);
|
||||
_qualityType.MaxSize = null;
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,29 +22,29 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
private const int FIRST_ALBUM_ID = 1;
|
||||
private const string TITLE = "Some.Artist-Some.Album-2018-320kbps-CD-Readarr";
|
||||
|
||||
private Artist _artist;
|
||||
private Author _artist;
|
||||
private QualityModel _mp3;
|
||||
private QualityModel _flac;
|
||||
private RemoteAlbum _remoteAlbum;
|
||||
private List<History.History> _history;
|
||||
private TrackFile _firstFile;
|
||||
private BookFile _firstFile;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
var singleAlbumList = new List<Album>
|
||||
var singleAlbumList = new List<Book>
|
||||
{
|
||||
new Album
|
||||
new Book
|
||||
{
|
||||
Id = FIRST_ALBUM_ID,
|
||||
Title = "Some Album"
|
||||
}
|
||||
};
|
||||
|
||||
_artist = Builder<Artist>.CreateNew()
|
||||
_artist = Builder<Author>.CreateNew()
|
||||
.Build();
|
||||
|
||||
_firstFile = new TrackFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
_firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
|
||||
_mp3 = new QualityModel(Quality.MP3_320, new Revision(version: 1));
|
||||
_flac = new QualityModel(Quality.FLAC, new Revision(version: 1));
|
||||
@@ -70,7 +70,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { _firstFile });
|
||||
.Returns(new List<BookFile> { _firstFile });
|
||||
}
|
||||
|
||||
private void GivenCdhDisabled()
|
||||
@@ -105,7 +105,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { });
|
||||
.Returns(new List<BookFile> { });
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Subject.CutoffNotMet(
|
||||
new QualityProfile
|
||||
{
|
||||
Cutoff = Quality.MP3_256.Id,
|
||||
Cutoff = Quality.MP3_320.Id,
|
||||
Items = Qualities.QualityFixture.GetDefaultQualities()
|
||||
},
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
new List<QualityModel> { new QualityModel(Quality.Unknown, new Revision(version: 2)) },
|
||||
NoPreferredWordScore).Should().BeTrue();
|
||||
}
|
||||
|
||||
@@ -32,10 +32,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Subject.CutoffNotMet(
|
||||
new QualityProfile
|
||||
{
|
||||
Cutoff = Quality.MP3_256.Id,
|
||||
Cutoff = Quality.MP3_320.Id,
|
||||
Items = Qualities.QualityFixture.GetDefaultQualities()
|
||||
},
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
NoPreferredWordScore).Should().BeFalse();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Subject.CutoffNotMet(
|
||||
new QualityProfile
|
||||
{
|
||||
Cutoff = Quality.MP3_256.Id,
|
||||
Cutoff = Quality.AZW3.Id,
|
||||
Items = Qualities.QualityFixture.GetDefaultQualities()
|
||||
},
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
|
||||
@@ -20,17 +20,17 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
var artist = Builder<Artist>.CreateNew().With(s => s.Id = 1234).Build();
|
||||
var artist = Builder<Author>.CreateNew().With(s => s.Id = 1234).Build();
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Discography = true
|
||||
},
|
||||
Albums = Builder<Album>.CreateListOfSize(3)
|
||||
Albums = Builder<Book>.CreateListOfSize(3)
|
||||
.All()
|
||||
.With(e => e.ReleaseDate = DateTime.UtcNow.AddDays(-8))
|
||||
.With(s => s.ArtistId = artist.Id)
|
||||
.With(s => s.AuthorId = artist.Id)
|
||||
.BuildList(),
|
||||
Artist = artist,
|
||||
Release = new ReleaseInfo
|
||||
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
};
|
||||
|
||||
Mocker.GetMock<IAlbumService>().Setup(s => s.AlbumsBetweenDates(It.IsAny<DateTime>(), It.IsAny<DateTime>(), false))
|
||||
.Returns(new List<Album>());
|
||||
.Returns(new List<Book>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -59,8 +59,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_reports = new List<ReleaseInfo> { new ReleaseInfo { Title = "Coldplay-A Head Full Of Dreams-CD-FLAC-2015-PERFECT" } };
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
Artist = new Artist(),
|
||||
Albums = new List<Album> { new Album() }
|
||||
Artist = new Author(),
|
||||
Albums = new List<Book> { new Book() }
|
||||
};
|
||||
|
||||
Mocker.GetMock<IParsingService>()
|
||||
@@ -231,12 +231,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_only_include_reports_for_requested_albums()
|
||||
{
|
||||
var artist = Builder<Artist>.CreateNew().Build();
|
||||
var artist = Builder<Author>.CreateNew().Build();
|
||||
|
||||
var albums = Builder<Album>.CreateListOfSize(2)
|
||||
var albums = Builder<Book>.CreateListOfSize(2)
|
||||
.All()
|
||||
.With(v => v.ArtistId, artist.Id)
|
||||
.With(v => v.Artist, new LazyLoaded<Artist>(artist))
|
||||
.With(v => v.AuthorId, artist.Id)
|
||||
.With(v => v.Author, new LazyLoaded<Author>(artist))
|
||||
.BuildList();
|
||||
|
||||
var criteria = new ArtistSearchCriteria { Albums = albums.Take(1).ToList() };
|
||||
@@ -289,7 +289,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenSpecifications(_pass1, _pass2, _pass3);
|
||||
|
||||
_remoteAlbum.Albums = new List<Album>();
|
||||
_remoteAlbum.Albums = new List<Book>();
|
||||
|
||||
var result = Subject.GetRssDecision(_reports);
|
||||
|
||||
|
||||
@@ -17,23 +17,23 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[TestFixture]
|
||||
public class EarlyReleaseSpecificationFixture : TestBase<EarlyReleaseSpecification>
|
||||
{
|
||||
private Artist _artist;
|
||||
private Album _album1;
|
||||
private Album _album2;
|
||||
private Author _artist;
|
||||
private Book _album1;
|
||||
private Book _album2;
|
||||
private RemoteAlbum _remoteAlbum;
|
||||
private IndexerDefinition _indexerDefinition;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_artist = Builder<Artist>.CreateNew().With(s => s.Id = 1).Build();
|
||||
_album1 = Builder<Album>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
|
||||
_album2 = Builder<Album>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
|
||||
_artist = Builder<Author>.CreateNew().With(s => s.Id = 1).Build();
|
||||
_album1 = Builder<Book>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
|
||||
_album2 = Builder<Book>.CreateNew().With(s => s.ReleaseDate = DateTime.Today).Build();
|
||||
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
Artist = _artist,
|
||||
Albums = new List<Album> { _album1 },
|
||||
Albums = new List<Book> { _album1 },
|
||||
Release = new TorrentInfo
|
||||
{
|
||||
IndexerId = 1,
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private QualityModel _upgradableQuality;
|
||||
private QualityModel _notupgradableQuality;
|
||||
private Artist _fakeArtist;
|
||||
private Author _fakeArtist;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
@@ -37,15 +37,15 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
Mocker.Resolve<UpgradableSpecification>();
|
||||
_upgradeHistory = Mocker.Resolve<HistorySpecification>();
|
||||
|
||||
var singleAlbumList = new List<Album> { new Album { Id = FIRST_ALBUM_ID } };
|
||||
var doubleAlbumList = new List<Album>
|
||||
var singleAlbumList = new List<Book> { new Book { Id = FIRST_ALBUM_ID } };
|
||||
var doubleAlbumList = new List<Book>
|
||||
{
|
||||
new Album { Id = FIRST_ALBUM_ID },
|
||||
new Album { Id = SECOND_ALBUM_ID },
|
||||
new Album { Id = 3 }
|
||||
new Book { Id = FIRST_ALBUM_ID },
|
||||
new Book { Id = SECOND_ALBUM_ID },
|
||||
new Book { Id = 3 }
|
||||
};
|
||||
|
||||
_fakeArtist = Builder<Artist>.CreateNew()
|
||||
_fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.QualityProfile = new QualityProfile
|
||||
{
|
||||
UpgradeAllowed = true,
|
||||
@@ -57,18 +57,18 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
Artist = _fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = doubleAlbumList
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteAlbum
|
||||
{
|
||||
Artist = _fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = singleAlbumList
|
||||
};
|
||||
|
||||
_upgradableQuality = new QualityModel(Quality.MP3_192, new Revision(version: 1));
|
||||
_upgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 1));
|
||||
_notupgradableQuality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
|
||||
|
||||
Mocker.GetMock<IConfigService>()
|
||||
@@ -76,9 +76,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Returns(true);
|
||||
}
|
||||
|
||||
private void GivenMostRecentForAlbum(int albumId, string downloadId, QualityModel quality, DateTime date, HistoryEventType eventType)
|
||||
private void GivenMostRecentForAlbum(int bookId, string downloadId, QualityModel quality, DateTime date, HistoryEventType eventType)
|
||||
{
|
||||
Mocker.GetMock<IHistoryService>().Setup(s => s.MostRecentForAlbum(albumId))
|
||||
Mocker.GetMock<IHistoryService>().Setup(s => s.MostRecentForAlbum(bookId))
|
||||
.Returns(new History.History { DownloadId = downloadId, Quality = quality, Date = date, EventType = eventType });
|
||||
}
|
||||
|
||||
|
||||
@@ -18,24 +18,24 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
private RemoteAlbum _parseResultMulti;
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private Artist _fakeArtist;
|
||||
private Album _firstAlbum;
|
||||
private Album _secondAlbum;
|
||||
private Author _fakeArtist;
|
||||
private Book _firstAlbum;
|
||||
private Book _secondAlbum;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_monitoredAlbumSpecification = Mocker.Resolve<MonitoredAlbumSpecification>();
|
||||
|
||||
_fakeArtist = Builder<Artist>.CreateNew()
|
||||
_fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.Monitored = true)
|
||||
.Build();
|
||||
|
||||
_firstAlbum = new Album { Monitored = true };
|
||||
_secondAlbum = new Album { Monitored = true };
|
||||
_firstAlbum = new Book { Monitored = true };
|
||||
_secondAlbum = new Book { Monitored = true };
|
||||
|
||||
var singleAlbumList = new List<Album> { _firstAlbum };
|
||||
var doubleAlbumList = new List<Album> { _firstAlbum, _secondAlbum };
|
||||
var singleAlbumList = new List<Book> { _firstAlbum };
|
||||
var doubleAlbumList = new List<Book> { _firstAlbum, _secondAlbum };
|
||||
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
|
||||
@@ -27,20 +27,20 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
GivenPreferredDownloadProtocol(DownloadProtocol.Usenet);
|
||||
}
|
||||
|
||||
private Album GivenAlbum(int id)
|
||||
private Book GivenAlbum(int id)
|
||||
{
|
||||
return Builder<Album>.CreateNew()
|
||||
return Builder<Book>.CreateNew()
|
||||
.With(e => e.Id = id)
|
||||
.Build();
|
||||
}
|
||||
|
||||
private RemoteAlbum GivenRemoteAlbum(List<Album> albums, QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet)
|
||||
private RemoteAlbum GivenRemoteAlbum(List<Book> albums, QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet)
|
||||
{
|
||||
var remoteAlbum = new RemoteAlbum();
|
||||
remoteAlbum.ParsedAlbumInfo = new ParsedAlbumInfo();
|
||||
remoteAlbum.ParsedAlbumInfo.Quality = quality;
|
||||
|
||||
remoteAlbum.Albums = new List<Album>();
|
||||
remoteAlbum.Albums = new List<Book>();
|
||||
remoteAlbum.Albums.AddRange(albums);
|
||||
|
||||
remoteAlbum.Release = new ReleaseInfo();
|
||||
@@ -48,7 +48,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
remoteAlbum.Release.Size = size;
|
||||
remoteAlbum.Release.DownloadProtocol = downloadProtocol;
|
||||
|
||||
remoteAlbum.Artist = Builder<Artist>.CreateNew()
|
||||
remoteAlbum.Artist = Builder<Author>.CreateNew()
|
||||
.With(e => e.QualityProfile = new QualityProfile
|
||||
{
|
||||
Items = Qualities.QualityFixture.GetDefaultQualities()
|
||||
@@ -72,8 +72,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_put_propers_before_non_propers()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256, new Revision(version: 1)));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256, new Revision(version: 2)));
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -86,24 +86,24 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_put_higher_quality_before_lower()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_192));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
decisions.Add(new DownloadDecision(remoteAlbum2));
|
||||
|
||||
var qualifiedReports = Subject.PrioritizeDecisions(decisions);
|
||||
qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Quality.Should().Be(Quality.MP3_256);
|
||||
qualifiedReports.First().RemoteAlbum.ParsedAlbumInfo.Quality.Quality.Should().Be(Quality.MP3_320);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_order_by_age_then_largest_rounded_to_200mb()
|
||||
{
|
||||
var remoteAlbumSd = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_192), size: 100.Megabytes(), age: 1);
|
||||
var remoteAlbumHdSmallOld = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), size: 1200.Megabytes(), age: 1000);
|
||||
var remoteAlbumSmallYoung = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), size: 1250.Megabytes(), age: 10);
|
||||
var remoteAlbumHdLargeYoung = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), size: 3000.Megabytes(), age: 1);
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbumSd));
|
||||
@@ -118,8 +118,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_order_by_youngest()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), age: 10);
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), age: 5);
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -132,10 +132,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_not_throw_if_no_albums_are_found()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), size: 500.Megabytes());
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), size: 500.Megabytes());
|
||||
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());
|
||||
|
||||
remoteAlbum1.Albums = new List<Album>();
|
||||
remoteAlbum1.Albums = new List<Book>();
|
||||
|
||||
var decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -149,8 +149,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenPreferredDownloadProtocol(DownloadProtocol.Usenet);
|
||||
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), downloadProtocol: DownloadProtocol.Torrent);
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), downloadProtocol: 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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -165,8 +165,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
GivenPreferredDownloadProtocol(DownloadProtocol.Torrent);
|
||||
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), downloadProtocol: DownloadProtocol.Torrent);
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256), downloadProtocol: 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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -179,8 +179,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_discography_pack_above_single_album()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.FLAC));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
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));
|
||||
|
||||
remoteAlbum1.ParsedAlbumInfo.Discography = true;
|
||||
|
||||
@@ -195,8 +195,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_quality_over_discography_pack()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_320));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
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));
|
||||
|
||||
remoteAlbum1.ParsedAlbumInfo.Discography = true;
|
||||
|
||||
@@ -211,8 +211,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_single_album_over_multi_album()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1), GivenAlbum(2) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -225,8 +225,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_releases_with_more_seeders()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 torrentInfo1 = new TorrentInfo();
|
||||
torrentInfo1.PublishDate = DateTime.Now;
|
||||
@@ -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<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 torrentInfo1 = new TorrentInfo();
|
||||
torrentInfo1.PublishDate = DateTime.Now;
|
||||
@@ -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<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 torrentInfo1 = new TorrentInfo();
|
||||
torrentInfo1.PublishDate = DateTime.Now;
|
||||
@@ -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<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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 torrentInfo1 = new TorrentInfo();
|
||||
torrentInfo1.PublishDate = DateTime.Now;
|
||||
@@ -335,8 +335,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_first_release_if_age_and_size_are_too_similar()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
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));
|
||||
|
||||
remoteAlbum1.Release.PublishDate = DateTime.UtcNow.AddDays(-100);
|
||||
remoteAlbum1.Release.Size = 200.Megabytes();
|
||||
@@ -355,8 +355,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_quality_over_the_number_of_peers()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_192));
|
||||
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 torrentInfo1 = new TorrentInfo();
|
||||
torrentInfo1.PublishDate = DateTime.Now;
|
||||
@@ -384,8 +384,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_put_higher_quality_before_lower_always()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_256));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.MP3_320));
|
||||
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 decisions = new List<DownloadDecision>();
|
||||
decisions.Add(new DownloadDecision(remoteAlbum1));
|
||||
@@ -398,8 +398,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_prefer_higher_score_over_lower_score()
|
||||
{
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Book> { GivenAlbum(1) }, new QualityModel(Quality.FLAC));
|
||||
|
||||
remoteAlbum1.PreferredWordScore = 10;
|
||||
remoteAlbum2.PreferredWordScore = 0;
|
||||
@@ -419,8 +419,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.PreferAndUpgrade);
|
||||
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
|
||||
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)));
|
||||
|
||||
remoteAlbum1.PreferredWordScore = 10;
|
||||
remoteAlbum2.PreferredWordScore = 0;
|
||||
@@ -440,8 +440,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.DoNotUpgrade);
|
||||
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
|
||||
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)));
|
||||
|
||||
remoteAlbum1.PreferredWordScore = 10;
|
||||
remoteAlbum2.PreferredWordScore = 0;
|
||||
@@ -461,8 +461,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.DoNotPrefer);
|
||||
|
||||
var remoteAlbum1 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(1)));
|
||||
var remoteAlbum2 = GivenRemoteAlbum(new List<Album> { GivenAlbum(1) }, new QualityModel(Quality.FLAC, new Revision(2)));
|
||||
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)));
|
||||
|
||||
remoteAlbum1.PreferredWordScore = 10;
|
||||
remoteAlbum2.PreferredWordScore = 0;
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
_remoteAlbum = new RemoteAlbum();
|
||||
_remoteAlbum.Release = new ReleaseInfo();
|
||||
_remoteAlbum.Artist = new Artist();
|
||||
_remoteAlbum.Artist = new Author();
|
||||
|
||||
_delayProfile = new DelayProfile();
|
||||
|
||||
|
||||
+6
-7
@@ -18,14 +18,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
public static object[] AllowedTestCases =
|
||||
{
|
||||
new object[] { Quality.MP3_192 },
|
||||
new object[] { Quality.MP3_256 },
|
||||
new object[] { Quality.MP3_320 },
|
||||
new object[] { Quality.MP3_320 },
|
||||
new object[] { Quality.MP3_320 }
|
||||
};
|
||||
|
||||
public static object[] DeniedTestCases =
|
||||
{
|
||||
new object[] { Quality.MP3_VBR },
|
||||
new object[] { Quality.FLAC },
|
||||
new object[] { Quality.Unknown }
|
||||
};
|
||||
@@ -33,14 +32,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
var fakeArtist = Builder<Artist>.CreateNew()
|
||||
var fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.MP3_320.Id })
|
||||
.Build();
|
||||
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_192, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
};
|
||||
}
|
||||
|
||||
@@ -49,7 +48,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
public void should_allow_if_quality_is_defined_in_profile(Quality qualityType)
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality.Quality = qualityType;
|
||||
_remoteAlbum.Artist.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_192, Quality.MP3_256, Quality.MP3_320);
|
||||
_remoteAlbum.Artist.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
@@ -59,7 +58,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
public void should_not_allow_if_quality_is_not_defined_in_profile(Quality qualityType)
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality.Quality = qualityType;
|
||||
_remoteAlbum.Artist.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_192, Quality.MP3_256, Quality.MP3_320);
|
||||
_remoteAlbum.Artist.QualityProfile.Value.Items = Qualities.QualityFixture.GetDefaultQualities(Quality.MP3_320, Quality.MP3_320, Quality.MP3_320);
|
||||
|
||||
Subject.IsSatisfiedBy(_remoteAlbum, null).Accepted.Should().BeFalse();
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[TestFixture]
|
||||
public class QueueSpecificationFixture : CoreTest<QueueSpecification>
|
||||
{
|
||||
private Artist _artist;
|
||||
private Album _album;
|
||||
private Author _artist;
|
||||
private Book _album;
|
||||
private RemoteAlbum _remoteAlbum;
|
||||
|
||||
private Artist _otherArtist;
|
||||
private Album _otherAlbum;
|
||||
private Author _otherArtist;
|
||||
private Book _otherAlbum;
|
||||
|
||||
private ReleaseInfo _releaseInfo;
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
Mocker.Resolve<UpgradableSpecification>();
|
||||
|
||||
_artist = Builder<Artist>.CreateNew()
|
||||
_artist = Builder<Author>.CreateNew()
|
||||
.With(e => e.QualityProfile = new QualityProfile
|
||||
{
|
||||
UpgradeAllowed = true,
|
||||
@@ -39,16 +39,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
})
|
||||
.Build();
|
||||
|
||||
_album = Builder<Album>.CreateNew()
|
||||
.With(e => e.ArtistId = _artist.Id)
|
||||
_album = Builder<Book>.CreateNew()
|
||||
.With(e => e.AuthorId = _artist.Id)
|
||||
.Build();
|
||||
|
||||
_otherArtist = Builder<Artist>.CreateNew()
|
||||
_otherArtist = Builder<Author>.CreateNew()
|
||||
.With(s => s.Id = 2)
|
||||
.Build();
|
||||
|
||||
_otherAlbum = Builder<Album>.CreateNew()
|
||||
.With(e => e.ArtistId = _otherArtist.Id)
|
||||
_otherAlbum = Builder<Book>.CreateNew()
|
||||
.With(e => e.AuthorId = _otherArtist.Id)
|
||||
.With(e => e.Id = 2)
|
||||
.Build();
|
||||
|
||||
@@ -57,8 +57,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
_remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256) })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320) })
|
||||
.With(r => r.PreferredWordScore = 0)
|
||||
.Build();
|
||||
}
|
||||
@@ -95,7 +95,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _otherArtist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
|
||||
@@ -110,10 +110,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_256)
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
@@ -130,10 +130,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_192)
|
||||
Quality = new QualityModel(Quality.AZW3)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
@@ -147,10 +147,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _otherAlbum })
|
||||
.With(r => r.Albums = new List<Book> { _otherAlbum })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_192)
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
@@ -166,10 +166,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_256)
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
@@ -183,10 +183,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_192)
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
@@ -202,7 +202,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
@@ -219,7 +219,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album, _otherAlbum })
|
||||
.With(r => r.Albums = new List<Book> { _album, _otherAlbum })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
@@ -236,7 +236,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
@@ -255,7 +255,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album, _otherAlbum })
|
||||
.With(r => r.Albums = new List<Book> { _album, _otherAlbum })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
@@ -281,9 +281,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.TheFirst(1)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.TheNext(1)
|
||||
.With(r => r.Albums = new List<Album> { _otherAlbum })
|
||||
.With(r => r.Albums = new List<Book> { _otherAlbum })
|
||||
.Build();
|
||||
|
||||
_remoteAlbum.Albums.Add(_otherAlbum);
|
||||
@@ -299,7 +299,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.FLAC)
|
||||
@@ -318,10 +318,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
var remoteAlbum = Builder<RemoteAlbum>.CreateNew()
|
||||
.With(r => r.Artist = _artist)
|
||||
.With(r => r.Albums = new List<Album> { _album })
|
||||
.With(r => r.Albums = new List<Book> { _album })
|
||||
.With(r => r.ParsedAlbumInfo = new ParsedAlbumInfo
|
||||
{
|
||||
Quality = new QualityModel(Quality.MP3_008)
|
||||
Quality = new QualityModel(Quality.MP3_320)
|
||||
})
|
||||
.With(r => r.Release = _releaseInfo)
|
||||
.Build();
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
Artist = new Artist
|
||||
Artist = new Author
|
||||
{
|
||||
Tags = new HashSet<int>()
|
||||
},
|
||||
|
||||
@@ -17,8 +17,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
public class RepackSpecificationFixture : CoreTest<RepackSpecification>
|
||||
{
|
||||
private ParsedAlbumInfo _parsedAlbumInfo;
|
||||
private List<Album> _albums;
|
||||
private List<TrackFile> _trackFiles;
|
||||
private List<Book> _albums;
|
||||
private List<BookFile> _trackFiles;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
@@ -31,13 +31,13 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
.With(p => p.ReleaseGroup = "Readarr")
|
||||
.Build();
|
||||
|
||||
_albums = Builder<Album>.CreateListOfSize(1)
|
||||
_albums = Builder<Book>.CreateListOfSize(1)
|
||||
.All()
|
||||
.BuildList();
|
||||
|
||||
_trackFiles = Builder<TrackFile>.CreateListOfSize(3)
|
||||
_trackFiles = Builder<BookFile>.CreateListOfSize(3)
|
||||
.All()
|
||||
.With(t => t.AlbumId = _albums.First().Id)
|
||||
.With(t => t.BookId = _albums.First().Id)
|
||||
.BuildList();
|
||||
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
@@ -64,7 +64,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile>());
|
||||
.Returns(new List<BookFile>());
|
||||
|
||||
_parsedAlbumInfo.Quality.Revision.IsRepack = true;
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
}).ToList();
|
||||
_trackFiles.Select(c =>
|
||||
{
|
||||
c.Quality = new QualityModel(Quality.MP3_256);
|
||||
c.Quality = new QualityModel(Quality.MP3_320);
|
||||
return c;
|
||||
}).ToList();
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.With(d => d.PreferredProtocol = DownloadProtocol.Usenet)
|
||||
.Build();
|
||||
|
||||
var artist = Builder<Artist>.CreateNew()
|
||||
var artist = Builder<Author>.CreateNew()
|
||||
.With(s => s.QualityProfile = _profile)
|
||||
.Build();
|
||||
|
||||
@@ -46,21 +46,21 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.Build();
|
||||
|
||||
_profile.Items = new List<QualityProfileQualityItem>();
|
||||
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_256 });
|
||||
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_320 });
|
||||
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.PDF });
|
||||
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.AZW3 });
|
||||
_profile.Items.Add(new QualityProfileQualityItem { Allowed = true, Quality = Quality.MP3_320 });
|
||||
|
||||
_profile.Cutoff = Quality.MP3_320.Id;
|
||||
_profile.Cutoff = Quality.AZW3.Id;
|
||||
|
||||
_remoteAlbum.ParsedAlbumInfo = new ParsedAlbumInfo();
|
||||
_remoteAlbum.Release = new ReleaseInfo();
|
||||
_remoteAlbum.Release.DownloadProtocol = DownloadProtocol.Usenet;
|
||||
|
||||
_remoteAlbum.Albums = Builder<Album>.CreateListOfSize(1).Build().ToList();
|
||||
_remoteAlbum.Albums = Builder<Book>.CreateListOfSize(1).Build().ToList();
|
||||
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(s => s.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { });
|
||||
.Returns(new List<BookFile> { });
|
||||
|
||||
Mocker.GetMock<IDelayProfileService>()
|
||||
.Setup(s => s.BestForTags(It.IsAny<HashSet<int>>()))
|
||||
@@ -75,12 +75,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
{
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(s => s.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile>
|
||||
.Returns(new List<BookFile>
|
||||
{
|
||||
new TrackFile
|
||||
{
|
||||
Quality = quality
|
||||
}
|
||||
new BookFile
|
||||
{
|
||||
Quality = quality
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_false_when_system_invoked_search_and_release_is_younger_than_delay()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_192);
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MOBI);
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
@@ -127,7 +127,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_true_when_release_is_older_than_delay()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_256);
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MOBI);
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow.AddHours(-10);
|
||||
|
||||
_delayProfile.UsenetDelay = 60;
|
||||
@@ -138,7 +138,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_false_when_release_is_younger_than_delay()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_192);
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MOBI);
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
@@ -149,10 +149,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_true_when_release_is_a_proper_for_existing_album()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2));
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2));
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
GivenExistingFile(new QualityModel(Quality.MP3_256));
|
||||
GivenExistingFile(new QualityModel(Quality.MP3_320));
|
||||
GivenUpgradeForExistingFile();
|
||||
|
||||
Mocker.GetMock<IUpgradableSpecification>()
|
||||
@@ -167,10 +167,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_true_when_release_is_a_real_for_existing_album()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_256, new Revision(real: 1));
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_320, new Revision(real: 1));
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
GivenExistingFile(new QualityModel(Quality.MP3_256));
|
||||
GivenExistingFile(new QualityModel(Quality.MP3_320));
|
||||
GivenUpgradeForExistingFile();
|
||||
|
||||
Mocker.GetMock<IUpgradableSpecification>()
|
||||
@@ -185,10 +185,10 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_be_false_when_release_is_proper_for_existing_album_of_different_quality()
|
||||
{
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2));
|
||||
_remoteAlbum.ParsedAlbumInfo.Quality = new QualityModel(Quality.AZW3, new Revision(version: 2));
|
||||
_remoteAlbum.Release.PublishDate = DateTime.UtcNow;
|
||||
|
||||
GivenExistingFile(new QualityModel(Quality.MP3_192));
|
||||
GivenExistingFile(new QualityModel(Quality.PDF));
|
||||
|
||||
_delayProfile.UsenetDelay = 720;
|
||||
|
||||
|
||||
+19
-22
@@ -23,42 +23,39 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
{
|
||||
private RemoteAlbum _parseResultMulti;
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private TrackFile _firstFile;
|
||||
private TrackFile _secondFile;
|
||||
private BookFile _firstFile;
|
||||
private BookFile _secondFile;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_firstFile =
|
||||
new TrackFile
|
||||
new BookFile
|
||||
{
|
||||
Id = 1,
|
||||
Path = "/My.Artist.S01E01.mp3",
|
||||
Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)),
|
||||
DateAdded = DateTime.Now,
|
||||
AlbumId = 1
|
||||
BookId = 1
|
||||
};
|
||||
_secondFile =
|
||||
new TrackFile
|
||||
new BookFile
|
||||
{
|
||||
Id = 2,
|
||||
Path = "/My.Artist.S01E02.mp3",
|
||||
Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)),
|
||||
DateAdded = DateTime.Now,
|
||||
AlbumId = 2
|
||||
BookId = 2
|
||||
};
|
||||
|
||||
var singleAlbumList = new List<Album> { new Album { Id = 1 } };
|
||||
var doubleAlbumList = new List<Album>
|
||||
var singleAlbumList = new List<Book> { new Book { Id = 1 } };
|
||||
var doubleAlbumList = new List<Book>
|
||||
{
|
||||
new Album { Id = 1 },
|
||||
new Album { Id = 2 }
|
||||
new Book { Id = 1 },
|
||||
new Book { Id = 2 }
|
||||
};
|
||||
|
||||
var firstTrack = new Track { TrackFile = _firstFile, TrackFileId = 1, AlbumId = 1 };
|
||||
var secondTrack = new Track { TrackFile = _secondFile, TrackFileId = 2, AlbumId = 2 };
|
||||
|
||||
var fakeArtist = Builder<Artist>.CreateNew()
|
||||
var fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.FLAC.Id })
|
||||
.With(c => c.Path = @"C:\Music\My.Artist".AsOsAgnostic())
|
||||
.Build();
|
||||
@@ -66,14 +63,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = doubleAlbumList
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = singleAlbumList
|
||||
};
|
||||
|
||||
@@ -87,14 +84,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.Returns(enabled);
|
||||
}
|
||||
|
||||
private void SetupMediaFile(List<TrackFile> files)
|
||||
private void SetupMediaFile(List<BookFile> files)
|
||||
{
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(v => v.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(files);
|
||||
}
|
||||
|
||||
private void WithExistingFile(TrackFile trackFile)
|
||||
private void WithExistingFile(BookFile trackFile)
|
||||
{
|
||||
var path = trackFile.Path;
|
||||
|
||||
@@ -121,7 +118,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
public void should_return_true_if_file_exists()
|
||||
{
|
||||
WithExistingFile(_firstFile);
|
||||
SetupMediaFile(new List<TrackFile> { _firstFile });
|
||||
SetupMediaFile(new List<BookFile> { _firstFile });
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
@@ -129,7 +126,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_return_false_if_file_is_missing()
|
||||
{
|
||||
SetupMediaFile(new List<TrackFile> { _firstFile });
|
||||
SetupMediaFile(new List<BookFile> { _firstFile });
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
}
|
||||
|
||||
@@ -138,7 +135,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
{
|
||||
WithExistingFile(_firstFile);
|
||||
WithExistingFile(_secondFile);
|
||||
SetupMediaFile(new List<TrackFile> { _firstFile, _secondFile });
|
||||
SetupMediaFile(new List<BookFile> { _firstFile, _secondFile });
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
@@ -147,7 +144,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
public void should_return_false_if_one_of_multiple_episode_is_missing()
|
||||
{
|
||||
WithExistingFile(_firstFile);
|
||||
SetupMediaFile(new List<TrackFile> { _firstFile, _secondFile });
|
||||
SetupMediaFile(new List<BookFile> { _firstFile, _secondFile });
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
}
|
||||
|
||||
@@ -23,52 +23,52 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
{
|
||||
private RemoteAlbum _parseResultMulti;
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private TrackFile _firstFile;
|
||||
private TrackFile _secondFile;
|
||||
private BookFile _firstFile;
|
||||
private BookFile _secondFile;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
Mocker.Resolve<UpgradableSpecification>();
|
||||
|
||||
_firstFile = new TrackFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now };
|
||||
_secondFile = new TrackFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now };
|
||||
_firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now };
|
||||
_secondFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 1)), DateAdded = DateTime.Now };
|
||||
|
||||
var singleAlbumList = new List<Album> { new Album { }, new Album { } };
|
||||
var doubleAlbumList = new List<Album> { new Album { }, new Album { }, new Album { } };
|
||||
var singleAlbumList = new List<Book> { new Book { }, new Book { } };
|
||||
var doubleAlbumList = new List<Book> { new Book { }, new Book { }, new Book { } };
|
||||
|
||||
var fakeArtist = Builder<Artist>.CreateNew()
|
||||
var fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.QualityProfile = new QualityProfile { Cutoff = Quality.FLAC.Id })
|
||||
.Build();
|
||||
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { _firstFile, _secondFile });
|
||||
.Returns(new List<BookFile> { _firstFile, _secondFile });
|
||||
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MOBI, new Revision(version: 2)) },
|
||||
Albums = doubleAlbumList
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MOBI, new Revision(version: 2)) },
|
||||
Albums = singleAlbumList
|
||||
};
|
||||
}
|
||||
|
||||
private void WithFirstFileUpgradable()
|
||||
{
|
||||
_firstFile.Quality = new QualityModel(Quality.MP3_192);
|
||||
_firstFile.Quality = new QualityModel(Quality.PDF);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_false_when_trackFile_was_added_more_than_7_days_ago()
|
||||
{
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
@@ -77,8 +77,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_return_false_when_first_trackFile_was_added_more_than_7_days_ago()
|
||||
{
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_secondFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
_secondFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
@@ -87,8 +87,8 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
[Test]
|
||||
public void should_return_false_when_second_trackFile_was_added_more_than_7_days_ago()
|
||||
{
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_secondFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
_secondFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_secondFile.DateAdded = DateTime.Today.AddDays(-30);
|
||||
Subject.IsSatisfiedBy(_parseResultMulti, null).Accepted.Should().BeFalse();
|
||||
@@ -119,7 +119,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.DoNotUpgrade);
|
||||
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
@@ -132,7 +132,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.PreferAndUpgrade);
|
||||
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
@@ -145,7 +145,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.RssSync
|
||||
.Setup(s => s.DownloadPropersAndRepacks)
|
||||
.Returns(ProperDownloadTypes.DoNotPrefer);
|
||||
|
||||
_firstFile.Quality.Quality = Quality.MP3_256;
|
||||
_firstFile.Quality.Quality = Quality.MOBI;
|
||||
|
||||
_firstFile.DateAdded = DateTime.Today;
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
|
||||
@@ -12,16 +12,16 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
[TestFixture]
|
||||
public class ArtistSpecificationFixture : TestBase<ArtistSpecification>
|
||||
{
|
||||
private Artist _artist1;
|
||||
private Artist _artist2;
|
||||
private Author _artist1;
|
||||
private Author _artist2;
|
||||
private RemoteAlbum _remoteAlbum = new RemoteAlbum();
|
||||
private SearchCriteriaBase _searchCriteria = new AlbumSearchCriteria();
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_artist1 = Builder<Artist>.CreateNew().With(s => s.Id = 1).Build();
|
||||
_artist2 = Builder<Artist>.CreateNew().With(s => s.Id = 2).Build();
|
||||
_artist1 = Builder<Author>.CreateNew().With(s => s.Id = 1).Build();
|
||||
_artist2 = Builder<Author>.CreateNew().With(s => s.Id = 2).Build();
|
||||
|
||||
_remoteAlbum.Artist = _artist1;
|
||||
}
|
||||
|
||||
+2
-2
@@ -15,14 +15,14 @@ namespace NzbDrone.Core.Test.DecisionEngineTests.Search
|
||||
[TestFixture]
|
||||
public class TorrentSeedingSpecificationFixture : TestBase<TorrentSeedingSpecification>
|
||||
{
|
||||
private Artist _artist;
|
||||
private Author _artist;
|
||||
private RemoteAlbum _remoteAlbum;
|
||||
private IndexerDefinition _indexerDefinition;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_artist = Builder<Artist>.CreateNew().With(s => s.Id = 1).Build();
|
||||
_artist = Builder<Author>.CreateNew().With(s => s.Id = 1).Build();
|
||||
|
||||
_remoteAlbum = new RemoteAlbum
|
||||
{
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
UpgradeAllowed = true
|
||||
},
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320) },
|
||||
new QualityModel(Quality.MP3_256))
|
||||
new QualityModel(Quality.MP3_320))
|
||||
.Should().BeTrue();
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
UpgradeAllowed = false
|
||||
},
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320) },
|
||||
new QualityModel(Quality.MP3_256))
|
||||
new QualityModel(Quality.MP3_320))
|
||||
.Should().BeTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
@@ -15,26 +16,26 @@ using NzbDrone.Core.Test.Framework;
|
||||
namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
[TestFixture]
|
||||
|
||||
[Ignore("Pending Readarr fixes")]
|
||||
public class UpgradeDiskSpecificationFixture : CoreTest<UpgradeDiskSpecification>
|
||||
{
|
||||
private RemoteAlbum _parseResultMulti;
|
||||
private RemoteAlbum _parseResultSingle;
|
||||
private TrackFile _firstFile;
|
||||
private TrackFile _secondFile;
|
||||
private BookFile _firstFile;
|
||||
private BookFile _secondFile;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
Mocker.Resolve<UpgradableSpecification>();
|
||||
|
||||
_firstFile = new TrackFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
_secondFile = new TrackFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
_firstFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
_secondFile = new BookFile { Quality = new QualityModel(Quality.FLAC, new Revision(version: 2)), DateAdded = DateTime.Now };
|
||||
|
||||
var singleAlbumList = new List<Album> { new Album { } };
|
||||
var doubleAlbumList = new List<Album> { new Album { }, new Album { }, new Album { } };
|
||||
var singleAlbumList = new List<Book> { new Book { BookFiles = new List<BookFile>() } };
|
||||
var doubleAlbumList = new List<Book> { new Book { BookFiles = new List<BookFile>() }, new Book { BookFiles = new List<BookFile>() }, new Book { BookFiles = new List<BookFile>() } };
|
||||
|
||||
var fakeArtist = Builder<Artist>.CreateNew()
|
||||
var fakeArtist = Builder<Author>.CreateNew()
|
||||
.With(c => c.QualityProfile = new QualityProfile
|
||||
{
|
||||
UpgradeAllowed = true,
|
||||
@@ -43,45 +44,39 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
})
|
||||
.Build();
|
||||
|
||||
Mocker.GetMock<ITrackService>()
|
||||
.Setup(c => c.TracksWithoutFiles(It.IsAny<int>()))
|
||||
.Returns(new List<Track>());
|
||||
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { _firstFile, _secondFile });
|
||||
.Returns(new List<BookFile> { _firstFile, _secondFile });
|
||||
|
||||
_parseResultMulti = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = doubleAlbumList
|
||||
};
|
||||
|
||||
_parseResultSingle = new RemoteAlbum
|
||||
{
|
||||
Artist = fakeArtist,
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_256, new Revision(version: 2)) },
|
||||
ParsedAlbumInfo = new ParsedAlbumInfo { Quality = new QualityModel(Quality.MP3_320, new Revision(version: 2)) },
|
||||
Albums = singleAlbumList
|
||||
};
|
||||
}
|
||||
|
||||
private void WithFirstFileUpgradable()
|
||||
{
|
||||
_firstFile.Quality = new QualityModel(Quality.MP3_192);
|
||||
_firstFile.Quality = new QualityModel(Quality.MP3_320);
|
||||
}
|
||||
|
||||
private void WithSecondFileUpgradable()
|
||||
{
|
||||
_secondFile.Quality = new QualityModel(Quality.MP3_192);
|
||||
_secondFile.Quality = new QualityModel(Quality.MP3_320);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_album_has_no_existing_file()
|
||||
{
|
||||
Mocker.GetMock<IMediaFileService>()
|
||||
.Setup(c => c.GetFilesByAlbum(It.IsAny<int>()))
|
||||
.Returns(new List<TrackFile> { });
|
||||
_parseResultSingle.Albums.First().BookFiles = new List<BookFile>();
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
@@ -89,10 +84,6 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
[Test]
|
||||
public void should_return_true_if_track_is_missing()
|
||||
{
|
||||
Mocker.GetMock<ITrackService>()
|
||||
.Setup(c => c.TracksWithoutFiles(It.IsAny<int>()))
|
||||
.Returns(new List<Track> { new Track() });
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
|
||||
@@ -101,15 +92,12 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse();
|
||||
|
||||
Mocker.GetMock<ITrackService>()
|
||||
.Verify(c => c.TracksWithoutFiles(It.IsAny<int>()), Times.Once());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_return_true_if_single_album_doesnt_exist_on_disk()
|
||||
{
|
||||
_parseResultSingle.Albums = new List<Album>();
|
||||
_parseResultSingle.Albums = new List<Book>();
|
||||
|
||||
Subject.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeTrue();
|
||||
}
|
||||
|
||||
@@ -15,11 +15,11 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
{
|
||||
public static object[] IsUpgradeTestCases =
|
||||
{
|
||||
new object[] { Quality.MP3_192, 1, Quality.MP3_192, 2, Quality.MP3_192, true },
|
||||
new object[] { Quality.AZW3, 1, Quality.AZW3, 2, Quality.AZW3, true },
|
||||
new object[] { Quality.MP3_320, 1, Quality.MP3_320, 2, Quality.MP3_320, true },
|
||||
new object[] { Quality.MP3_192, 1, Quality.MP3_192, 1, Quality.MP3_192, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.MP3_256, 2, Quality.MP3_320, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.MP3_256, 2, Quality.MP3_320, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.MP3_320, 1, Quality.MP3_320, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.AZW3, 2, Quality.MP3_320, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.AZW3, 2, Quality.MP3_320, false },
|
||||
new object[] { Quality.MP3_320, 1, Quality.MP3_320, 1, Quality.MP3_320, false }
|
||||
};
|
||||
|
||||
@@ -65,9 +65,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
Subject.IsUpgradable(
|
||||
profile,
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_256, new Revision(version: 1)) },
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320, new Revision(version: 1)) },
|
||||
NoPreferredWordScore,
|
||||
new QualityModel(Quality.MP3_256, new Revision(version: 2)),
|
||||
new QualityModel(Quality.MP3_320, new Revision(version: 2)),
|
||||
NoPreferredWordScore)
|
||||
.Should().BeTrue();
|
||||
}
|
||||
@@ -84,9 +84,9 @@ namespace NzbDrone.Core.Test.DecisionEngineTests
|
||||
|
||||
Subject.IsUpgradable(
|
||||
profile,
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_256, new Revision(version: 1)) },
|
||||
new List<QualityModel> { new QualityModel(Quality.MP3_320, new Revision(version: 1)) },
|
||||
NoPreferredWordScore,
|
||||
new QualityModel(Quality.MP3_256, new Revision(version: 2)),
|
||||
new QualityModel(Quality.MP3_320, new Revision(version: 2)),
|
||||
NoPreferredWordScore)
|
||||
.Should().BeFalse();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user