New: Readarr 0.1

This commit is contained in:
ta264
2020-05-06 21:14:11 +01:00
parent 476f2d6047
commit 08496c82af
911 changed files with 14837 additions and 24442 deletions
@@ -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();
}