|
|
|
using System.Diagnostics.CodeAnalysis;
|
|
|
|
using Recyclarr.Cli.Pipelines.MediaNaming;
|
|
|
|
using Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases;
|
|
|
|
using Recyclarr.ServarrApi.MediaNaming;
|
|
|
|
|
|
|
|
namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming;
|
|
|
|
|
|
|
|
[TestFixture]
|
|
|
|
[SuppressMessage(
|
|
|
|
"Reliability",
|
|
|
|
"CA2000:Dispose objects before losing scope",
|
|
|
|
Justification = "Do not care about disposal in a testing context"
|
|
|
|
)]
|
|
|
|
public class MediaNamingTransactionPhaseRadarrTest
|
|
|
|
{
|
|
|
|
[Test, AutoMockData]
|
|
|
|
public void Radarr_left_null(MediaNamingTransactionPhase sut)
|
|
|
|
{
|
|
|
|
var context = new MediaNamingPipelineContext
|
|
|
|
{
|
|
|
|
ApiFetchOutput = new RadarrMediaNamingDto(),
|
|
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
|
|
{
|
|
|
|
Dto = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = true,
|
|
|
|
StandardMovieFormat = "file_format",
|
|
|
|
MovieFolderFormat = "folder_format",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
sut.Execute(context);
|
|
|
|
|
|
|
|
context
|
|
|
|
.TransactionOutput.Should()
|
|
|
|
.BeEquivalentTo(context.ConfigOutput.Dto, o => o.RespectingRuntimeTypes());
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, AutoMockData]
|
|
|
|
public void Radarr_right_null(MediaNamingTransactionPhase sut)
|
|
|
|
{
|
|
|
|
var context = new MediaNamingPipelineContext
|
|
|
|
{
|
|
|
|
ApiFetchOutput = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = true,
|
|
|
|
StandardMovieFormat = "file_format",
|
|
|
|
MovieFolderFormat = "folder_format",
|
|
|
|
},
|
|
|
|
ConfigOutput = new ProcessedNamingConfig { Dto = new RadarrMediaNamingDto() },
|
|
|
|
};
|
|
|
|
|
|
|
|
sut.Execute(context);
|
|
|
|
|
|
|
|
context
|
|
|
|
.TransactionOutput.Should()
|
|
|
|
.BeEquivalentTo(context.ApiFetchOutput, o => o.RespectingRuntimeTypes());
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, AutoMockData]
|
|
|
|
public void Radarr_right_and_left_with_rename(MediaNamingTransactionPhase sut)
|
|
|
|
{
|
|
|
|
var context = new MediaNamingPipelineContext
|
|
|
|
{
|
|
|
|
ApiFetchOutput = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = false,
|
|
|
|
StandardMovieFormat = "file_format",
|
|
|
|
MovieFolderFormat = "folder_format",
|
|
|
|
},
|
|
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
|
|
{
|
|
|
|
Dto = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = true,
|
|
|
|
StandardMovieFormat = "file_format2",
|
|
|
|
MovieFolderFormat = "folder_format2",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
sut.Execute(context);
|
|
|
|
|
|
|
|
context
|
|
|
|
.TransactionOutput.Should()
|
|
|
|
.BeEquivalentTo(context.ConfigOutput.Dto, o => o.RespectingRuntimeTypes());
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test, AutoMockData]
|
|
|
|
public void Radarr_right_and_left_without_rename(MediaNamingTransactionPhase sut)
|
|
|
|
{
|
|
|
|
var context = new MediaNamingPipelineContext
|
|
|
|
{
|
|
|
|
ApiFetchOutput = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = true,
|
|
|
|
StandardMovieFormat = "file_format",
|
|
|
|
MovieFolderFormat = "folder_format",
|
|
|
|
},
|
|
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
|
|
{
|
|
|
|
Dto = new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = false,
|
|
|
|
StandardMovieFormat = "file_format2",
|
|
|
|
MovieFolderFormat = "folder_format2",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
sut.Execute(context);
|
|
|
|
|
|
|
|
context
|
|
|
|
.TransactionOutput.Should()
|
|
|
|
.BeEquivalentTo(
|
|
|
|
new RadarrMediaNamingDto
|
|
|
|
{
|
|
|
|
RenameMovies = false,
|
|
|
|
StandardMovieFormat = "file_format2",
|
|
|
|
MovieFolderFormat = "folder_format2",
|
|
|
|
},
|
|
|
|
o => o.RespectingRuntimeTypes()
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|