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()); } }