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,5 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using FizzWare.NBuilder;
using FluentAssertions;
using Moq;
@@ -9,6 +9,7 @@ using NzbDrone.Core.Datastore;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Music;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.RootFolders;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common;
@@ -16,7 +17,7 @@ namespace NzbDrone.Core.Test.MediaFiles
{
public class UpgradeMediaFileServiceFixture : CoreTest<UpgradeMediaFileService>
{
private TrackFile _trackFile;
private BookFile _trackFile;
private LocalTrack _localTrack;
private string _rootPath = @"C:\Test\Music\Artist".AsOsAgnostic();
@@ -24,12 +25,12 @@ namespace NzbDrone.Core.Test.MediaFiles
public void Setup()
{
_localTrack = new LocalTrack();
_localTrack.Artist = new Artist
_localTrack.Artist = new Author
{
Path = _rootPath
};
_trackFile = Builder<TrackFile>
_trackFile = Builder<BookFile>
.CreateNew()
.Build();
@@ -44,57 +45,25 @@ namespace NzbDrone.Core.Test.MediaFiles
Mocker.GetMock<IDiskProvider>()
.Setup(c => c.GetParentFolder(It.IsAny<string>()))
.Returns<string>(c => Path.GetDirectoryName(c));
Mocker.GetMock<IRootFolderService>()
.Setup(c => c.GetBestRootFolder(It.IsAny<string>()))
.Returns(new RootFolder());
}
private void GivenSingleTrackWithSingleTrackFile()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(1)
.All()
.With(e => e.TrackFileId = 1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(
new TrackFile
{
Id = 1,
Path = Path.Combine(_rootPath, @"Season 01\30.rock.s01e01.avi"),
}))
.Build()
.ToList();
}
private void GivenMultipleTracksWithSingleTrackFile()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(2)
.All()
.With(e => e.TrackFileId = 1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(
new TrackFile
{
Id = 1,
Path = Path.Combine(_rootPath, @"Season 01\30.rock.s01e01.avi"),
}))
.Build()
.ToList();
}
private void GivenMultipleTracksWithMultipleTrackFiles()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(2)
.TheFirst(1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(
new TrackFile
{
Id = 1,
Path = Path.Combine(_rootPath, @"Season 01\30.rock.s01e01.avi"),
}))
.TheNext(1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(
new TrackFile
{
Id = 2,
Path = Path.Combine(_rootPath, @"Season 01\30.rock.s01e02.avi"),
}))
.Build()
.ToList();
_localTrack.Album = Builder<Book>.CreateNew()
.With(e => e.BookFiles = new LazyLoaded<List<BookFile>>(
new List<BookFile>
{
new BookFile
{
Id = 1,
Path = Path.Combine(_rootPath, @"Season 01\30.rock.s01e01.avi"),
}
}))
.Build();
}
[Test]
@@ -107,26 +76,6 @@ namespace NzbDrone.Core.Test.MediaFiles
Mocker.GetMock<IRecycleBinProvider>().Verify(v => v.DeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once());
}
[Test]
public void should_delete_the_same_track_file_only_once()
{
GivenMultipleTracksWithSingleTrackFile();
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IRecycleBinProvider>().Verify(v => v.DeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once());
}
[Test]
public void should_delete_multiple_different_track_files()
{
GivenMultipleTracksWithMultipleTrackFiles();
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IRecycleBinProvider>().Verify(v => v.DeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
}
[Test]
public void should_delete_track_file_from_database()
{
@@ -134,7 +83,7 @@ namespace NzbDrone.Core.Test.MediaFiles
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(It.IsAny<TrackFile>(), DeleteMediaFileReason.Upgrade), Times.Once());
Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(It.IsAny<BookFile>(), DeleteMediaFileReason.Upgrade), Times.Once());
}
[Test]
@@ -148,7 +97,7 @@ namespace NzbDrone.Core.Test.MediaFiles
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(_localTrack.Tracks.Single().TrackFile.Value, DeleteMediaFileReason.Upgrade), Times.Once());
// Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(_localTrack.Album.BookFiles.Value, DeleteMediaFileReason.Upgrade), Times.Once());
}
[Test]
@@ -174,26 +123,16 @@ namespace NzbDrone.Core.Test.MediaFiles
}
[Test]
public void should_return_old_track_files_in_oldFiles()
{
GivenMultipleTracksWithMultipleTrackFiles();
Subject.UpgradeTrackFile(_trackFile, _localTrack).OldFiles.Count.Should().Be(2);
}
[Test]
[Ignore("Pending readarr fix")]
public void should_import_if_existing_file_doesnt_exist_in_db()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(1)
.All()
.With(e => e.TrackFileId = 1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(null))
.Build()
.ToList();
_localTrack.Album = Builder<Book>.CreateNew()
.With(e => e.BookFiles = new LazyLoaded<List<BookFile>>())
.Build();
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(_localTrack.Tracks.Single().TrackFile.Value, It.IsAny<DeleteMediaFileReason>()), Times.Never());
// Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(_localTrack.Album.BookFiles.Value, It.IsAny<DeleteMediaFileReason>()), Times.Never());
}
}
}