You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
5.2 KiB
144 lines
5.2 KiB
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")]
|
|
public class MediaNamingTransactionPhaseSonarrTest
|
|
{
|
|
[Test, AutoMockData]
|
|
public void Sonarr_left_null(MediaNamingTransactionPhase sut)
|
|
{
|
|
var context = new MediaNamingPipelineContext
|
|
{
|
|
ApiFetchOutput = new SonarrMediaNamingDto(),
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
{
|
|
Dto = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = true,
|
|
SeasonFolderFormat = "season_default",
|
|
SeriesFolderFormat = "series_plex",
|
|
StandardEpisodeFormat = "episodes_standard_default_3",
|
|
DailyEpisodeFormat = "episodes_daily_default_3",
|
|
AnimeEpisodeFormat = "episodes_anime_default_3",
|
|
},
|
|
},
|
|
};
|
|
|
|
sut.Execute(context);
|
|
|
|
context
|
|
.TransactionOutput.Should()
|
|
.BeEquivalentTo(context.ConfigOutput.Dto, o => o.RespectingRuntimeTypes());
|
|
}
|
|
|
|
[Test, AutoMockData]
|
|
public void Sonarr_right_null(MediaNamingTransactionPhase sut)
|
|
{
|
|
var context = new MediaNamingPipelineContext
|
|
{
|
|
ApiFetchOutput = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = true,
|
|
SeasonFolderFormat = "season_default",
|
|
SeriesFolderFormat = "series_plex",
|
|
StandardEpisodeFormat = "episodes_standard_default_3",
|
|
DailyEpisodeFormat = "episodes_daily_default_3",
|
|
AnimeEpisodeFormat = "episodes_anime_default_3",
|
|
},
|
|
ConfigOutput = new ProcessedNamingConfig { Dto = new SonarrMediaNamingDto() },
|
|
};
|
|
|
|
sut.Execute(context);
|
|
|
|
context
|
|
.TransactionOutput.Should()
|
|
.BeEquivalentTo(context.ApiFetchOutput, o => o.RespectingRuntimeTypes());
|
|
}
|
|
|
|
[Test, AutoMockData]
|
|
public void Sonarr_right_and_left_with_rename(MediaNamingTransactionPhase sut)
|
|
{
|
|
var context = new MediaNamingPipelineContext
|
|
{
|
|
ApiFetchOutput = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = false,
|
|
SeasonFolderFormat = "season_default",
|
|
SeriesFolderFormat = "series_plex",
|
|
StandardEpisodeFormat = "episodes_standard_default",
|
|
DailyEpisodeFormat = "episodes_daily_default",
|
|
AnimeEpisodeFormat = "episodes_anime_default",
|
|
},
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
{
|
|
Dto = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = true,
|
|
SeasonFolderFormat = "season_default2",
|
|
SeriesFolderFormat = "series_plex2",
|
|
StandardEpisodeFormat = "episodes_standard_default2",
|
|
DailyEpisodeFormat = "episodes_daily_default2",
|
|
AnimeEpisodeFormat = "episodes_anime_default2",
|
|
},
|
|
},
|
|
};
|
|
|
|
sut.Execute(context);
|
|
|
|
context
|
|
.TransactionOutput.Should()
|
|
.BeEquivalentTo(context.ConfigOutput.Dto, o => o.RespectingRuntimeTypes());
|
|
}
|
|
|
|
[Test, AutoMockData]
|
|
public void Sonarr_right_and_left_without_rename(MediaNamingTransactionPhase sut)
|
|
{
|
|
var context = new MediaNamingPipelineContext
|
|
{
|
|
ApiFetchOutput = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = true,
|
|
SeasonFolderFormat = "season_default",
|
|
SeriesFolderFormat = "series_plex",
|
|
StandardEpisodeFormat = "episodes_standard_default",
|
|
DailyEpisodeFormat = "episodes_daily_default",
|
|
AnimeEpisodeFormat = "episodes_anime_default",
|
|
},
|
|
ConfigOutput = new ProcessedNamingConfig
|
|
{
|
|
Dto = new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = false,
|
|
SeasonFolderFormat = "season_default2",
|
|
SeriesFolderFormat = "series_plex2",
|
|
StandardEpisodeFormat = "episodes_standard_default2",
|
|
DailyEpisodeFormat = "episodes_daily_default2",
|
|
AnimeEpisodeFormat = "episodes_anime_default2",
|
|
},
|
|
},
|
|
};
|
|
|
|
sut.Execute(context);
|
|
|
|
context
|
|
.TransactionOutput.Should()
|
|
.BeEquivalentTo(
|
|
new SonarrMediaNamingDto
|
|
{
|
|
RenameEpisodes = false,
|
|
SeasonFolderFormat = "season_default2",
|
|
SeriesFolderFormat = "series_plex2",
|
|
StandardEpisodeFormat = "episodes_standard_default2",
|
|
DailyEpisodeFormat = "episodes_daily_default2",
|
|
AnimeEpisodeFormat = "episodes_anime_default2",
|
|
},
|
|
o => o.RespectingRuntimeTypes()
|
|
);
|
|
}
|
|
}
|