mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-23 22:45:06 -04:00
[WIP] Additions to custom formats, such as rescanning old files. (#2949)
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
using System.Collections.Generic;
|
||||
using FizzWare.NBuilder;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.History;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
using NzbDrone.Core.MediaFiles.Commands;
|
||||
using NzbDrone.Core.Parser;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.Core.Qualities;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Test.MediaFiles
|
||||
{
|
||||
[TestFixture]
|
||||
public class UpdateMovieFileQualityServiceFixture : CoreTest<UpdateMovieFileQualityService>
|
||||
{
|
||||
private MovieFile _movieFile;
|
||||
private QualityModel _oldQuality;
|
||||
private QualityModel _newQuality;
|
||||
|
||||
private ParsedMovieInfo _newInfo;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_movieFile = Builder<MovieFile>.CreateNew().With(m => m.MovieId = 0).Build();
|
||||
|
||||
_oldQuality = new QualityModel(Quality.Bluray720p);
|
||||
|
||||
_movieFile.Quality = _oldQuality;
|
||||
|
||||
_newQuality = _oldQuality.JsonClone();
|
||||
var format = new CustomFormats.CustomFormat("Awesome Format");
|
||||
format.Id = 1;
|
||||
_newQuality.CustomFormats = new List<CustomFormats.CustomFormat>{format};
|
||||
|
||||
_newInfo = new ParsedMovieInfo
|
||||
{
|
||||
Quality = _newQuality
|
||||
};
|
||||
|
||||
Mocker.GetMock<IMediaFileService>().Setup(s => s.GetMovies(It.IsAny<IEnumerable<int>>()))
|
||||
.Returns(new List<MovieFile>{_movieFile});
|
||||
|
||||
Mocker.GetMock<IHistoryService>().Setup(s => s.FindByMovieId(It.IsAny<int>()))
|
||||
.Returns(new List<History.History>());
|
||||
}
|
||||
|
||||
private void ExecuteCommand()
|
||||
{
|
||||
Subject.Execute(new UpdateMovieFileQualityCommand(new List<int>{0}));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_not_update_if_unable_to_parse()
|
||||
{
|
||||
ExecuteCommand();
|
||||
|
||||
Mocker.GetMock<IMediaFileService>().Verify(s => s.Update(It.IsAny<MovieFile>()), Times.Never());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_update_with_new_formats()
|
||||
{
|
||||
Mocker.GetMock<IParsingService>().Setup(s => s.ParseMovieInfo(It.IsAny<string>(), It.IsAny<List<object>>()))
|
||||
.Returns(_newInfo);
|
||||
|
||||
ExecuteCommand();
|
||||
|
||||
Mocker.GetMock<IMediaFileService>().Verify(s => s.Update(It.Is<MovieFile>(f => f.Quality.CustomFormats == _newQuality.CustomFormats)), Times.Once());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_use_imported_history_title()
|
||||
{
|
||||
var imported = Builder<History.History>.CreateNew()
|
||||
.With(h => h.EventType = HistoryEventType.DownloadFolderImported)
|
||||
.With(h => h.SourceTitle = "My Movie 2018.mkv").Build();
|
||||
Mocker.GetMock<IHistoryService>().Setup(s => s.FindByMovieId(It.IsAny<int>()))
|
||||
.Returns(new List<History.History> {imported});
|
||||
|
||||
ExecuteCommand();
|
||||
|
||||
Mocker.GetMock<IParsingService>().Verify(s => s.ParseMovieInfo("My Movie 2018.mkv", It.IsAny<List<object>>()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user