From 173be3791825902b25138e931427406c0d28e8b2 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sun, 2 Mar 2025 09:52:46 -0600 Subject: [PATCH] refactor: Address internal sealed class warnings - Made lots of classes internal & sealed as needed - Removed Cli.TestLibrary project. TestLibrary projects are only useful if they're going to be reusable in other tests. The Cli project is at the bottom of the dependency chain and doesn't need to be reusable. --- .editorconfig | 3 - Directory.Build.props | 2 + Recyclarr.sln | 7 - src/Recyclarr.Cli/CompositionRoot.cs | 6 +- src/Recyclarr.Cli/Console/CliSetup.cs | 2 +- src/Recyclarr.Cli/Console/CommandException.cs | 2 +- .../Console/Commands/BaseCommandSettings.cs | 2 +- .../Console/Commands/ConfigCreateCommand.cs | 5 +- .../Commands/ConfigListLocalCommand.cs | 4 +- .../Commands/ConfigListTemplatesCommand.cs | 10 +- .../Commands/DeleteCustomFormatsCommand.cs | 5 +- .../Commands/ListCustomFormatsCommand.cs | 8 +- .../Commands/ListMediaNamingCommand.cs | 4 +- .../Console/Commands/ListQualitiesCommand.cs | 4 +- .../Console/Commands/MigrateCommand.cs | 4 +- .../Console/Commands/SyncCommand.cs | 9 +- .../Helpers/EnumDescriptionAttribute.cs | 2 +- .../Settings/IConfigListTemplatesSettings.cs | 6 + .../Console/Settings/ICreateConfigSettings.cs | 2 +- .../Settings/IDeleteCustomFormatSettings.cs | 2 +- .../Settings/IListCustomFormatSettings.cs | 2 +- .../Console/Settings/ISyncSettings.cs | 2 +- .../Console/Setup/AppDataDirSetupTask.cs | 2 +- .../Console/Setup/CompositeGlobalSetupTask.cs | 2 +- .../Console/Setup/IGlobalSetupTask.cs | 2 +- .../Console/Setup/JanitorCleanupTask.cs | 2 +- .../Console/Setup/LoggerSetupTask.cs | 2 +- .../Setup/ProgramInformationDisplayTask.cs | 2 +- src/Recyclarr.Cli/Logging/LogJanitor.cs | 2 +- src/Recyclarr.Cli/Logging/LoggerFactory.cs | 2 +- .../Migration/IMigrationExecutor.cs | 7 - .../Migration/MigrationException.cs | 2 +- .../Migration/MigrationExecutor.cs | 4 +- .../Migration/RequiredMigrationException.cs | 2 +- .../Steps/DeleteRepoDirMigrationStep.cs | 2 +- .../Migration/Steps/IMigrationStep.cs | 2 +- .../Migration/Steps/MoveOsxAppDataDotnet8.cs | 2 +- .../CustomFormat/Cache/CustomFormatCache.cs | 6 +- .../Cache/CustomFormatCachePersister.cs | 2 +- .../CustomFormat/CustomFormatDataLister.cs | 2 +- .../Models/ConflictingCustomFormat.cs | 2 +- .../Models/CustomFormatTransactionData.cs | 2 +- .../Models/ProcessedConfigData.cs | 10 -- .../Models/ProcessedCustomFormatCache.cs | 2 +- src/Recyclarr.Cli/Pipelines/IPipelineCache.cs | 2 +- src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs | 6 +- .../MediaNaming/MediaNamingDataLister.cs | 2 +- .../IServiceBasedMediaNamingConfigPhase.cs | 2 +- .../Config/NamingFormatLookup.cs | 2 +- .../Config/RadarrMediaNamingConfigPhase.cs | 2 +- .../Config/SonarrMediaNamingConfigPhase.cs | 2 +- .../PipelinePhases/MediaNamingConfigPhase.cs | 4 +- .../Pipelines/PipelineAutofacModule.cs | 2 +- .../Models/ProcessedQualityProfileData.cs | 9 +- .../Models/QualityProfileServiceData.cs | 2 +- .../Models/QualityProfileTransactionData.cs | 4 +- .../Models/QualityProfileUpdateReason.cs | 2 +- .../QualityProfile/QualityItemOrganizer.cs | 2 +- .../QualityProfileExtensions.cs | 2 +- .../QualityProfileStatCalculator.cs | 4 +- .../QualityProfile/UpdatedFormatScore.cs | 4 +- .../QualityProfile/UpdatedQualityProfile.cs | 4 +- .../UpdatedQualityProfileValidator.cs | 2 +- .../Limits/IQualityItemLimitFactory.cs | 2 +- .../Limits/QualityItemLimitFactory.cs | 2 +- .../Limits/RadarrQualityItemLimitFetcher.cs | 2 +- .../Limits/SonarrQualityItemLimitFetcher.cs | 2 +- .../QualitySize/QualitySizeDataLister.cs | 2 +- .../Config/ConfigCreationProcessor.cs | 2 +- .../Config/ConfigListLocalProcessor.cs | 2 +- .../Config/ConfigListTemplateProcessor.cs | 4 +- .../Processors/Config/FileExistsException.cs | 2 +- .../Config/IConfigCreationProcessor.cs | 2 +- .../Processors/Config/IConfigCreator.cs | 2 +- .../Processors/Config/LocalConfigCreator.cs | 2 +- .../Config/TemplateConfigCreator.cs | 2 +- .../Delete/DeleteCustomFormatsProcessor.cs | 2 +- .../Delete/IDeleteCustomFormatsProcessor.cs | 2 +- .../ErrorHandling/ConsoleExceptionHandler.cs | 2 +- .../ErrorHandling/ErrorResponseParser.cs | 2 +- .../FlurlHttpExceptionHandler.cs | 2 +- .../IServiceErrorMessageExtractor.cs | 2 +- .../ServiceErrorMessageExtractor.cs | 2 +- src/Recyclarr.Cli/Processors/ExitStatus.cs | 2 +- .../Processors/FatalException.cs | 2 +- .../Processors/IServiceProcessor.cs | 9 -- .../Processors/Sync/ISyncProcessor.cs | 8 - .../Processors/Sync/SyncProcessor.cs | 6 +- src/Recyclarr.Core/GlobalUsings.cs | 1 - tests/Directory.Build.props | 4 +- .../Recyclarr.Cli.TestLibrary.csproj | 7 - .../Cache/CustomFormatCacheTest.cs | 5 +- .../AutoMapperConfigurationTest.cs | 3 +- .../BaseCommandSetupIntegrationTest.cs | 3 +- .../CliCommandIntegrationTest.cs | 2 +- .../IntegrationTests/CompositionRootTest.cs | 3 +- .../ConfigCreationProcessorIntegrationTest.cs | 3 +- .../CustomFormatTransactionPhaseTest.cs | 3 +- .../ServiceCompatibilityIntegrationTest.cs | 3 +- .../TemplateConfigCreatorIntegrationTest.cs | 3 +- tests/Recyclarr.Cli.Tests/LogJanitorTest.cs | 3 +- .../Migration/MigrationExecutorTest.cs | 3 +- .../CustomFormatDataListerTest.cs | 3 +- .../Models/CustomFormatDataComparerTest.cs | 3 +- .../Models/FieldsArrayJsonConverterTest.cs | 3 +- .../CustomFormatConfigPhaseTest.cs | 3 +- .../Config/NamingFormatLookupTest.cs | 4 +- .../RadarrMediaNamingConfigPhaseTest.cs | 4 +- .../SonarrMediaNamingConfigPhaseTest.cs | 4 +- .../MediaNamingTransactionPhaseRadarrTest.cs | 1 - .../MediaNamingTransactionPhaseSonarrTest.cs | 1 - .../Api/QualityProfileDtoTest.cs | 4 +- .../QualityProfileConfigPhaseTest.cs | 4 +- .../QualityProfileTransactionPhaseTest.cs | 2 +- .../QualityItemOrganizerTest.cs | 4 +- .../QualityProfileExtensionsTest.cs | 4 +- .../UpdatedQualityProfileTest.cs | 4 +- .../UpdatedQualityProfileValidatorTest.cs | 4 +- .../QualitySizeConfigPhaseTest.cs | 3 +- .../QualitySizeTransactionPhaseTest.cs | 1 - .../Config/TemplateConfigCreatorTest.cs | 3 +- .../Processors/ConfigCreationProcessorTest.cs | 3 +- .../Processors/ConfigTemplateListerTest.cs | 5 +- .../FlurlHttpExceptionHandlerTest.cs | 3 +- .../Recyclarr.Cli.Tests.csproj | 2 +- .../Reusable}/CfCache.cs | 4 +- .../Reusable}/CliIntegrationFixture.cs | 4 +- .../{ => Reusable}/NewQp.cs | 4 +- .../Reusable}/RemoteRepoFileMapper.cs | 4 +- .../Reusable}/TestQualityItemLimitFactory.cs | 10 +- .../Reusable}/TrashRepoFileMapper.cs | 4 +- .../IntegrationTestFixture.cs | 4 + .../Recyclarr.Core.TestLibrary.csproj | 3 + .../Cache/CachePersisterTest.cs | 39 ++++- .../Cache/CacheStoragePathTest.cs | 3 +- .../Cache/TestCacheObject.cs | 17 --- .../Cache/TestCachePersister.cs | 20 --- .../Extensions/DictionaryExtensionsTest.cs | 3 +- .../Extensions/FileSystemExtensionsTest.cs | 3 +- .../Common/Extensions/StringExtensionsTest.cs | 3 +- .../Common/ResourceDataReaderTest.cs | 3 +- .../Common/ScopedStateTest.cs | 3 +- .../Sonarr/SonarrCapabilityEnforcerTest.cs | 3 +- .../Config/ConfigExtensionsTest.cs | 138 ------------------ ...ironmentVariableNotDefinedExceptionTest.cs | 3 +- .../Config/Filtering/ConfigFiltersTest.cs | 3 +- .../Parsing/ConfigValidationExecutorTest.cs | 3 +- .../ConfigYamlDataObjectsValidationTest.cs | 3 +- .../Parsing/ConfigYamlMapperProfileTest.cs | 3 +- .../Config/Parsing/ConfigurationFinderTest.cs | 3 +- .../ConfigIncludeProcessorTest.cs | 3 +- .../ConfigMerging/MergeApiKeyTest.cs | 3 +- .../ConfigMerging/MergeBaseUrlTest.cs | 3 +- .../ConfigMerging/MergeCustomFormatsTest.cs | 3 +- .../MergeMediaNamingRadarrTest.cs | 3 +- .../MergeMediaNamingSonarrTest.cs | 3 +- .../MergeQualityDefinitionTest.cs | 3 +- .../ConfigMerging/MergeQualityProfilesTest.cs | 3 +- .../TemplateIncludeProcessorTest.cs | 3 +- .../ConfigMerging/YamlIncludeResolverTest.cs | 9 +- .../ImplicitUrlAndKeyPostProcessorTest.cs | 3 +- .../Config/Parsing/YamlConfigValidatorTest.cs | 3 +- .../Secrets/SecretNotFoundExceptionTest.cs | 3 +- .../Config/Settings/SettingsLoaderTest.cs | 3 +- .../BulkJsonLoaderIntegrationTest.cs | 3 +- .../IntegrationTests/ConfigSaverTest.cs | 3 +- ...nfigTemplateGuideServiceIntegrationTest.cs | 3 +- .../ConfigurationLoaderEnvVarTest.cs | 3 +- .../ConfigurationLoaderSecretsTest.cs | 3 +- .../ConfigurationLoaderTest.cs | 3 +- .../ConfigurationRegistryTest.cs | 3 +- .../CustomFormatLoaderIntegrationTest.cs | 3 +- .../CustomFormatServiceTest.cs | 3 +- .../IncludePostProcessorIntegrationTest.cs | 3 +- .../QualitySizeGuideParserTest.cs | 3 +- .../QualitySizeGuideServiceTest.cs | 3 +- .../TrashGuide/MediaNamingGuideServiceTest.cs | 3 +- .../Json/JsonUtilsTest.cs | 3 +- .../Platform/DefaultAppDataSetupTest.cs | 3 +- .../Repo/TrashRepoMetadataBuilderTest.cs | 3 +- .../ConfigTemplateGuideServiceTest.cs | 3 +- .../CustomFormatCategoryParserTest.cs | 3 +- .../NondeterministicValueConverterTest.cs | 3 +- .../QualitySize/QualityItemWithLimitsTest.cs | 3 +- .../VersionControl/GitPathTest.cs | 3 +- .../AutoFixture/AutoMockDataAttribute.cs | 1 + .../AutoFixture/AutofacSpecimenBuilder.cs | 2 +- .../AutoFixture/CustomizeWithAttribute.cs | 1 + .../InlineAutoMockDataAttribute.cs | 1 + .../MockFileSystemSpecimenBuilder.cs | 1 + .../Autofac/AutofacTestExtensions.cs | 1 + tests/Recyclarr.TestLibrary/FileUtils.cs | 1 + tests/Recyclarr.TestLibrary/MockData.cs | 1 + .../MockFileSystemExtensions.cs | 1 + .../Recyclarr.TestLibrary.csproj | 9 ++ tests/Recyclarr.TestLibrary/TestableLogger.cs | 1 + 196 files changed, 297 insertions(+), 526 deletions(-) create mode 100644 src/Recyclarr.Cli/Console/Settings/IConfigListTemplatesSettings.cs delete mode 100644 src/Recyclarr.Cli/Migration/IMigrationExecutor.cs delete mode 100644 src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedConfigData.cs delete mode 100644 src/Recyclarr.Cli/Processors/IServiceProcessor.cs delete mode 100644 src/Recyclarr.Cli/Processors/Sync/ISyncProcessor.cs delete mode 100644 tests/Recyclarr.Cli.TestLibrary/Recyclarr.Cli.TestLibrary.csproj rename tests/{Recyclarr.Cli.TestLibrary => Recyclarr.Cli.Tests/Reusable}/CfCache.cs (79%) rename tests/{Recyclarr.Cli.TestLibrary => Recyclarr.Cli.Tests/Reusable}/CliIntegrationFixture.cs (74%) rename tests/Recyclarr.Cli.Tests/{ => Reusable}/NewQp.cs (98%) rename tests/{Recyclarr.Cli.TestLibrary => Recyclarr.Cli.Tests/Reusable}/RemoteRepoFileMapper.cs (93%) rename tests/{Recyclarr.Cli.TestLibrary => Recyclarr.Cli.Tests/Reusable}/TestQualityItemLimitFactory.cs (63%) rename tests/{Recyclarr.Cli.TestLibrary => Recyclarr.Cli.Tests/Reusable}/TrashRepoFileMapper.cs (72%) delete mode 100644 tests/Recyclarr.Core.Tests/Cache/TestCacheObject.cs delete mode 100644 tests/Recyclarr.Core.Tests/Cache/TestCachePersister.cs delete mode 100644 tests/Recyclarr.Core.Tests/Config/ConfigExtensionsTest.cs diff --git a/.editorconfig b/.editorconfig index 02b830a3..4b895a8f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -42,6 +42,3 @@ dotnet_diagnostic.CA2007.severity = none # Implement standard exception constructors dotnet_diagnostic.CA1032.severity = none - -# Consider making public types internal -dotnet_diagnostic.CA1515.severity = none diff --git a/Directory.Build.props b/Directory.Build.props index 277fe069..8259059d 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -32,6 +32,8 @@ + + diff --git a/Recyclarr.sln b/Recyclarr.sln index 7309159c..6f63fd3a 100644 --- a/Recyclarr.sln +++ b/Recyclarr.sln @@ -30,8 +30,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Recyclarr.Core.TestLibrary" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Recyclarr.Cli.Tests", "tests\Recyclarr.Cli.Tests\Recyclarr.Cli.Tests.csproj", "{59886A2A-338F-4864-9735-1633433B1F8F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Recyclarr.Cli.TestLibrary", "tests\Recyclarr.Cli.TestLibrary\Recyclarr.Cli.TestLibrary.csproj", "{7B730BDB-1519-4847-BA23-998AB3750E31}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Recyclarr.Core", "src\Recyclarr.Core\Recyclarr.Core.csproj", "{14F923B3-13EB-46D2-8AD0-D0811B46952A}" EndProject Global @@ -60,10 +58,6 @@ Global {59886A2A-338F-4864-9735-1633433B1F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU {59886A2A-338F-4864-9735-1633433B1F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU {59886A2A-338F-4864-9735-1633433B1F8F}.Release|Any CPU.Build.0 = Release|Any CPU - {7B730BDB-1519-4847-BA23-998AB3750E31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7B730BDB-1519-4847-BA23-998AB3750E31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7B730BDB-1519-4847-BA23-998AB3750E31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7B730BDB-1519-4847-BA23-998AB3750E31}.Release|Any CPU.Build.0 = Release|Any CPU {14F923B3-13EB-46D2-8AD0-D0811B46952A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {14F923B3-13EB-46D2-8AD0-D0811B46952A}.Debug|Any CPU.Build.0 = Debug|Any CPU {14F923B3-13EB-46D2-8AD0-D0811B46952A}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -80,6 +74,5 @@ Global {A4EC7E0D-C591-4874-B9AC-EB12A96F3E83} = {18E17C53-F600-40AE-82C1-3CD1E547C307} {DE198BA1-2906-43BB-9CDB-977B9218A670} = {18E17C53-F600-40AE-82C1-3CD1E547C307} {59886A2A-338F-4864-9735-1633433B1F8F} = {18E17C53-F600-40AE-82C1-3CD1E547C307} - {7B730BDB-1519-4847-BA23-998AB3750E31} = {18E17C53-F600-40AE-82C1-3CD1E547C307} EndGlobalSection EndGlobal diff --git a/src/Recyclarr.Cli/CompositionRoot.cs b/src/Recyclarr.Cli/CompositionRoot.cs index e7e32148..b57172c3 100644 --- a/src/Recyclarr.Cli/CompositionRoot.cs +++ b/src/Recyclarr.Cli/CompositionRoot.cs @@ -22,7 +22,7 @@ using Spectre.Console.Cli; namespace Recyclarr.Cli; -public static class CompositionRoot +internal static class CompositionRoot { public static void Setup(ContainerBuilder builder) { @@ -52,7 +52,7 @@ public static class CompositionRoot builder.RegisterType(); // Sync - builder.RegisterType().As(); + builder.RegisterType(); // Configuration builder.RegisterType().As(); @@ -70,7 +70,7 @@ public static class CompositionRoot private static void RegisterMigrations(ContainerBuilder builder) { - builder.RegisterType().As(); + builder.RegisterType(); // Migration Steps builder diff --git a/src/Recyclarr.Cli/Console/CliSetup.cs b/src/Recyclarr.Cli/Console/CliSetup.cs index aeaf42f8..801f4035 100644 --- a/src/Recyclarr.Cli/Console/CliSetup.cs +++ b/src/Recyclarr.Cli/Console/CliSetup.cs @@ -5,7 +5,7 @@ using Spectre.Console.Cli; namespace Recyclarr.Cli.Console; -public static class CliSetup +internal static class CliSetup { private static void AddCommands(IConfigurator cli) { diff --git a/src/Recyclarr.Cli/Console/CommandException.cs b/src/Recyclarr.Cli/Console/CommandException.cs index a6338a44..a6a8a97b 100644 --- a/src/Recyclarr.Cli/Console/CommandException.cs +++ b/src/Recyclarr.Cli/Console/CommandException.cs @@ -1,3 +1,3 @@ namespace Recyclarr.Cli.Console; -public class CommandException(string? message) : Exception(message); +internal class CommandException(string? message) : Exception(message); diff --git a/src/Recyclarr.Cli/Console/Commands/BaseCommandSettings.cs b/src/Recyclarr.Cli/Console/Commands/BaseCommandSettings.cs index bc4bf66d..68864731 100644 --- a/src/Recyclarr.Cli/Console/Commands/BaseCommandSettings.cs +++ b/src/Recyclarr.Cli/Console/Commands/BaseCommandSettings.cs @@ -3,7 +3,7 @@ using Spectre.Console.Cli; namespace Recyclarr.Cli.Console.Commands; -public class BaseCommandSettings : CommandSettings +internal class BaseCommandSettings : CommandSettings { public CancellationToken CancellationToken { get; set; } diff --git a/src/Recyclarr.Cli/Console/Commands/ConfigCreateCommand.cs b/src/Recyclarr.Cli/Console/Commands/ConfigCreateCommand.cs index 73ab8cac..c98cd3fa 100644 --- a/src/Recyclarr.Cli/Console/Commands/ConfigCreateCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ConfigCreateCommand.cs @@ -10,20 +10,19 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("Create a starter configuration file.")] -public class ConfigCreateCommand( +internal class ConfigCreateCommand( ILogger log, IConfigCreationProcessor processor, IMultiRepoUpdater repoUpdater ) : AsyncCommand { [UsedImplicitly] - [SuppressMessage("Design", "CA1034:Nested types should not be visible")] [SuppressMessage( "Performance", "CA1819:Properties should not return arrays", Justification = "Spectre.Console requires it" )] - public class CliSettings : BaseCommandSettings, ICreateConfigSettings + internal class CliSettings : BaseCommandSettings, ICreateConfigSettings { [CommandOption("-p|--path")] [Description("Path to where the configuration file should be created.")] diff --git a/src/Recyclarr.Cli/Console/Commands/ConfigListLocalCommand.cs b/src/Recyclarr.Cli/Console/Commands/ConfigListLocalCommand.cs index f93d9a82..9f9982b9 100644 --- a/src/Recyclarr.Cli/Console/Commands/ConfigListLocalCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ConfigListLocalCommand.cs @@ -9,13 +9,13 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("List local configuration files.")] -public class ConfigListLocalCommand( +internal class ConfigListLocalCommand( ConfigListLocalProcessor processor, IMultiRepoUpdater repoUpdater ) : AsyncCommand { [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings; + internal class CliSettings : BaseCommandSettings; public override async Task ExecuteAsync(CommandContext context, CliSettings settings) { diff --git a/src/Recyclarr.Cli/Console/Commands/ConfigListTemplatesCommand.cs b/src/Recyclarr.Cli/Console/Commands/ConfigListTemplatesCommand.cs index a098b7d4..c5030c83 100644 --- a/src/Recyclarr.Cli/Console/Commands/ConfigListTemplatesCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ConfigListTemplatesCommand.cs @@ -1,5 +1,6 @@ using System.ComponentModel; using System.Diagnostics.CodeAnalysis; +using Recyclarr.Cli.Console.Settings; using Recyclarr.Cli.Processors; using Recyclarr.Cli.Processors.Config; using Recyclarr.Repo; @@ -9,13 +10,13 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("List local configuration files.")] -public class ConfigListTemplatesCommand( +internal class ConfigListTemplatesCommand( ConfigListTemplateProcessor processor, IMultiRepoUpdater repoUpdater ) : AsyncCommand { [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings, IConfigListTemplatesSettings + internal class CliSettings : BaseCommandSettings, IConfigListTemplatesSettings { [CommandOption("-i|--includes")] [Description( @@ -32,8 +33,3 @@ public class ConfigListTemplatesCommand( return (int)ExitStatus.Succeeded; } } - -public interface IConfigListTemplatesSettings -{ - bool Includes { get; } -} diff --git a/src/Recyclarr.Cli/Console/Commands/DeleteCustomFormatsCommand.cs b/src/Recyclarr.Cli/Console/Commands/DeleteCustomFormatsCommand.cs index 382c28d2..b0ad25a7 100644 --- a/src/Recyclarr.Cli/Console/Commands/DeleteCustomFormatsCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/DeleteCustomFormatsCommand.cs @@ -9,17 +9,16 @@ namespace Recyclarr.Cli.Console.Commands; [Description("Delete things from services like Radarr and Sonarr")] [UsedImplicitly] -public class DeleteCustomFormatsCommand(IDeleteCustomFormatsProcessor processor) +internal class DeleteCustomFormatsCommand(IDeleteCustomFormatsProcessor processor) : AsyncCommand { [UsedImplicitly] - [SuppressMessage("Design", "CA1034:Nested types should not be visible")] [SuppressMessage( "Performance", "CA1819:Properties should not return arrays", Justification = "Spectre.Console requires it" )] - public class CliSettings : BaseCommandSettings, IDeleteCustomFormatSettings + internal class CliSettings : BaseCommandSettings, IDeleteCustomFormatSettings { [CommandArgument(0, "")] [Description("The name of the instance to delete CFs from.")] diff --git a/src/Recyclarr.Cli/Console/Commands/ListCustomFormatsCommand.cs b/src/Recyclarr.Cli/Console/Commands/ListCustomFormatsCommand.cs index a20d9a62..9b1aaa78 100644 --- a/src/Recyclarr.Cli/Console/Commands/ListCustomFormatsCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ListCustomFormatsCommand.cs @@ -14,12 +14,14 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("List custom formats in the guide for a particular service.")] -public class ListCustomFormatsCommand(CustomFormatDataLister lister, IMultiRepoUpdater repoUpdater) - : AsyncCommand +internal class ListCustomFormatsCommand( + CustomFormatDataLister lister, + IMultiRepoUpdater repoUpdater +) : AsyncCommand { [UsedImplicitly] [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings, IListCustomFormatSettings + internal class CliSettings : BaseCommandSettings, IListCustomFormatSettings { [CommandArgument(0, "")] [EnumDescription("The service type to obtain information about.")] diff --git a/src/Recyclarr.Cli/Console/Commands/ListMediaNamingCommand.cs b/src/Recyclarr.Cli/Console/Commands/ListMediaNamingCommand.cs index 83df1418..1b61abfd 100644 --- a/src/Recyclarr.Cli/Console/Commands/ListMediaNamingCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ListMediaNamingCommand.cs @@ -11,12 +11,12 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("List media naming formats in the guide for a particular service.")] -public class ListMediaNamingCommand(MediaNamingDataLister lister, IMultiRepoUpdater repoUpdater) +internal class ListMediaNamingCommand(MediaNamingDataLister lister, IMultiRepoUpdater repoUpdater) : AsyncCommand { [UsedImplicitly] [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings + internal class CliSettings : BaseCommandSettings { [CommandArgument(0, "")] [EnumDescription("The service type to obtain information about.")] diff --git a/src/Recyclarr.Cli/Console/Commands/ListQualitiesCommand.cs b/src/Recyclarr.Cli/Console/Commands/ListQualitiesCommand.cs index dfaa557d..708f5fab 100644 --- a/src/Recyclarr.Cli/Console/Commands/ListQualitiesCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/ListQualitiesCommand.cs @@ -12,12 +12,12 @@ namespace Recyclarr.Cli.Console.Commands; #pragma warning disable CS8765 [UsedImplicitly] [Description("List quality definitions in the guide for a particular service.")] -public class ListQualitiesCommand(QualitySizeDataLister lister, IMultiRepoUpdater repoUpdater) +internal class ListQualitiesCommand(QualitySizeDataLister lister, IMultiRepoUpdater repoUpdater) : AsyncCommand { [UsedImplicitly] [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings + internal class CliSettings : BaseCommandSettings { [CommandArgument(0, "")] [EnumDescription("The service type to obtain information about.")] diff --git a/src/Recyclarr.Cli/Console/Commands/MigrateCommand.cs b/src/Recyclarr.Cli/Console/Commands/MigrateCommand.cs index 422020b4..3a29a482 100644 --- a/src/Recyclarr.Cli/Console/Commands/MigrateCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/MigrateCommand.cs @@ -13,12 +13,12 @@ namespace Recyclarr.Cli.Console.Commands; [UsedImplicitly] [Description("Perform migration steps that may be needed between versions")] -public class MigrateCommand(IAnsiConsole console, IMigrationExecutor migration) +internal class MigrateCommand(IAnsiConsole console, MigrationExecutor migration) : Command { [UsedImplicitly] [SuppressMessage("Design", "CA1034:Nested types should not be visible")] - public class CliSettings : BaseCommandSettings; + internal class CliSettings : BaseCommandSettings; public override int Execute(CommandContext context, CliSettings settings) { diff --git a/src/Recyclarr.Cli/Console/Commands/SyncCommand.cs b/src/Recyclarr.Cli/Console/Commands/SyncCommand.cs index 332fd027..2dd45921 100644 --- a/src/Recyclarr.Cli/Console/Commands/SyncCommand.cs +++ b/src/Recyclarr.Cli/Console/Commands/SyncCommand.cs @@ -12,20 +12,19 @@ namespace Recyclarr.Cli.Console.Commands; [Description("Sync the guide to services")] [UsedImplicitly] -public class SyncCommand( - IMigrationExecutor migration, +internal class SyncCommand( + MigrationExecutor migration, IMultiRepoUpdater repoUpdater, - ISyncProcessor syncProcessor + SyncProcessor syncProcessor ) : AsyncCommand { [UsedImplicitly] - [SuppressMessage("Design", "CA1034:Nested types should not be visible")] [SuppressMessage( "Performance", "CA1819:Properties should not return arrays", Justification = "Spectre.Console requires it" )] - public class CliSettings : BaseCommandSettings, ISyncSettings + internal class CliSettings : BaseCommandSettings, ISyncSettings { [CommandArgument(0, "[service]")] [EnumDescription( diff --git a/src/Recyclarr.Cli/Console/Helpers/EnumDescriptionAttribute.cs b/src/Recyclarr.Cli/Console/Helpers/EnumDescriptionAttribute.cs index 920c49e2..b231af48 100644 --- a/src/Recyclarr.Cli/Console/Helpers/EnumDescriptionAttribute.cs +++ b/src/Recyclarr.Cli/Console/Helpers/EnumDescriptionAttribute.cs @@ -6,7 +6,7 @@ using System.Text; namespace Recyclarr.Cli.Console.Helpers; [AttributeUsage(AttributeTargets.Property)] -public sealed class EnumDescriptionAttribute : DescriptionAttribute +internal sealed class EnumDescriptionAttribute : DescriptionAttribute where TEnum : Enum { public override string Description { get; } diff --git a/src/Recyclarr.Cli/Console/Settings/IConfigListTemplatesSettings.cs b/src/Recyclarr.Cli/Console/Settings/IConfigListTemplatesSettings.cs new file mode 100644 index 00000000..c852138b --- /dev/null +++ b/src/Recyclarr.Cli/Console/Settings/IConfigListTemplatesSettings.cs @@ -0,0 +1,6 @@ +namespace Recyclarr.Cli.Console.Settings; + +internal interface IConfigListTemplatesSettings +{ + bool Includes { get; } +} diff --git a/src/Recyclarr.Cli/Console/Settings/ICreateConfigSettings.cs b/src/Recyclarr.Cli/Console/Settings/ICreateConfigSettings.cs index 0aa91318..85a3eb8d 100644 --- a/src/Recyclarr.Cli/Console/Settings/ICreateConfigSettings.cs +++ b/src/Recyclarr.Cli/Console/Settings/ICreateConfigSettings.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Console.Settings; -public interface ICreateConfigSettings +internal interface ICreateConfigSettings { public string? Path { get; } public IReadOnlyCollection Templates { get; } diff --git a/src/Recyclarr.Cli/Console/Settings/IDeleteCustomFormatSettings.cs b/src/Recyclarr.Cli/Console/Settings/IDeleteCustomFormatSettings.cs index 66546044..ac908e7b 100644 --- a/src/Recyclarr.Cli/Console/Settings/IDeleteCustomFormatSettings.cs +++ b/src/Recyclarr.Cli/Console/Settings/IDeleteCustomFormatSettings.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Console.Settings; -public interface IDeleteCustomFormatSettings +internal interface IDeleteCustomFormatSettings { public string InstanceName { get; } public IReadOnlyCollection CustomFormatNames { get; } diff --git a/src/Recyclarr.Cli/Console/Settings/IListCustomFormatSettings.cs b/src/Recyclarr.Cli/Console/Settings/IListCustomFormatSettings.cs index cfbc8981..9ee920cb 100644 --- a/src/Recyclarr.Cli/Console/Settings/IListCustomFormatSettings.cs +++ b/src/Recyclarr.Cli/Console/Settings/IListCustomFormatSettings.cs @@ -2,7 +2,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Cli.Console.Settings; -public interface IListCustomFormatSettings +internal interface IListCustomFormatSettings { SupportedServices Service { get; } bool ScoreSets { get; } diff --git a/src/Recyclarr.Cli/Console/Settings/ISyncSettings.cs b/src/Recyclarr.Cli/Console/Settings/ISyncSettings.cs index 0be63f5b..784f511e 100644 --- a/src/Recyclarr.Cli/Console/Settings/ISyncSettings.cs +++ b/src/Recyclarr.Cli/Console/Settings/ISyncSettings.cs @@ -2,7 +2,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Cli.Console.Settings; -public interface ISyncSettings +internal interface ISyncSettings { SupportedServices? Service { get; } IReadOnlyCollection Configs { get; } diff --git a/src/Recyclarr.Cli/Console/Setup/AppDataDirSetupTask.cs b/src/Recyclarr.Cli/Console/Setup/AppDataDirSetupTask.cs index d11f621e..58bf224d 100644 --- a/src/Recyclarr.Cli/Console/Setup/AppDataDirSetupTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/AppDataDirSetupTask.cs @@ -3,7 +3,7 @@ using Recyclarr.Platform; namespace Recyclarr.Cli.Console.Setup; -public class AppDataDirSetupTask(IAppDataSetup appDataSetup) : IGlobalSetupTask +internal class AppDataDirSetupTask(IAppDataSetup appDataSetup) : IGlobalSetupTask { public void OnStart(BaseCommandSettings cmd) { diff --git a/src/Recyclarr.Cli/Console/Setup/CompositeGlobalSetupTask.cs b/src/Recyclarr.Cli/Console/Setup/CompositeGlobalSetupTask.cs index 20d66115..78fa1ded 100644 --- a/src/Recyclarr.Cli/Console/Setup/CompositeGlobalSetupTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/CompositeGlobalSetupTask.cs @@ -3,7 +3,7 @@ using Recyclarr.Cli.Console.Commands; namespace Recyclarr.Cli.Console.Setup; [UsedImplicitly] -public class CompositeGlobalSetupTask(IOrderedEnumerable> tasks) +internal class CompositeGlobalSetupTask(IOrderedEnumerable> tasks) : IGlobalSetupTask { public void OnStart(BaseCommandSettings cmd) diff --git a/src/Recyclarr.Cli/Console/Setup/IGlobalSetupTask.cs b/src/Recyclarr.Cli/Console/Setup/IGlobalSetupTask.cs index fdb66300..fd3f58cc 100644 --- a/src/Recyclarr.Cli/Console/Setup/IGlobalSetupTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/IGlobalSetupTask.cs @@ -2,7 +2,7 @@ using Recyclarr.Cli.Console.Commands; namespace Recyclarr.Cli.Console.Setup; -public interface IGlobalSetupTask +internal interface IGlobalSetupTask { void OnStart(BaseCommandSettings cmd); void OnFinish(); diff --git a/src/Recyclarr.Cli/Console/Setup/JanitorCleanupTask.cs b/src/Recyclarr.Cli/Console/Setup/JanitorCleanupTask.cs index 9d44d581..b640ae51 100644 --- a/src/Recyclarr.Cli/Console/Setup/JanitorCleanupTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/JanitorCleanupTask.cs @@ -4,7 +4,7 @@ using Recyclarr.Settings; namespace Recyclarr.Cli.Console.Setup; -public class JanitorCleanupTask( +internal class JanitorCleanupTask( LogJanitor janitor, ILogger log, ISettings settings diff --git a/src/Recyclarr.Cli/Console/Setup/LoggerSetupTask.cs b/src/Recyclarr.Cli/Console/Setup/LoggerSetupTask.cs index 2d229cf4..721ae1d6 100644 --- a/src/Recyclarr.Cli/Console/Setup/LoggerSetupTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/LoggerSetupTask.cs @@ -6,7 +6,7 @@ using Serilog.Events; namespace Recyclarr.Cli.Console.Setup; -public class LoggerSetupTask( +internal class LoggerSetupTask( LoggingLevelSwitch loggingLevelSwitch, LoggerFactory loggerFactory, IEnumerable logConfigurators diff --git a/src/Recyclarr.Cli/Console/Setup/ProgramInformationDisplayTask.cs b/src/Recyclarr.Cli/Console/Setup/ProgramInformationDisplayTask.cs index 4c066706..4a0c4ae5 100644 --- a/src/Recyclarr.Cli/Console/Setup/ProgramInformationDisplayTask.cs +++ b/src/Recyclarr.Cli/Console/Setup/ProgramInformationDisplayTask.cs @@ -3,7 +3,7 @@ using Recyclarr.Platform; namespace Recyclarr.Cli.Console.Setup; -public class ProgramInformationDisplayTask(ILogger log, IAppPaths paths) : IGlobalSetupTask +internal class ProgramInformationDisplayTask(ILogger log, IAppPaths paths) : IGlobalSetupTask { public void OnStart(BaseCommandSettings cmd) { diff --git a/src/Recyclarr.Cli/Logging/LogJanitor.cs b/src/Recyclarr.Cli/Logging/LogJanitor.cs index ba285e3a..01c4ab5f 100644 --- a/src/Recyclarr.Cli/Logging/LogJanitor.cs +++ b/src/Recyclarr.Cli/Logging/LogJanitor.cs @@ -2,7 +2,7 @@ using Recyclarr.Platform; namespace Recyclarr.Cli.Logging; -public class LogJanitor(IAppPaths paths) +internal class LogJanitor(IAppPaths paths) { public void DeleteOldestLogFiles(int numberOfNewestToKeep) { diff --git a/src/Recyclarr.Cli/Logging/LoggerFactory.cs b/src/Recyclarr.Cli/Logging/LoggerFactory.cs index 77966097..f1c50ab5 100644 --- a/src/Recyclarr.Cli/Logging/LoggerFactory.cs +++ b/src/Recyclarr.Cli/Logging/LoggerFactory.cs @@ -6,7 +6,7 @@ using Serilog.Templates.Themes; namespace Recyclarr.Cli.Logging; -public class LoggerFactory(IEnvironment env, LoggingLevelSwitch levelSwitch) +internal class LoggerFactory(IEnvironment env, LoggingLevelSwitch levelSwitch) { public ILogger Logger { get; private set; } = LogSetup diff --git a/src/Recyclarr.Cli/Migration/IMigrationExecutor.cs b/src/Recyclarr.Cli/Migration/IMigrationExecutor.cs deleted file mode 100644 index bc48dc96..00000000 --- a/src/Recyclarr.Cli/Migration/IMigrationExecutor.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Recyclarr.Cli.Migration; - -public interface IMigrationExecutor -{ - void PerformAllMigrationSteps(bool withDiagnostics); - void CheckNeededMigrations(); -} diff --git a/src/Recyclarr.Cli/Migration/MigrationException.cs b/src/Recyclarr.Cli/Migration/MigrationException.cs index 96cad1d8..7db53622 100644 --- a/src/Recyclarr.Cli/Migration/MigrationException.cs +++ b/src/Recyclarr.Cli/Migration/MigrationException.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Migration; -public class MigrationException( +internal class MigrationException( Exception originalException, string operationDescription, IReadOnlyCollection remediation diff --git a/src/Recyclarr.Cli/Migration/MigrationExecutor.cs b/src/Recyclarr.Cli/Migration/MigrationExecutor.cs index debb91f0..86200c6e 100644 --- a/src/Recyclarr.Cli/Migration/MigrationExecutor.cs +++ b/src/Recyclarr.Cli/Migration/MigrationExecutor.cs @@ -3,10 +3,10 @@ using Spectre.Console; namespace Recyclarr.Cli.Migration; -public class MigrationExecutor( +internal class MigrationExecutor( IOrderedEnumerable migrationSteps, IAnsiConsole console -) : IMigrationExecutor +) { public void PerformAllMigrationSteps(bool withDiagnostics) { diff --git a/src/Recyclarr.Cli/Migration/RequiredMigrationException.cs b/src/Recyclarr.Cli/Migration/RequiredMigrationException.cs index 3936df89..139edc2e 100644 --- a/src/Recyclarr.Cli/Migration/RequiredMigrationException.cs +++ b/src/Recyclarr.Cli/Migration/RequiredMigrationException.cs @@ -1,3 +1,3 @@ namespace Recyclarr.Cli.Migration; -public class RequiredMigrationException() : Exception("Some REQUIRED migrations did not pass"); +internal class RequiredMigrationException() : Exception("Some REQUIRED migrations did not pass"); diff --git a/src/Recyclarr.Cli/Migration/Steps/DeleteRepoDirMigrationStep.cs b/src/Recyclarr.Cli/Migration/Steps/DeleteRepoDirMigrationStep.cs index 397e1120..5cd5c2ee 100644 --- a/src/Recyclarr.Cli/Migration/Steps/DeleteRepoDirMigrationStep.cs +++ b/src/Recyclarr.Cli/Migration/Steps/DeleteRepoDirMigrationStep.cs @@ -6,7 +6,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Migration.Steps; [UsedImplicitly] -public class DeleteRepoDirMigrationStep(IAppPaths paths) : IMigrationStep +internal class DeleteRepoDirMigrationStep(IAppPaths paths) : IMigrationStep { public string Description => "Delete old repo directory"; public IReadOnlyCollection Remediation => diff --git a/src/Recyclarr.Cli/Migration/Steps/IMigrationStep.cs b/src/Recyclarr.Cli/Migration/Steps/IMigrationStep.cs index e3cfa11f..64eedd57 100644 --- a/src/Recyclarr.Cli/Migration/Steps/IMigrationStep.cs +++ b/src/Recyclarr.Cli/Migration/Steps/IMigrationStep.cs @@ -2,7 +2,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Migration.Steps; -public interface IMigrationStep +internal interface IMigrationStep { /// /// A description printed to the user so that they understand the purpose of this migration step, and diff --git a/src/Recyclarr.Cli/Migration/Steps/MoveOsxAppDataDotnet8.cs b/src/Recyclarr.Cli/Migration/Steps/MoveOsxAppDataDotnet8.cs index 4c252b01..2b3ce808 100644 --- a/src/Recyclarr.Cli/Migration/Steps/MoveOsxAppDataDotnet8.cs +++ b/src/Recyclarr.Cli/Migration/Steps/MoveOsxAppDataDotnet8.cs @@ -5,7 +5,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Migration.Steps; [UsedImplicitly] -public class MoveOsxAppDataDotnet8( +internal class MoveOsxAppDataDotnet8( IAppPaths paths, IEnvironment env, IRuntimeInformation runtimeInfo, diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCache.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCache.cs index b251805b..45927da9 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCache.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCache.cs @@ -5,7 +5,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Pipelines.CustomFormat.Cache; -public record TrashIdMapping(string TrashId, string CustomFormatName, int CustomFormatId); +internal record TrashIdMapping(string TrashId, string CustomFormatName, int CustomFormatId); [CacheObjectName("custom-format-cache")] [SuppressMessage("Design", "CA1002:Do not expose generic lists", Justification = "POCO")] @@ -14,12 +14,12 @@ public record TrashIdMapping(string TrashId, string CustomFormatName, int Custom "CA2227:Collection properties should be read only", Justification = "POCO" )] -public record CustomFormatCacheObject() : CacheObject(1) +internal record CustomFormatCacheObject() : CacheObject(1) { public List TrashIdMappings { get; set; } = []; } -public class CustomFormatCache(CustomFormatCacheObject cacheObject) : BaseCache(cacheObject) +internal class CustomFormatCache(CustomFormatCacheObject cacheObject) : BaseCache(cacheObject) { public IReadOnlyList TrashIdMappings => cacheObject.TrashIdMappings; diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCachePersister.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCachePersister.cs index f6cec3c6..23758d07 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCachePersister.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/Cache/CustomFormatCachePersister.cs @@ -3,7 +3,7 @@ using Recyclarr.Config.Models; namespace Recyclarr.Cli.Pipelines.CustomFormat.Cache; -public class CustomFormatCachePersister( +internal class CustomFormatCachePersister( ILogger log, ICacheStoragePath storagePath, IServiceConfiguration config diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/CustomFormatDataLister.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/CustomFormatDataLister.cs index a377d6eb..0f94264b 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/CustomFormatDataLister.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/CustomFormatDataLister.cs @@ -5,7 +5,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Pipelines.CustomFormat; -public class CustomFormatDataLister(IAnsiConsole console, ICustomFormatGuideService guide) +internal class CustomFormatDataLister(IAnsiConsole console, ICustomFormatGuideService guide) { public void List(IListCustomFormatSettings settings) { diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ConflictingCustomFormat.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ConflictingCustomFormat.cs index bd94c2c1..bf4c1762 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ConflictingCustomFormat.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ConflictingCustomFormat.cs @@ -2,4 +2,4 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Pipelines.CustomFormat.Models; -public record ConflictingCustomFormat(CustomFormatData GuideCf, int ConflictingId); +internal record ConflictingCustomFormat(CustomFormatData GuideCf, int ConflictingId); diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/CustomFormatTransactionData.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/CustomFormatTransactionData.cs index 853319a7..dc1cc37a 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/CustomFormatTransactionData.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/CustomFormatTransactionData.cs @@ -4,7 +4,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Pipelines.CustomFormat.Models; -public record CustomFormatTransactionData +internal record CustomFormatTransactionData { public Collection DeletedCustomFormats { get; } = []; public Collection NewCustomFormats { get; } = []; diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedConfigData.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedConfigData.cs deleted file mode 100644 index 7e60707e..00000000 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedConfigData.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Recyclarr.Config.Models; -using Recyclarr.TrashGuide.CustomFormat; - -namespace Recyclarr.Cli.Pipelines.CustomFormat.Models; - -public class ProcessedConfigData -{ - public ICollection CustomFormats { get; init; } = []; - public ICollection QualityProfiles { get; init; } = []; -} diff --git a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedCustomFormatCache.cs b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedCustomFormatCache.cs index 86705db3..78e0a838 100644 --- a/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedCustomFormatCache.cs +++ b/src/Recyclarr.Cli/Pipelines/CustomFormat/Models/ProcessedCustomFormatCache.cs @@ -3,7 +3,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Pipelines.CustomFormat.Models; -public class ProcessedCustomFormatCache : IPipelineCache +internal class ProcessedCustomFormatCache : IPipelineCache { private readonly List _customFormats = []; diff --git a/src/Recyclarr.Cli/Pipelines/IPipelineCache.cs b/src/Recyclarr.Cli/Pipelines/IPipelineCache.cs index 68366820..57ded963 100644 --- a/src/Recyclarr.Cli/Pipelines/IPipelineCache.cs +++ b/src/Recyclarr.Cli/Pipelines/IPipelineCache.cs @@ -3,7 +3,7 @@ namespace Recyclarr.Cli.Pipelines; /// /// Defines a mechanism for state sharing between pipelines. /// -public interface IPipelineCache +internal interface IPipelineCache { void Clear(); } diff --git a/src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs b/src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs index fa080c5d..897f733a 100644 --- a/src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs +++ b/src/Recyclarr.Cli/Pipelines/ISyncPipeline.cs @@ -2,9 +2,9 @@ using Recyclarr.Cli.Console.Settings; namespace Recyclarr.Cli.Pipelines; -// This interface is valuable because it allows having a collection of generic sync pipelines without needing to be -// aware of the generic parameters. -public interface ISyncPipeline +// This interface is valuable because it allows having a collection of generic sync pipelines +// without needing to be aware of the generic parameters. +internal interface ISyncPipeline { public Task Execute(ISyncSettings settings, CancellationToken ct); } diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/MediaNamingDataLister.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/MediaNamingDataLister.cs index 7ed77873..6d80e5e8 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/MediaNamingDataLister.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/MediaNamingDataLister.cs @@ -6,7 +6,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Pipelines.MediaNaming; -public class MediaNamingDataLister(IAnsiConsole console, IMediaNamingGuideService guide) +internal class MediaNamingDataLister(IAnsiConsole console, IMediaNamingGuideService guide) { public void ListNaming(SupportedServices serviceType) { diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/IServiceBasedMediaNamingConfigPhase.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/IServiceBasedMediaNamingConfigPhase.cs index eec74a62..b8ac2a5b 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/IServiceBasedMediaNamingConfigPhase.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/IServiceBasedMediaNamingConfigPhase.cs @@ -3,7 +3,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases.Config; -public interface IServiceBasedMediaNamingConfigPhase +internal interface IServiceBasedMediaNamingConfigPhase { Task ProcessNaming(IMediaNamingGuideService guide, NamingFormatLookup lookup); } diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/NamingFormatLookup.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/NamingFormatLookup.cs index 37396c6e..b3b3ad87 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/NamingFormatLookup.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/NamingFormatLookup.cs @@ -2,7 +2,7 @@ using System.Diagnostics.CodeAnalysis; namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases.Config; -public class NamingFormatLookup +internal class NamingFormatLookup { private readonly List _errors = []; public IReadOnlyCollection Errors => _errors; diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/RadarrMediaNamingConfigPhase.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/RadarrMediaNamingConfigPhase.cs index 44cc5853..a8a09ed1 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/RadarrMediaNamingConfigPhase.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/RadarrMediaNamingConfigPhase.cs @@ -4,7 +4,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases.Config; -public class RadarrMediaNamingConfigPhase(RadarrConfiguration config) +internal class RadarrMediaNamingConfigPhase(RadarrConfiguration config) : IServiceBasedMediaNamingConfigPhase { public Task ProcessNaming( diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/SonarrMediaNamingConfigPhase.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/SonarrMediaNamingConfigPhase.cs index 374e7534..9c4b2823 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/SonarrMediaNamingConfigPhase.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/Config/SonarrMediaNamingConfigPhase.cs @@ -4,7 +4,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases.Config; -public class SonarrMediaNamingConfigPhase(SonarrConfiguration config) +internal class SonarrMediaNamingConfigPhase(SonarrConfiguration config) : IServiceBasedMediaNamingConfigPhase { public Task ProcessNaming( diff --git a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingConfigPhase.cs b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingConfigPhase.cs index b1bd9ebc..ba981a7c 100644 --- a/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingConfigPhase.cs +++ b/src/Recyclarr.Cli/Pipelines/MediaNaming/PipelinePhases/MediaNamingConfigPhase.cs @@ -7,9 +7,9 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases; -public record InvalidNamingConfig(string Type, string ConfigValue); +internal record InvalidNamingConfig(string Type, string ConfigValue); -public record ProcessedNamingConfig +internal record ProcessedNamingConfig { public required MediaNamingDto Dto { get; init; } public IReadOnlyCollection InvalidNaming { get; init; } = []; diff --git a/src/Recyclarr.Cli/Pipelines/PipelineAutofacModule.cs b/src/Recyclarr.Cli/Pipelines/PipelineAutofacModule.cs index f2a330ad..07518dad 100644 --- a/src/Recyclarr.Cli/Pipelines/PipelineAutofacModule.cs +++ b/src/Recyclarr.Cli/Pipelines/PipelineAutofacModule.cs @@ -19,7 +19,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Pipelines; -public class PipelineAutofacModule : Module +internal class PipelineAutofacModule : Module { protected override void Load(ContainerBuilder builder) { diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/ProcessedQualityProfileData.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/ProcessedQualityProfileData.cs index 0ead956f..e511ff4b 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/ProcessedQualityProfileData.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/ProcessedQualityProfileData.cs @@ -3,9 +3,14 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Pipelines.QualityProfile.Models; -public record ProcessedQualityProfileScore(string TrashId, string CfName, int FormatId, int Score); +internal record ProcessedQualityProfileScore( + string TrashId, + string CfName, + int FormatId, + int Score +); -public record ProcessedQualityProfileData +internal record ProcessedQualityProfileData { public required QualityProfileConfig Profile { get; init; } public bool ShouldCreate { get; init; } = true; diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileServiceData.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileServiceData.cs index 60c6847a..c34aab82 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileServiceData.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileServiceData.cs @@ -2,7 +2,7 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile.Models; -public record QualityProfileServiceData( +internal record QualityProfileServiceData( IReadOnlyList Profiles, QualityProfileDto Schema ); diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileTransactionData.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileTransactionData.cs index e5fb18af..d63d7cc6 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileTransactionData.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileTransactionData.cs @@ -3,13 +3,13 @@ using FluentValidation.Results; namespace Recyclarr.Cli.Pipelines.QualityProfile.Models; -public record InvalidProfileData( +internal record InvalidProfileData( UpdatedQualityProfile Profile, IReadOnlyCollection Errors ); [SuppressMessage("Usage", "CA2227:Collection properties should be read only")] -public record QualityProfileTransactionData +internal record QualityProfileTransactionData { public ICollection NonExistentProfiles { get; init; } = []; public ICollection InvalidProfiles { get; init; } = []; diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileUpdateReason.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileUpdateReason.cs index 58f059b3..a7c533cb 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileUpdateReason.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/Models/QualityProfileUpdateReason.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Pipelines.QualityProfile.Models; -public enum QualityProfileUpdateReason +internal enum QualityProfileUpdateReason { New, Changed, diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityItemOrganizer.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityItemOrganizer.cs index 36031e69..b50bd984 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityItemOrganizer.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityItemOrganizer.cs @@ -5,7 +5,7 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public class QualityItemOrganizer +internal class QualityItemOrganizer { private readonly List _invalidItemNames = []; diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileExtensions.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileExtensions.cs index 9ae5c16f..e1288cb2 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileExtensions.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileExtensions.cs @@ -3,7 +3,7 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public static class QualityProfileExtensions +internal static class QualityProfileExtensions { private static IEnumerable FlattenItems(IEnumerable items) { diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileStatCalculator.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileStatCalculator.cs index 04cc1db0..1a303cb2 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileStatCalculator.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/QualityProfileStatCalculator.cs @@ -4,7 +4,7 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public record ProfileWithStats +internal record ProfileWithStats { public required UpdatedQualityProfile Profile { get; set; } public bool ProfileChanged { get; set; } @@ -14,7 +14,7 @@ public record ProfileWithStats public bool HasChanges => ProfileChanged || ScoresChanged || QualitiesChanged; } -public class QualityProfileStatCalculator(ILogger log) +internal class QualityProfileStatCalculator(ILogger log) { public ProfileWithStats Calculate(UpdatedQualityProfile profile) { diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedFormatScore.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedFormatScore.cs index 4f901131..130e8f65 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedFormatScore.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedFormatScore.cs @@ -4,7 +4,7 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public enum FormatScoreUpdateReason +internal enum FormatScoreUpdateReason { /// /// A score who's value did not change. @@ -29,7 +29,7 @@ public enum FormatScoreUpdateReason New, } -public record UpdatedFormatScore( +internal record UpdatedFormatScore( ProfileFormatItemDto Dto, int NewScore, FormatScoreUpdateReason Reason diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfile.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfile.cs index 7c11548a..a90035a6 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfile.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfile.cs @@ -3,14 +3,14 @@ using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public record UpdatedQualities +internal record UpdatedQualities { public ICollection InvalidQualityNames { get; init; } = []; public IReadOnlyCollection Items { get; init; } = []; public int NumWantedItems { get; init; } } -public record UpdatedQualityProfile +internal record UpdatedQualityProfile { public required QualityProfileDto ProfileDto { get; init; } public required ProcessedQualityProfileData ProfileConfig { get; init; } diff --git a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfileValidator.cs b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfileValidator.cs index 9dedc27e..71607a8c 100644 --- a/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfileValidator.cs +++ b/src/Recyclarr.Cli/Pipelines/QualityProfile/UpdatedQualityProfileValidator.cs @@ -4,7 +4,7 @@ using Recyclarr.Common.Extensions; namespace Recyclarr.Cli.Pipelines.QualityProfile; -public class UpdatedQualityProfileValidator : AbstractValidator +internal class UpdatedQualityProfileValidator : AbstractValidator { public UpdatedQualityProfileValidator() { diff --git a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/IQualityItemLimitFactory.cs b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/IQualityItemLimitFactory.cs index b57f594d..7a94b021 100644 --- a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/IQualityItemLimitFactory.cs +++ b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/IQualityItemLimitFactory.cs @@ -3,7 +3,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases.Limits; -public interface IQualityItemLimitFactory +internal interface IQualityItemLimitFactory { Task Create(SupportedServices serviceType, CancellationToken ct); } diff --git a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/QualityItemLimitFactory.cs b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/QualityItemLimitFactory.cs index fc633474..bd2f91be 100644 --- a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/QualityItemLimitFactory.cs +++ b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/QualityItemLimitFactory.cs @@ -4,7 +4,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases.Limits; -public class QualityItemLimitFactory( +internal class QualityItemLimitFactory( IIndex limitFactory ) : IQualityItemLimitFactory { diff --git a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/RadarrQualityItemLimitFetcher.cs b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/RadarrQualityItemLimitFetcher.cs index fbe5dd3d..e24d431f 100644 --- a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/RadarrQualityItemLimitFetcher.cs +++ b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/RadarrQualityItemLimitFetcher.cs @@ -3,7 +3,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases.Limits; -public class RadarrQualityItemLimitFetcher(IRadarrCapabilityFetcher capabilityFetcher) +internal class RadarrQualityItemLimitFetcher(IRadarrCapabilityFetcher capabilityFetcher) : IQualityItemLimitFetcher { private QualityItemLimits? _cachedLimits; diff --git a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/SonarrQualityItemLimitFetcher.cs b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/SonarrQualityItemLimitFetcher.cs index e430ea7c..2ac11d26 100644 --- a/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/SonarrQualityItemLimitFetcher.cs +++ b/src/Recyclarr.Cli/Pipelines/QualitySize/PipelinePhases/Limits/SonarrQualityItemLimitFetcher.cs @@ -3,7 +3,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases.Limits; -public class SonarrQualityItemLimitFetcher(ISonarrCapabilityFetcher capabilityFetcher) +internal class SonarrQualityItemLimitFetcher(ISonarrCapabilityFetcher capabilityFetcher) : IQualityItemLimitFetcher { private QualityItemLimits? _cachedLimits; diff --git a/src/Recyclarr.Cli/Pipelines/QualitySize/QualitySizeDataLister.cs b/src/Recyclarr.Cli/Pipelines/QualitySize/QualitySizeDataLister.cs index 6aa8a128..d98509bf 100644 --- a/src/Recyclarr.Cli/Pipelines/QualitySize/QualitySizeDataLister.cs +++ b/src/Recyclarr.Cli/Pipelines/QualitySize/QualitySizeDataLister.cs @@ -4,7 +4,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Pipelines.QualitySize; -public class QualitySizeDataLister(IAnsiConsole console, IQualitySizeGuideService guide) +internal class QualitySizeDataLister(IAnsiConsole console, IQualitySizeGuideService guide) { public void ListQualities(SupportedServices serviceType) { diff --git a/src/Recyclarr.Cli/Processors/Config/ConfigCreationProcessor.cs b/src/Recyclarr.Cli/Processors/Config/ConfigCreationProcessor.cs index f8251287..0dafd0fb 100644 --- a/src/Recyclarr.Cli/Processors/Config/ConfigCreationProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Config/ConfigCreationProcessor.cs @@ -2,7 +2,7 @@ using Recyclarr.Cli.Console.Settings; namespace Recyclarr.Cli.Processors.Config; -public class ConfigCreationProcessor(IOrderedEnumerable creators) +internal class ConfigCreationProcessor(IOrderedEnumerable creators) : IConfigCreationProcessor { public void Process(ICreateConfigSettings settings) diff --git a/src/Recyclarr.Cli/Processors/Config/ConfigListLocalProcessor.cs b/src/Recyclarr.Cli/Processors/Config/ConfigListLocalProcessor.cs index 03bb672a..5fca3285 100644 --- a/src/Recyclarr.Cli/Processors/Config/ConfigListLocalProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Config/ConfigListLocalProcessor.cs @@ -9,7 +9,7 @@ using Spectre.Console.Rendering; namespace Recyclarr.Cli.Processors.Config; -public class ConfigListLocalProcessor( +internal class ConfigListLocalProcessor( IAnsiConsole console, ConfigurationRegistry configRegistry, IAppPaths paths diff --git a/src/Recyclarr.Cli/Processors/Config/ConfigListTemplateProcessor.cs b/src/Recyclarr.Cli/Processors/Config/ConfigListTemplateProcessor.cs index 25cb693c..d7bd0de0 100644 --- a/src/Recyclarr.Cli/Processors/Config/ConfigListTemplateProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Config/ConfigListTemplateProcessor.cs @@ -1,11 +1,11 @@ using System.Globalization; -using Recyclarr.Cli.Console.Commands; +using Recyclarr.Cli.Console.Settings; using Recyclarr.TrashGuide; using Spectre.Console; namespace Recyclarr.Cli.Processors.Config; -public class ConfigListTemplateProcessor( +internal class ConfigListTemplateProcessor( IAnsiConsole console, IConfigTemplateGuideService guideService ) diff --git a/src/Recyclarr.Cli/Processors/Config/FileExistsException.cs b/src/Recyclarr.Cli/Processors/Config/FileExistsException.cs index dada02a7..2cd3b047 100644 --- a/src/Recyclarr.Cli/Processors/Config/FileExistsException.cs +++ b/src/Recyclarr.Cli/Processors/Config/FileExistsException.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Processors.Config; -public class FileExistsException(string attemptedPath) +internal class FileExistsException(string attemptedPath) : Exception($"File already exists: {attemptedPath}") { public string AttemptedPath { get; } = attemptedPath; diff --git a/src/Recyclarr.Cli/Processors/Config/IConfigCreationProcessor.cs b/src/Recyclarr.Cli/Processors/Config/IConfigCreationProcessor.cs index 4c0be204..dd3dd430 100644 --- a/src/Recyclarr.Cli/Processors/Config/IConfigCreationProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Config/IConfigCreationProcessor.cs @@ -2,7 +2,7 @@ using Recyclarr.Cli.Console.Settings; namespace Recyclarr.Cli.Processors.Config; -public interface IConfigCreationProcessor +internal interface IConfigCreationProcessor { void Process(ICreateConfigSettings settings); } diff --git a/src/Recyclarr.Cli/Processors/Config/IConfigCreator.cs b/src/Recyclarr.Cli/Processors/Config/IConfigCreator.cs index 88a96fcc..c1e3389e 100644 --- a/src/Recyclarr.Cli/Processors/Config/IConfigCreator.cs +++ b/src/Recyclarr.Cli/Processors/Config/IConfigCreator.cs @@ -2,7 +2,7 @@ using Recyclarr.Cli.Console.Settings; namespace Recyclarr.Cli.Processors.Config; -public interface IConfigCreator +internal interface IConfigCreator { bool CanHandle(ICreateConfigSettings settings); void Create(ICreateConfigSettings settings); diff --git a/src/Recyclarr.Cli/Processors/Config/LocalConfigCreator.cs b/src/Recyclarr.Cli/Processors/Config/LocalConfigCreator.cs index 3f735927..ba74753f 100644 --- a/src/Recyclarr.Cli/Processors/Config/LocalConfigCreator.cs +++ b/src/Recyclarr.Cli/Processors/Config/LocalConfigCreator.cs @@ -6,7 +6,7 @@ using Recyclarr.Platform; namespace Recyclarr.Cli.Processors.Config; -public class LocalConfigCreator( +internal class LocalConfigCreator( ILogger log, IAppPaths paths, IFileSystem fs, diff --git a/src/Recyclarr.Cli/Processors/Config/TemplateConfigCreator.cs b/src/Recyclarr.Cli/Processors/Config/TemplateConfigCreator.cs index f4065168..db5e365d 100644 --- a/src/Recyclarr.Cli/Processors/Config/TemplateConfigCreator.cs +++ b/src/Recyclarr.Cli/Processors/Config/TemplateConfigCreator.cs @@ -6,7 +6,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Cli.Processors.Config; -public class TemplateConfigCreator( +internal class TemplateConfigCreator( ILogger log, IConfigTemplateGuideService templates, IAppPaths paths diff --git a/src/Recyclarr.Cli/Processors/Delete/DeleteCustomFormatsProcessor.cs b/src/Recyclarr.Cli/Processors/Delete/DeleteCustomFormatsProcessor.cs index e7203fb9..9e0b0d1a 100644 --- a/src/Recyclarr.Cli/Processors/Delete/DeleteCustomFormatsProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Delete/DeleteCustomFormatsProcessor.cs @@ -19,7 +19,7 @@ internal class CustomFormatConfigurationScope(ILifetimeScope scope) : Configurat scope.Resolve(); } -public class DeleteCustomFormatsProcessor( +internal class DeleteCustomFormatsProcessor( ILogger log, IAnsiConsole console, ConfigurationRegistry configRegistry, diff --git a/src/Recyclarr.Cli/Processors/Delete/IDeleteCustomFormatsProcessor.cs b/src/Recyclarr.Cli/Processors/Delete/IDeleteCustomFormatsProcessor.cs index a6ba49c6..449785c3 100644 --- a/src/Recyclarr.Cli/Processors/Delete/IDeleteCustomFormatsProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Delete/IDeleteCustomFormatsProcessor.cs @@ -2,7 +2,7 @@ using Recyclarr.Cli.Console.Settings; namespace Recyclarr.Cli.Processors.Delete; -public interface IDeleteCustomFormatsProcessor +internal interface IDeleteCustomFormatsProcessor { Task Process(IDeleteCustomFormatSettings settings, CancellationToken ct); } diff --git a/src/Recyclarr.Cli/Processors/ErrorHandling/ConsoleExceptionHandler.cs b/src/Recyclarr.Cli/Processors/ErrorHandling/ConsoleExceptionHandler.cs index 8a06fd27..88c8dc96 100644 --- a/src/Recyclarr.Cli/Processors/ErrorHandling/ConsoleExceptionHandler.cs +++ b/src/Recyclarr.Cli/Processors/ErrorHandling/ConsoleExceptionHandler.cs @@ -10,7 +10,7 @@ using YamlDotNet.Core; namespace Recyclarr.Cli.Processors.ErrorHandling; -public class ConsoleExceptionHandler(ILogger log) +internal class ConsoleExceptionHandler(ILogger log) { public async Task HandleException(Exception sourceException) { diff --git a/src/Recyclarr.Cli/Processors/ErrorHandling/ErrorResponseParser.cs b/src/Recyclarr.Cli/Processors/ErrorHandling/ErrorResponseParser.cs index 3e71eb10..c1cefc09 100644 --- a/src/Recyclarr.Cli/Processors/ErrorHandling/ErrorResponseParser.cs +++ b/src/Recyclarr.Cli/Processors/ErrorHandling/ErrorResponseParser.cs @@ -5,7 +5,7 @@ using Recyclarr.Json; namespace Recyclarr.Cli.Processors.ErrorHandling; -public sealed class ErrorResponseParser(ILogger log, string responseBody) +internal sealed class ErrorResponseParser(ILogger log, string responseBody) { private readonly Func _streamFactory = () => new MemoryStream(Encoding.UTF8.GetBytes(responseBody)); diff --git a/src/Recyclarr.Cli/Processors/ErrorHandling/FlurlHttpExceptionHandler.cs b/src/Recyclarr.Cli/Processors/ErrorHandling/FlurlHttpExceptionHandler.cs index 411b6c0b..b66d6c3d 100644 --- a/src/Recyclarr.Cli/Processors/ErrorHandling/FlurlHttpExceptionHandler.cs +++ b/src/Recyclarr.Cli/Processors/ErrorHandling/FlurlHttpExceptionHandler.cs @@ -3,7 +3,7 @@ using Recyclarr.Common.Extensions; namespace Recyclarr.Cli.Processors.ErrorHandling; -public class FlurlHttpExceptionHandler(ILogger log) +internal class FlurlHttpExceptionHandler(ILogger log) { [SuppressMessage("Design", "CA1031:Do not catch general exception types")] public async Task ProcessServiceErrorMessages(IServiceErrorMessageExtractor extractor) diff --git a/src/Recyclarr.Cli/Processors/ErrorHandling/IServiceErrorMessageExtractor.cs b/src/Recyclarr.Cli/Processors/ErrorHandling/IServiceErrorMessageExtractor.cs index dc8b33c6..4e4702c8 100644 --- a/src/Recyclarr.Cli/Processors/ErrorHandling/IServiceErrorMessageExtractor.cs +++ b/src/Recyclarr.Cli/Processors/ErrorHandling/IServiceErrorMessageExtractor.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Processors.ErrorHandling; -public interface IServiceErrorMessageExtractor +internal interface IServiceErrorMessageExtractor { Task GetErrorMessage(); int? HttpStatusCode { get; } diff --git a/src/Recyclarr.Cli/Processors/ErrorHandling/ServiceErrorMessageExtractor.cs b/src/Recyclarr.Cli/Processors/ErrorHandling/ServiceErrorMessageExtractor.cs index 2a27362f..7d620a69 100644 --- a/src/Recyclarr.Cli/Processors/ErrorHandling/ServiceErrorMessageExtractor.cs +++ b/src/Recyclarr.Cli/Processors/ErrorHandling/ServiceErrorMessageExtractor.cs @@ -2,7 +2,7 @@ using Flurl.Http; namespace Recyclarr.Cli.Processors.ErrorHandling; -public class ServiceErrorMessageExtractor(FlurlHttpException e) : IServiceErrorMessageExtractor +internal class ServiceErrorMessageExtractor(FlurlHttpException e) : IServiceErrorMessageExtractor { public HttpRequestError? HttpError { diff --git a/src/Recyclarr.Cli/Processors/ExitStatus.cs b/src/Recyclarr.Cli/Processors/ExitStatus.cs index 5aec1537..88af51fd 100644 --- a/src/Recyclarr.Cli/Processors/ExitStatus.cs +++ b/src/Recyclarr.Cli/Processors/ExitStatus.cs @@ -1,6 +1,6 @@ namespace Recyclarr.Cli.Processors; -public enum ExitStatus +internal enum ExitStatus { Succeeded = 0, Failed, diff --git a/src/Recyclarr.Cli/Processors/FatalException.cs b/src/Recyclarr.Cli/Processors/FatalException.cs index 20b13d95..8b73fecd 100644 --- a/src/Recyclarr.Cli/Processors/FatalException.cs +++ b/src/Recyclarr.Cli/Processors/FatalException.cs @@ -1,4 +1,4 @@ namespace Recyclarr.Cli.Processors; -public class FatalException(string? message, Exception? innerException = null) +internal class FatalException(string? message, Exception? innerException = null) : Exception(message, innerException); diff --git a/src/Recyclarr.Cli/Processors/IServiceProcessor.cs b/src/Recyclarr.Cli/Processors/IServiceProcessor.cs deleted file mode 100644 index 8501f480..00000000 --- a/src/Recyclarr.Cli/Processors/IServiceProcessor.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Recyclarr.Cli.Console.Settings; -using Recyclarr.Config.Models; - -namespace Recyclarr.Cli.Processors; - -public interface IServiceProcessor -{ - Task Process(ISyncSettings settings, IServiceConfiguration config); -} diff --git a/src/Recyclarr.Cli/Processors/Sync/ISyncProcessor.cs b/src/Recyclarr.Cli/Processors/Sync/ISyncProcessor.cs deleted file mode 100644 index 648aca17..00000000 --- a/src/Recyclarr.Cli/Processors/Sync/ISyncProcessor.cs +++ /dev/null @@ -1,8 +0,0 @@ -using Recyclarr.Cli.Console.Settings; - -namespace Recyclarr.Cli.Processors.Sync; - -public interface ISyncProcessor -{ - Task Process(ISyncSettings settings, CancellationToken ct); -} diff --git a/src/Recyclarr.Cli/Processors/Sync/SyncProcessor.cs b/src/Recyclarr.Cli/Processors/Sync/SyncProcessor.cs index 0ea0fb00..099b81d0 100644 --- a/src/Recyclarr.Cli/Processors/Sync/SyncProcessor.cs +++ b/src/Recyclarr.Cli/Processors/Sync/SyncProcessor.cs @@ -12,19 +12,19 @@ using Spectre.Console; namespace Recyclarr.Cli.Processors.Sync; [UsedImplicitly] -public class SyncBasedConfigurationScope(ILifetimeScope scope) : ConfigurationScope(scope) +internal class SyncBasedConfigurationScope(ILifetimeScope scope) : ConfigurationScope(scope) { public ISyncPipeline Pipelines { get; } = scope.Resolve(); } [SuppressMessage("Design", "CA1031:Do not catch general exception types")] -public class SyncProcessor( +internal class SyncProcessor( IAnsiConsole console, ConfigurationRegistry configRegistry, ConfigurationScopeFactory configScopeFactory, ConsoleExceptionHandler exceptionHandler, NotificationService notify -) : ISyncProcessor +) { public async Task Process(ISyncSettings settings, CancellationToken ct) { diff --git a/src/Recyclarr.Core/GlobalUsings.cs b/src/Recyclarr.Core/GlobalUsings.cs index ece3cfac..9ffb32c8 100644 --- a/src/Recyclarr.Core/GlobalUsings.cs +++ b/src/Recyclarr.Core/GlobalUsings.cs @@ -1,3 +1,2 @@ -global using JetBrains.Annotations; global using Serilog; global using SuperLinq; diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index c60fd257..422fa267 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -6,7 +6,7 @@ $(DefaultItemExcludes);TestResults\*\** - + @@ -30,7 +30,7 @@ - + diff --git a/tests/Recyclarr.Cli.TestLibrary/Recyclarr.Cli.TestLibrary.csproj b/tests/Recyclarr.Cli.TestLibrary/Recyclarr.Cli.TestLibrary.csproj deleted file mode 100644 index 120de482..00000000 --- a/tests/Recyclarr.Cli.TestLibrary/Recyclarr.Cli.TestLibrary.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/tests/Recyclarr.Cli.Tests/Cache/CustomFormatCacheTest.cs b/tests/Recyclarr.Cli.Tests/Cache/CustomFormatCacheTest.cs index 4a851d9e..32c40b5b 100644 --- a/tests/Recyclarr.Cli.Tests/Cache/CustomFormatCacheTest.cs +++ b/tests/Recyclarr.Cli.Tests/Cache/CustomFormatCacheTest.cs @@ -1,12 +1,11 @@ using Recyclarr.Cli.Pipelines.CustomFormat.Cache; using Recyclarr.Cli.Pipelines.CustomFormat.Models; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Core.TestLibrary; namespace Recyclarr.Cli.Tests.Cache; -[TestFixture] -public class CustomFormatCacheTest +internal sealed class CustomFormatCacheTest { [Test] public void New_updated_and_changed_are_added() diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/AutoMapperConfigurationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/AutoMapperConfigurationTest.cs index a465cd4d..1d4629f5 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/AutoMapperConfigurationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/AutoMapperConfigurationTest.cs @@ -1,9 +1,8 @@ using AutoMapper; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class AutoMapperConfigurationTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/BaseCommandSetupIntegrationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/BaseCommandSetupIntegrationTest.cs index 33e0de32..d6ad59c3 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/BaseCommandSetupIntegrationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/BaseCommandSetupIntegrationTest.cs @@ -1,11 +1,10 @@ using System.IO.Abstractions; using Recyclarr.Cli.Console.Setup; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Settings; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class BaseCommandSetupIntegrationTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/CliCommandIntegrationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/CliCommandIntegrationTest.cs index b452a298..c78d1629 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/CliCommandIntegrationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/CliCommandIntegrationTest.cs @@ -1,6 +1,6 @@ using System.IO.Abstractions; using Recyclarr.Cli.Console; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Repo; using Recyclarr.TestLibrary; using Spectre.Console.Cli; diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/CompositionRootTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/CompositionRootTest.cs index 5c8fa3d3..ebea6899 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/CompositionRootTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/CompositionRootTest.cs @@ -10,8 +10,7 @@ using Spectre.Console; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] -public class CompositionRootTest +internal sealed class CompositionRootTest { [SuppressMessage( "Microsoft.Performance", diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/ConfigCreationProcessorIntegrationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/ConfigCreationProcessorIntegrationTest.cs index 9264b5d6..f8c964aa 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/ConfigCreationProcessorIntegrationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/ConfigCreationProcessorIntegrationTest.cs @@ -2,12 +2,11 @@ using System.IO.Abstractions; using Recyclarr.Cli.Console.Commands; using Recyclarr.Cli.Console.Settings; using Recyclarr.Cli.Processors.Config; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Repo; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class ConfigCreationProcessorIntegrationTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/CustomFormatTransactionPhaseTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/CustomFormatTransactionPhaseTest.cs index 58ce399f..1d7e728f 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/CustomFormatTransactionPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/CustomFormatTransactionPhaseTest.cs @@ -2,14 +2,13 @@ using Recyclarr.Cli.Pipelines.CustomFormat; using Recyclarr.Cli.Pipelines.CustomFormat.Cache; using Recyclarr.Cli.Pipelines.CustomFormat.Models; using Recyclarr.Cli.Pipelines.CustomFormat.PipelinePhases; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config; using Recyclarr.Core.TestLibrary; using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class CustomFormatTransactionPhaseTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/ServiceCompatibilityIntegrationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/ServiceCompatibilityIntegrationTest.cs index 69f1e8e5..7889ff00 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/ServiceCompatibilityIntegrationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/ServiceCompatibilityIntegrationTest.cs @@ -1,10 +1,9 @@ using System.IO.Abstractions; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Settings; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class ServiceCompatibilityIntegrationTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/IntegrationTests/TemplateConfigCreatorIntegrationTest.cs b/tests/Recyclarr.Cli.Tests/IntegrationTests/TemplateConfigCreatorIntegrationTest.cs index 2c75daa7..10817ee8 100644 --- a/tests/Recyclarr.Cli.Tests/IntegrationTests/TemplateConfigCreatorIntegrationTest.cs +++ b/tests/Recyclarr.Cli.Tests/IntegrationTests/TemplateConfigCreatorIntegrationTest.cs @@ -1,12 +1,11 @@ using System.IO.Abstractions; using Recyclarr.Cli.Console.Settings; using Recyclarr.Cli.Processors.Config; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Repo; namespace Recyclarr.Cli.Tests.IntegrationTests; -[TestFixture] internal sealed class TemplateConfigCreatorIntegrationTest : CliIntegrationFixture { [Test] diff --git a/tests/Recyclarr.Cli.Tests/LogJanitorTest.cs b/tests/Recyclarr.Cli.Tests/LogJanitorTest.cs index f7b47926..b72eb878 100644 --- a/tests/Recyclarr.Cli.Tests/LogJanitorTest.cs +++ b/tests/Recyclarr.Cli.Tests/LogJanitorTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Platform; namespace Recyclarr.Cli.Tests; -[TestFixture] -public class LogJanitorTest +internal sealed class LogJanitorTest { [Test, AutoMockData] public void Keep_correct_number_of_newest_log_files( diff --git a/tests/Recyclarr.Cli.Tests/Migration/MigrationExecutorTest.cs b/tests/Recyclarr.Cli.Tests/Migration/MigrationExecutorTest.cs index 13957717..60df5d84 100644 --- a/tests/Recyclarr.Cli.Tests/Migration/MigrationExecutorTest.cs +++ b/tests/Recyclarr.Cli.Tests/Migration/MigrationExecutorTest.cs @@ -6,8 +6,7 @@ using Spectre.Console.Testing; namespace Recyclarr.Cli.Tests.Migration; -[TestFixture] -public class MigrationExecutorTest +internal sealed class MigrationExecutorTest { [Test] public void Step_not_executed_if_check_returns_false() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/CustomFormatDataListerTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/CustomFormatDataListerTest.cs index 8723165e..640f9aa1 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/CustomFormatDataListerTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/CustomFormatDataListerTest.cs @@ -6,8 +6,7 @@ using Spectre.Console.Testing; namespace Recyclarr.Cli.Tests.Pipelines.CustomFormat; -[TestFixture] -public class CustomFormatDataListerTest +internal sealed class CustomFormatDataListerTest { [Test, AutoMockData] public void Custom_formats_appear_in_console_output( diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/CustomFormatDataComparerTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/CustomFormatDataComparerTest.cs index 821d2f2e..6c066cd4 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/CustomFormatDataComparerTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/CustomFormatDataComparerTest.cs @@ -2,8 +2,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Tests.Pipelines.CustomFormat.Models; -[Parallelizable(ParallelScope.All)] -public class CustomFormatDataComparerTest +internal sealed class CustomFormatDataComparerTest { [Test] public void Custom_formats_equal() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/FieldsArrayJsonConverterTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/FieldsArrayJsonConverterTest.cs index 2b921c5d..154fc1a5 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/FieldsArrayJsonConverterTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/Models/FieldsArrayJsonConverterTest.cs @@ -4,8 +4,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Tests.Pipelines.CustomFormat.Models; -[TestFixture] -public class FieldsArrayJsonConverterTest +internal sealed class FieldsArrayJsonConverterTest { [Test] public void Read_array_as_is() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhaseTest.cs index 2fcd765f..849dacc8 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/CustomFormat/PipelinePhases/CustomFormatConfigPhaseTest.cs @@ -7,8 +7,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Cli.Tests.Pipelines.CustomFormat.PipelinePhases; -[TestFixture] -public class CustomFormatConfigPhaseTest +internal sealed class CustomFormatConfigPhaseTest { [Test] public void Return_configs_that_exist_in_guide() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/NamingFormatLookupTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/NamingFormatLookupTest.cs index 16d45c4a..45218988 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/NamingFormatLookupTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/NamingFormatLookupTest.cs @@ -2,9 +2,7 @@ using Recyclarr.Cli.Pipelines.MediaNaming.PipelinePhases.Config; namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming.Config; -[TestFixture] -[Parallelizable(ParallelScope.All)] -public class NamingFormatLookupTest +internal sealed class NamingFormatLookupTest { [Test, AutoMockData] public void Assign_null_when_config_null(NamingFormatLookup sut) diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/RadarrMediaNamingConfigPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/RadarrMediaNamingConfigPhaseTest.cs index dba8302a..88db4f6b 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/RadarrMediaNamingConfigPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/RadarrMediaNamingConfigPhaseTest.cs @@ -6,9 +6,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming.Config; -[TestFixture] -[Parallelizable(ParallelScope.All)] -public class RadarrMediaNamingConfigPhaseTest +internal sealed class RadarrMediaNamingConfigPhaseTest { private static readonly RadarrMediaNamingData RadarrNamingData = new() { diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/SonarrMediaNamingConfigPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/SonarrMediaNamingConfigPhaseTest.cs index dd93c6e6..ecaeae15 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/SonarrMediaNamingConfigPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/Config/SonarrMediaNamingConfigPhaseTest.cs @@ -8,9 +8,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming.Config; -[TestFixture] -[Parallelizable(ParallelScope.All)] -public class SonarrMediaNamingConfigPhaseTest +internal sealed class SonarrMediaNamingConfigPhaseTest { private static readonly SonarrMediaNamingData SonarrNamingData = new() { diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs index 736b94cf..0f40e113 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseRadarrTest.cs @@ -5,7 +5,6 @@ using Recyclarr.ServarrApi.MediaNaming; namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming; -[TestFixture] [SuppressMessage( "Reliability", "CA2000:Dispose objects before losing scope", diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs index 3fdbc633..4d832733 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/MediaNaming/MediaNamingTransactionPhaseSonarrTest.cs @@ -5,7 +5,6 @@ using Recyclarr.ServarrApi.MediaNaming; namespace Recyclarr.Cli.Tests.Pipelines.MediaNaming; -[TestFixture] [SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")] internal sealed class MediaNamingTransactionPhaseSonarrTest { diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/Api/QualityProfileDtoTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/Api/QualityProfileDtoTest.cs index 0336906b..7a3a79a3 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/Api/QualityProfileDtoTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/Api/QualityProfileDtoTest.cs @@ -1,9 +1,9 @@ +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile.Api; -[TestFixture] -public class QualityProfileDtoTest +internal sealed class QualityProfileDtoTest { [TestCase(null, false)] [TestCase(true, true)] diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhaseTest.cs index 5f8098c5..4c04d560 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileConfigPhaseTest.cs @@ -2,13 +2,13 @@ using AutoFixture; using Recyclarr.Cli.Pipelines.CustomFormat.Models; using Recyclarr.Cli.Pipelines.QualityProfile; using Recyclarr.Cli.Pipelines.QualityProfile.PipelinePhases; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.Core.TestLibrary; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile.PipelinePhases; -[TestFixture] -public class QualityProfileConfigPhaseTest +internal sealed class QualityProfileConfigPhaseTest { private static RadarrConfiguration SetupCfs(params CustomFormatConfig[] cfConfigs) { diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhaseTest.cs index 5d8ac707..89a6819d 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/PipelinePhases/QualityProfileTransactionPhaseTest.cs @@ -1,12 +1,12 @@ using Recyclarr.Cli.Pipelines.QualityProfile; using Recyclarr.Cli.Pipelines.QualityProfile.Models; using Recyclarr.Cli.Pipelines.QualityProfile.PipelinePhases; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile.PipelinePhases; -[TestFixture] internal sealed class QualityProfileTransactionPhaseTest { [Test, AutoMockData] diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityItemOrganizerTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityItemOrganizerTest.cs index 27c5b7a2..c1af3bfd 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityItemOrganizerTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityItemOrganizerTest.cs @@ -1,11 +1,11 @@ using Recyclarr.Cli.Pipelines.QualityProfile; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile; -[TestFixture] -public class QualityItemOrganizerTest +internal sealed class QualityItemOrganizerTest { private readonly QualityProfileConfig _config = new() { diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityProfileExtensionsTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityProfileExtensionsTest.cs index d8571b22..f917f6f8 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityProfileExtensionsTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/QualityProfileExtensionsTest.cs @@ -1,12 +1,12 @@ using Recyclarr.Cli.Pipelines.QualityProfile; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.ServarrApi.QualityProfile; // ReSharper disable CollectionNeverUpdated.Local namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile; -[TestFixture] -public class QualityProfileExtensionsTest +internal sealed class QualityProfileExtensionsTest { [Test] public void Find_group_by_id_with_null_input() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileTest.cs index 20705159..f490d5a0 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileTest.cs @@ -1,12 +1,12 @@ using Recyclarr.Cli.Pipelines.QualityProfile; using Recyclarr.Cli.Pipelines.QualityProfile.Models; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile; -[TestFixture] -public class UpdatedQualityProfileTest +internal sealed class UpdatedQualityProfileTest { [Test] public void Profile_name_uses_dto_first() diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileValidatorTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileValidatorTest.cs index b94255c4..23754167 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileValidatorTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualityProfile/UpdatedQualityProfileValidatorTest.cs @@ -1,13 +1,13 @@ using FluentValidation.TestHelper; using Recyclarr.Cli.Pipelines.QualityProfile; using Recyclarr.Cli.Pipelines.QualityProfile.Models; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.ServarrApi.QualityProfile; namespace Recyclarr.Cli.Tests.Pipelines.QualityProfile; -[TestFixture] -public class UpdatedQualityProfileValidatorTest +internal sealed class UpdatedQualityProfileValidatorTest { [TestCase(399, true)] [TestCase(400, true)] diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeConfigPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeConfigPhaseTest.cs index 200f6af8..c0c9630b 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeConfigPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeConfigPhaseTest.cs @@ -2,13 +2,12 @@ using System.Globalization; using NSubstitute.ReturnsExtensions; using Recyclarr.Cli.Pipelines.QualitySize; using Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases; -using Recyclarr.Cli.TestLibrary; +using Recyclarr.Cli.Tests.Reusable; using Recyclarr.Config.Models; using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Cli.Tests.Pipelines.QualitySize.PipelinePhases; -[TestFixture] internal sealed class QualitySizeConfigPhaseTest { [Test, AutoMockData] diff --git a/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhaseTest.cs b/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhaseTest.cs index 15564822..d8e14794 100644 --- a/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhaseTest.cs +++ b/tests/Recyclarr.Cli.Tests/Pipelines/QualitySize/PipelinePhases/QualitySizeTransactionPhaseTest.cs @@ -5,7 +5,6 @@ using Recyclarr.ServarrApi.QualityDefinition; namespace Recyclarr.Cli.Tests.Pipelines.QualitySize.PipelinePhases; -[TestFixture] internal sealed class QualitySizeTransactionPhaseTest { [Test, AutoMockData] diff --git a/tests/Recyclarr.Cli.Tests/Processors/Config/TemplateConfigCreatorTest.cs b/tests/Recyclarr.Cli.Tests/Processors/Config/TemplateConfigCreatorTest.cs index 51d8e986..20418cee 100644 --- a/tests/Recyclarr.Cli.Tests/Processors/Config/TemplateConfigCreatorTest.cs +++ b/tests/Recyclarr.Cli.Tests/Processors/Config/TemplateConfigCreatorTest.cs @@ -6,8 +6,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Cli.Tests.Processors.Config; -[TestFixture] -public class TemplateConfigCreatorTest +internal sealed class TemplateConfigCreatorTest { [Test, AutoMockData] public void Can_handle_returns_true_with_templates( diff --git a/tests/Recyclarr.Cli.Tests/Processors/ConfigCreationProcessorTest.cs b/tests/Recyclarr.Cli.Tests/Processors/ConfigCreationProcessorTest.cs index c91f287d..c6968ceb 100644 --- a/tests/Recyclarr.Cli.Tests/Processors/ConfigCreationProcessorTest.cs +++ b/tests/Recyclarr.Cli.Tests/Processors/ConfigCreationProcessorTest.cs @@ -7,8 +7,7 @@ using Recyclarr.Cli.Processors.Config; namespace Recyclarr.Cli.Tests.Processors; -[TestFixture] -public class ConfigCreationProcessorTest +internal sealed class ConfigCreationProcessorTest { [SuppressMessage( "Performance", diff --git a/tests/Recyclarr.Cli.Tests/Processors/ConfigTemplateListerTest.cs b/tests/Recyclarr.Cli.Tests/Processors/ConfigTemplateListerTest.cs index a5759ad2..bc6ad784 100644 --- a/tests/Recyclarr.Cli.Tests/Processors/ConfigTemplateListerTest.cs +++ b/tests/Recyclarr.Cli.Tests/Processors/ConfigTemplateListerTest.cs @@ -1,13 +1,12 @@ using System.IO.Abstractions; -using Recyclarr.Cli.Console.Commands; +using Recyclarr.Cli.Console.Settings; using Recyclarr.Cli.Processors.Config; using Recyclarr.TrashGuide; using Spectre.Console.Testing; namespace Recyclarr.Cli.Tests.Processors; -[TestFixture] -public class ConfigTemplateListerTest +internal sealed class ConfigTemplateListerTest { [Test, AutoMockData] public void Hidden_templates_are_not_rendered( diff --git a/tests/Recyclarr.Cli.Tests/Processors/ErrorHandling/FlurlHttpExceptionHandlerTest.cs b/tests/Recyclarr.Cli.Tests/Processors/ErrorHandling/FlurlHttpExceptionHandlerTest.cs index ab40a415..0fa9848e 100644 --- a/tests/Recyclarr.Cli.Tests/Processors/ErrorHandling/FlurlHttpExceptionHandlerTest.cs +++ b/tests/Recyclarr.Cli.Tests/Processors/ErrorHandling/FlurlHttpExceptionHandlerTest.cs @@ -5,9 +5,8 @@ using Recyclarr.TestLibrary; namespace Recyclarr.Cli.Tests.Processors.ErrorHandling; -[TestFixture] [SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope")] -public class FlurlHttpExceptionHandlerTest +internal sealed class FlurlHttpExceptionHandlerTest { [Test, AutoMockData] public async Task Http_exception_print_validation_errors( diff --git a/tests/Recyclarr.Cli.Tests/Recyclarr.Cli.Tests.csproj b/tests/Recyclarr.Cli.Tests/Recyclarr.Cli.Tests.csproj index 7f8f18a5..5bd68735 100644 --- a/tests/Recyclarr.Cli.Tests/Recyclarr.Cli.Tests.csproj +++ b/tests/Recyclarr.Cli.Tests/Recyclarr.Cli.Tests.csproj @@ -1,7 +1,7 @@ - + diff --git a/tests/Recyclarr.Cli.TestLibrary/CfCache.cs b/tests/Recyclarr.Cli.Tests/Reusable/CfCache.cs similarity index 79% rename from tests/Recyclarr.Cli.TestLibrary/CfCache.cs rename to tests/Recyclarr.Cli.Tests/Reusable/CfCache.cs index 92f004e2..143b3f08 100644 --- a/tests/Recyclarr.Cli.TestLibrary/CfCache.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/CfCache.cs @@ -1,8 +1,8 @@ using Recyclarr.Cli.Pipelines.CustomFormat.Cache; -namespace Recyclarr.Cli.TestLibrary; +namespace Recyclarr.Cli.Tests.Reusable; -public static class CfCache +internal static class CfCache { public static CustomFormatCache New(params TrashIdMapping[] mappings) { diff --git a/tests/Recyclarr.Cli.TestLibrary/CliIntegrationFixture.cs b/tests/Recyclarr.Cli.Tests/Reusable/CliIntegrationFixture.cs similarity index 74% rename from tests/Recyclarr.Cli.TestLibrary/CliIntegrationFixture.cs rename to tests/Recyclarr.Cli.Tests/Reusable/CliIntegrationFixture.cs index d0721e0f..d52e4b2d 100644 --- a/tests/Recyclarr.Cli.TestLibrary/CliIntegrationFixture.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/CliIntegrationFixture.cs @@ -1,9 +1,9 @@ using Autofac; using Recyclarr.Core.TestLibrary; -namespace Recyclarr.Cli.TestLibrary; +namespace Recyclarr.Cli.Tests.Reusable; -public abstract class CliIntegrationFixture : IntegrationTestFixture +internal abstract class CliIntegrationFixture : IntegrationTestFixture { protected override void RegisterTypes(ContainerBuilder builder) { diff --git a/tests/Recyclarr.Cli.Tests/NewQp.cs b/tests/Recyclarr.Cli.Tests/Reusable/NewQp.cs similarity index 98% rename from tests/Recyclarr.Cli.Tests/NewQp.cs rename to tests/Recyclarr.Cli.Tests/Reusable/NewQp.cs index 9631feaa..7171b5f2 100644 --- a/tests/Recyclarr.Cli.Tests/NewQp.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/NewQp.cs @@ -4,9 +4,9 @@ using Recyclarr.Cli.Pipelines.QualityProfile.Models; using Recyclarr.Config.Models; using Recyclarr.ServarrApi.QualityProfile; -namespace Recyclarr.Cli.Tests; +namespace Recyclarr.Cli.Tests.Reusable; -public static class NewQp +internal static class NewQp { public static ProcessedQualityProfileData Processed( string profileName, diff --git a/tests/Recyclarr.Cli.TestLibrary/RemoteRepoFileMapper.cs b/tests/Recyclarr.Cli.Tests/Reusable/RemoteRepoFileMapper.cs similarity index 93% rename from tests/Recyclarr.Cli.TestLibrary/RemoteRepoFileMapper.cs rename to tests/Recyclarr.Cli.Tests/Reusable/RemoteRepoFileMapper.cs index 840ce52c..eee61157 100644 --- a/tests/Recyclarr.Cli.TestLibrary/RemoteRepoFileMapper.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/RemoteRepoFileMapper.cs @@ -3,9 +3,9 @@ using System.IO.Abstractions; using System.Reactive.Linq; using Flurl.Http; -namespace Recyclarr.Cli.TestLibrary; +namespace Recyclarr.Cli.Tests.Reusable; -public class RemoteRepoFileMapper +internal class RemoteRepoFileMapper { private Dictionary? _guideDataCache; diff --git a/tests/Recyclarr.Cli.TestLibrary/TestQualityItemLimitFactory.cs b/tests/Recyclarr.Cli.Tests/Reusable/TestQualityItemLimitFactory.cs similarity index 63% rename from tests/Recyclarr.Cli.TestLibrary/TestQualityItemLimitFactory.cs rename to tests/Recyclarr.Cli.Tests/Reusable/TestQualityItemLimitFactory.cs index 4ba324e1..970d76de 100644 --- a/tests/Recyclarr.Cli.TestLibrary/TestQualityItemLimitFactory.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/TestQualityItemLimitFactory.cs @@ -1,11 +1,17 @@ +using System.Diagnostics.CodeAnalysis; using Recyclarr.Cli.Pipelines.QualitySize.PipelinePhases.Limits; using Recyclarr.Core.TestLibrary; using Recyclarr.TrashGuide; using Recyclarr.TrashGuide.QualitySize; -namespace Recyclarr.Cli.TestLibrary; +namespace Recyclarr.Cli.Tests.Reusable; -public class TestQualityItemLimitFactory : IQualityItemLimitFactory +[SuppressMessage( + "Performance", + "CA1812:Avoid uninstantiated internal classes", + Justification = "Created by AutoFixture" +)] +internal sealed class TestQualityItemLimitFactory : IQualityItemLimitFactory { public Task Create(SupportedServices serviceType, CancellationToken ct) { diff --git a/tests/Recyclarr.Cli.TestLibrary/TrashRepoFileMapper.cs b/tests/Recyclarr.Cli.Tests/Reusable/TrashRepoFileMapper.cs similarity index 72% rename from tests/Recyclarr.Cli.TestLibrary/TrashRepoFileMapper.cs rename to tests/Recyclarr.Cli.Tests/Reusable/TrashRepoFileMapper.cs index 23830190..5e9cc861 100644 --- a/tests/Recyclarr.Cli.TestLibrary/TrashRepoFileMapper.cs +++ b/tests/Recyclarr.Cli.Tests/Reusable/TrashRepoFileMapper.cs @@ -1,6 +1,6 @@ -namespace Recyclarr.Cli.TestLibrary; +namespace Recyclarr.Cli.Tests.Reusable; -public class TrashRepoFileMapper : RemoteRepoFileMapper +internal sealed class TrashRepoFileMapper : RemoteRepoFileMapper { private const string RepoUrlPrefix = "https://raw.githubusercontent.com/TRaSH-Guides/Guides/refs/heads/master"; diff --git a/tests/Recyclarr.Core.TestLibrary/IntegrationTestFixture.cs b/tests/Recyclarr.Core.TestLibrary/IntegrationTestFixture.cs index d6b632f5..eabfae20 100644 --- a/tests/Recyclarr.Core.TestLibrary/IntegrationTestFixture.cs +++ b/tests/Recyclarr.Core.TestLibrary/IntegrationTestFixture.cs @@ -1,12 +1,16 @@ using System.IO.Abstractions; +using System.IO.Abstractions.TestingHelpers; using Autofac; using Autofac.Extras.Ordering; using Autofac.Features.ResolveAnything; +using NSubstitute; +using NUnit.Framework; using Recyclarr.Compatibility; using Recyclarr.Platform; using Recyclarr.TestLibrary; using Recyclarr.TestLibrary.Autofac; using Recyclarr.VersionControl; +using Serilog; using Spectre.Console; using Spectre.Console.Testing; diff --git a/tests/Recyclarr.Core.TestLibrary/Recyclarr.Core.TestLibrary.csproj b/tests/Recyclarr.Core.TestLibrary/Recyclarr.Core.TestLibrary.csproj index f7ece79f..6cdca8aa 100644 --- a/tests/Recyclarr.Core.TestLibrary/Recyclarr.Core.TestLibrary.csproj +++ b/tests/Recyclarr.Core.TestLibrary/Recyclarr.Core.TestLibrary.csproj @@ -3,4 +3,7 @@ + + + diff --git a/tests/Recyclarr.Core.Tests/Cache/CachePersisterTest.cs b/tests/Recyclarr.Core.Tests/Cache/CachePersisterTest.cs index 54dd2c76..5cab1295 100644 --- a/tests/Recyclarr.Core.Tests/Cache/CachePersisterTest.cs +++ b/tests/Recyclarr.Core.Tests/Cache/CachePersisterTest.cs @@ -1,10 +1,45 @@ +using System.Diagnostics.CodeAnalysis; using Recyclarr.Cache; using Recyclarr.Config.Models; namespace Recyclarr.Core.Tests.Cache; -[TestFixture] -public class CachePersisterTest +[CacheObjectName("test-cache")] +internal sealed record TestCacheObject() : CacheObject(LatestVersion) +{ + public new const int LatestVersion = 1; + public string? ExtraData + { + [UsedImplicitly] + get; + init; + } +} + +internal sealed class TestCache(TestCacheObject cacheObject) : BaseCache(cacheObject); + +// This class exists because AutoFixture does not use NSubstitute's ForPartsOf() +// See: https://github.com/AutoFixture/AutoFixture/issues/1355 +[SuppressMessage( + "Performance", + "CA1812:Avoid uninstantiated internal classes", + Justification = "Created by AutoFixture" +)] +internal sealed class TestCachePersister( + ILogger log, + ICacheStoragePath storagePath, + IServiceConfiguration config +) : CachePersister(log, storagePath, config) +{ + protected override string CacheName => "Test Cache"; + + protected override TestCache CreateCache(TestCacheObject cacheObject) + { + return new TestCache(cacheObject); + } +} + +internal sealed class CachePersisterTest { [Test, AutoMockData] public void Load_returns_default_when_file_does_not_exist(TestCachePersister sut) diff --git a/tests/Recyclarr.Core.Tests/Cache/CacheStoragePathTest.cs b/tests/Recyclarr.Core.Tests/Cache/CacheStoragePathTest.cs index 8e29fdf4..b04f11e8 100644 --- a/tests/Recyclarr.Core.Tests/Cache/CacheStoragePathTest.cs +++ b/tests/Recyclarr.Core.Tests/Cache/CacheStoragePathTest.cs @@ -5,7 +5,6 @@ using Recyclarr.Config.Models; namespace Recyclarr.Core.Tests.Cache; -[TestFixture] [SuppressMessage( "ReSharper", "ClassNeverInstantiated.Local", @@ -17,7 +16,7 @@ namespace Recyclarr.Core.Tests.Cache; Justification = "For testing only" )] [SuppressMessage("SonarLint", "S2094", Justification = "Used for unit test scenario")] -public class CacheStoragePathTest +internal sealed class CacheStoragePathTest { private const string ValidObjectName = "azAZ_09"; diff --git a/tests/Recyclarr.Core.Tests/Cache/TestCacheObject.cs b/tests/Recyclarr.Core.Tests/Cache/TestCacheObject.cs deleted file mode 100644 index 20985d3e..00000000 --- a/tests/Recyclarr.Core.Tests/Cache/TestCacheObject.cs +++ /dev/null @@ -1,17 +0,0 @@ -using Recyclarr.Cache; - -namespace Recyclarr.Core.Tests.Cache; - -[CacheObjectName("test-cache")] -public record TestCacheObject() : CacheObject(LatestVersion) -{ - public new const int LatestVersion = 1; - public string? ExtraData - { - [UsedImplicitly] - get; - init; - } -} - -public class TestCache(TestCacheObject cacheObject) : BaseCache(cacheObject); diff --git a/tests/Recyclarr.Core.Tests/Cache/TestCachePersister.cs b/tests/Recyclarr.Core.Tests/Cache/TestCachePersister.cs deleted file mode 100644 index 9dccfb65..00000000 --- a/tests/Recyclarr.Core.Tests/Cache/TestCachePersister.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Recyclarr.Cache; -using Recyclarr.Config.Models; - -namespace Recyclarr.Core.Tests.Cache; - -// This class exists because AutoFixture does not use NSubstitute's ForPartsOf() -// See: https://github.com/AutoFixture/AutoFixture/issues/1355 -public class TestCachePersister( - ILogger log, - ICacheStoragePath storagePath, - IServiceConfiguration config -) : CachePersister(log, storagePath, config) -{ - protected override string CacheName => "Test Cache"; - - protected override TestCache CreateCache(TestCacheObject cacheObject) - { - return new TestCache(cacheObject); - } -} diff --git a/tests/Recyclarr.Core.Tests/Common/Extensions/DictionaryExtensionsTest.cs b/tests/Recyclarr.Core.Tests/Common/Extensions/DictionaryExtensionsTest.cs index 60241e38..58212116 100644 --- a/tests/Recyclarr.Core.Tests/Common/Extensions/DictionaryExtensionsTest.cs +++ b/tests/Recyclarr.Core.Tests/Common/Extensions/DictionaryExtensionsTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Common.Extensions; namespace Recyclarr.Core.Tests.Common.Extensions; -[TestFixture] -public class DictionaryExtensionsTest +internal sealed class DictionaryExtensionsTest { [SuppressMessage( "SonarLint", diff --git a/tests/Recyclarr.Core.Tests/Common/Extensions/FileSystemExtensionsTest.cs b/tests/Recyclarr.Core.Tests/Common/Extensions/FileSystemExtensionsTest.cs index c4d7841e..1f71b262 100644 --- a/tests/Recyclarr.Core.Tests/Common/Extensions/FileSystemExtensionsTest.cs +++ b/tests/Recyclarr.Core.Tests/Common/Extensions/FileSystemExtensionsTest.cs @@ -6,8 +6,7 @@ using Recyclarr.TestLibrary; namespace Recyclarr.Core.Tests.Common.Extensions; -[TestFixture] -public class FileSystemExtensionsTest +internal sealed class FileSystemExtensionsTest { private static IEnumerable ReRootFiles( MockFileSystem fs, diff --git a/tests/Recyclarr.Core.Tests/Common/Extensions/StringExtensionsTest.cs b/tests/Recyclarr.Core.Tests/Common/Extensions/StringExtensionsTest.cs index bd999238..5656eb68 100644 --- a/tests/Recyclarr.Core.Tests/Common/Extensions/StringExtensionsTest.cs +++ b/tests/Recyclarr.Core.Tests/Common/Extensions/StringExtensionsTest.cs @@ -2,8 +2,7 @@ using Recyclarr.Common.Extensions; namespace Recyclarr.Core.Tests.Common.Extensions; -[TestFixture] -public class StringExtensionsTest +internal sealed class StringExtensionsTest { [Test] public void Carriage_returns_and_newlines_are_stripped_from_front_and_back() diff --git a/tests/Recyclarr.Core.Tests/Common/ResourceDataReaderTest.cs b/tests/Recyclarr.Core.Tests/Common/ResourceDataReaderTest.cs index 2dc0e750..8648a75d 100644 --- a/tests/Recyclarr.Core.Tests/Common/ResourceDataReaderTest.cs +++ b/tests/Recyclarr.Core.Tests/Common/ResourceDataReaderTest.cs @@ -2,8 +2,7 @@ using Recyclarr.Common; namespace Recyclarr.Core.Tests.Common; -[TestFixture] -public class ResourceDataReaderTest +internal sealed class ResourceDataReaderTest { [Test] public void GetResourceData_DefaultDir_ReturnResourceData() diff --git a/tests/Recyclarr.Core.Tests/Common/ScopedStateTest.cs b/tests/Recyclarr.Core.Tests/Common/ScopedStateTest.cs index a7483c62..ef1445f9 100644 --- a/tests/Recyclarr.Core.Tests/Common/ScopedStateTest.cs +++ b/tests/Recyclarr.Core.Tests/Common/ScopedStateTest.cs @@ -2,8 +2,7 @@ using Recyclarr.Common; namespace Recyclarr.Core.Tests.Common; -[TestFixture] -public class ScopedStateTest +internal sealed class ScopedStateTest { [Test] public void AccessValue_MultipleScopes_ScopeValuesReturned() diff --git a/tests/Recyclarr.Core.Tests/Compatibility/Sonarr/SonarrCapabilityEnforcerTest.cs b/tests/Recyclarr.Core.Tests/Compatibility/Sonarr/SonarrCapabilityEnforcerTest.cs index d9e9b891..4a99c3e7 100644 --- a/tests/Recyclarr.Core.Tests/Compatibility/Sonarr/SonarrCapabilityEnforcerTest.cs +++ b/tests/Recyclarr.Core.Tests/Compatibility/Sonarr/SonarrCapabilityEnforcerTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Compatibility.Sonarr; namespace Recyclarr.Core.Tests.Compatibility.Sonarr; -[TestFixture] -public class SonarrCapabilityEnforcerTest +internal sealed class SonarrCapabilityEnforcerTest { [Test, AutoMockData] public void Minimum_version_not_met( diff --git a/tests/Recyclarr.Core.Tests/Config/ConfigExtensionsTest.cs b/tests/Recyclarr.Core.Tests/Config/ConfigExtensionsTest.cs deleted file mode 100644 index 5dc02630..00000000 --- a/tests/Recyclarr.Core.Tests/Config/ConfigExtensionsTest.cs +++ /dev/null @@ -1,138 +0,0 @@ -// using Recyclarr.Config; -// using Recyclarr.Config.Models; -// using Recyclarr.Config.Parsing; -// using Recyclarr.TrashGuide; -// -// namespace Recyclarr.Core.Tests.Config; -// -// [TestFixture] -// public class ConfigExtensionsTest -// { -// [Test] -// public void Filter_invalid_instances() -// { -// var configs = new[] -// { -// new LoadedConfigYaml("valid_NAME", SupportedServices.Sonarr, new ServiceConfigYaml()), -// }; -// -// // Comparison should be case-insensitive -// var invalidInstanceNames = configs.GetNonExistentInstanceNames( -// new ConfigFilterCriteria { Instances = ["valid_name", "invalid_name"] } -// ); -// -// invalidInstanceNames.Should().BeEquivalentTo("invalid_name"); -// } -// -// [Test] -// public void Get_configs_matching_service_type_and_instance_name() -// { -// var configs = new IServiceConfiguration[] -// { -// new RadarrConfiguration { InstanceName = "radarr1" }, -// new RadarrConfiguration { InstanceName = "radarr2" }, -// new RadarrConfiguration { InstanceName = "radarr3" }, -// new RadarrConfiguration { InstanceName = "radarr4" }, -// new SonarrConfiguration { InstanceName = "sonarr1" }, -// new SonarrConfiguration { InstanceName = "sonarr2" }, -// new SonarrConfiguration { InstanceName = "sonarr3" }, -// new SonarrConfiguration { InstanceName = "sonarr4" }, -// }; -// -// var result = configs.GetConfigsBasedOnSettings( -// new ConfigFilterCriteria -// { -// Service = SupportedServices.Radarr, -// Instances = ["radarr2", "radarr4", "radarr5", "sonarr2"], -// } -// ); -// -// result.Select(x => x.InstanceName).Should().BeEquivalentTo("radarr2", "radarr4"); -// } -// -// [Test] -// public void Get_configs_based_on_settings_with_empty_instances() -// { -// var configs = new IServiceConfiguration[] -// { -// new RadarrConfiguration { InstanceName = "radarr1" }, -// new SonarrConfiguration { InstanceName = "sonarr1" }, -// }; -// -// var result = configs.GetConfigsBasedOnSettings( -// new ConfigFilterCriteria { Instances = Array.Empty() } -// ); -// -// result.Select(x => x.InstanceName).Should().BeEquivalentTo("radarr1", "sonarr1"); -// } -// -// [Test] -// public void Get_split_instance_names() -// { -// var configs = new IServiceConfiguration[] -// { -// new RadarrConfiguration -// { -// InstanceName = "radarr1", -// BaseUrl = new Uri("http://radarr1"), -// }, -// new RadarrConfiguration -// { -// InstanceName = "radarr2", -// BaseUrl = new Uri("http://radarr1"), -// }, -// new RadarrConfiguration -// { -// InstanceName = "radarr3", -// BaseUrl = new Uri("http://radarr3"), -// }, -// new RadarrConfiguration -// { -// InstanceName = "radarr4", -// BaseUrl = new Uri("http://radarr4"), -// }, -// new SonarrConfiguration -// { -// InstanceName = "sonarr1", -// BaseUrl = new Uri("http://sonarr1"), -// }, -// new SonarrConfiguration -// { -// InstanceName = "sonarr2", -// BaseUrl = new Uri("http://sonarr2"), -// }, -// new SonarrConfiguration -// { -// InstanceName = "sonarr3", -// BaseUrl = new Uri("http://sonarr2"), -// }, -// new SonarrConfiguration -// { -// InstanceName = "sonarr4", -// BaseUrl = new Uri("http://sonarr4"), -// }, -// }; -// -// var result = configs.GetSplitInstances(); -// -// result.Should().BeEquivalentTo("radarr1", "radarr2", "sonarr2", "sonarr3"); -// } -// -// [Test] -// public void Get_duplicate_instance_names() -// { -// var configs = new IServiceConfiguration[] -// { -// new RadarrConfiguration { InstanceName = "radarr1" }, -// new RadarrConfiguration { InstanceName = "radarr2" }, -// new RadarrConfiguration { InstanceName = "radarr2" }, -// new RadarrConfiguration { InstanceName = "radarr3" }, -// new SonarrConfiguration { InstanceName = "sonarr1" }, -// new SonarrConfiguration { InstanceName = "sonarr1" }, -// }; -// -// var result = configs.GetDuplicateInstanceNames(); -// -// result.Should().BeEquivalentTo("radarr2", "sonarr1"); -// } -// } diff --git a/tests/Recyclarr.Core.Tests/Config/EnvironmentVariables/EnvironmentVariableNotDefinedExceptionTest.cs b/tests/Recyclarr.Core.Tests/Config/EnvironmentVariables/EnvironmentVariableNotDefinedExceptionTest.cs index 3c7495d1..ee84390b 100644 --- a/tests/Recyclarr.Core.Tests/Config/EnvironmentVariables/EnvironmentVariableNotDefinedExceptionTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/EnvironmentVariables/EnvironmentVariableNotDefinedExceptionTest.cs @@ -2,8 +2,7 @@ using Recyclarr.Config.EnvironmentVariables; namespace Recyclarr.Core.Tests.Config.EnvironmentVariables; -[TestFixture] -public class EnvironmentVariableNotDefinedExceptionTest +internal sealed class EnvironmentVariableNotDefinedExceptionTest { [Test] public void Properties_get_initialized() diff --git a/tests/Recyclarr.Core.Tests/Config/Filtering/ConfigFiltersTest.cs b/tests/Recyclarr.Core.Tests/Config/Filtering/ConfigFiltersTest.cs index 24282d1d..a912e234 100644 --- a/tests/Recyclarr.Core.Tests/Config/Filtering/ConfigFiltersTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Filtering/ConfigFiltersTest.cs @@ -5,8 +5,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.Config.Filtering; -[TestFixture] -public class ConfigFiltersTest : IntegrationTestFixture +internal sealed class ConfigFiltersTest : IntegrationTestFixture { [Test] public void Filter_out_invalid_instances() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigValidationExecutorTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigValidationExecutorTest.cs index 5d55cc62..7e0af25b 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigValidationExecutorTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigValidationExecutorTest.cs @@ -6,8 +6,7 @@ using Recyclarr.Core.TestLibrary; namespace Recyclarr.Core.Tests.Config.Parsing; -[TestFixture] -public class ConfigValidationExecutorTest +internal sealed class ConfigValidationExecutorTest { [Test, AutoMockData] public void Return_false_on_validation_failure( diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlDataObjectsValidationTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlDataObjectsValidationTest.cs index a4f8b55e..0c501d07 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlDataObjectsValidationTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlDataObjectsValidationTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Config.Parsing; namespace Recyclarr.Core.Tests.Config.Parsing; -[TestFixture] -public class ConfigYamlDataObjectsValidationTest +internal sealed class ConfigYamlDataObjectsValidationTest { [Test] public void Quality_profile_format_upgrade_allowed_required() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlMapperProfileTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlMapperProfileTest.cs index 2a9a0f75..30304684 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlMapperProfileTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigYamlMapperProfileTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Config.Parsing; namespace Recyclarr.Core.Tests.Config.Parsing; -[TestFixture] -public class ConfigYamlMapperProfileTest +internal sealed class ConfigYamlMapperProfileTest { private static IMapper CreateMapper() { diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigurationFinderTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigurationFinderTest.cs index fbe0be12..d00858e4 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigurationFinderTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/ConfigurationFinderTest.cs @@ -5,8 +5,7 @@ using Recyclarr.Platform; namespace Recyclarr.Core.Tests.Config.Parsing; -[TestFixture] -public class ConfigurationFinderTest +internal sealed class ConfigurationFinderTest { private static IFileInfo[] GetYamlPaths(AppPaths paths) { diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessorTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessorTest.cs index 4bdb7765..e0a8e7af 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessorTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/ConfigIncludeProcessorTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Platform; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class ConfigIncludeProcessorTest +internal sealed class ConfigIncludeProcessorTest { [Test, AutoMockData] public void Throw_when_null_include_path(ConfigIncludeProcessor sut) diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeApiKeyTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeApiKeyTest.cs index bdfacbfc..75deb494 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeApiKeyTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeApiKeyTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeApiKeyTest +internal sealed class MergeApiKeyTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeBaseUrlTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeBaseUrlTest.cs index b95839d4..eec0dfe4 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeBaseUrlTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeBaseUrlTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeBaseUrlTest +internal sealed class MergeBaseUrlTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeCustomFormatsTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeCustomFormatsTest.cs index dd54a11e..fd789b77 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeCustomFormatsTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeCustomFormatsTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeCustomFormatsTest +internal sealed class MergeCustomFormatsTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingRadarrTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingRadarrTest.cs index edabde49..636a1e31 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingRadarrTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingRadarrTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeMediaNamingRadarrTest +internal sealed class MergeMediaNamingRadarrTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingSonarrTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingSonarrTest.cs index ccf6b725..afbd1088 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingSonarrTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeMediaNamingSonarrTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeMediaNamingSonarrTest +internal sealed class MergeMediaNamingSonarrTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityDefinitionTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityDefinitionTest.cs index b7c66f66..0cd04a00 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityDefinitionTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityDefinitionTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeQualityDefinitionTest +internal sealed class MergeQualityDefinitionTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityProfilesTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityProfilesTest.cs index f79eb01d..b3604029 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityProfilesTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/MergeQualityProfilesTest.cs @@ -5,8 +5,7 @@ using Recyclarr.Config.Parsing.PostProcessing.ConfigMerging; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class MergeQualityProfilesTest +internal sealed class MergeQualityProfilesTest { [Test] public void Empty_right_to_non_empty_left() diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessorTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessorTest.cs index 93b9a4ac..13949a17 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessorTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/TemplateIncludeProcessorTest.cs @@ -4,8 +4,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] -public class TemplateIncludeProcessorTest +internal sealed class TemplateIncludeProcessorTest { [Test, AutoMockData] public void Obtain_path_from_template( diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolverTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolverTest.cs index 8f847651..e3e22bdd 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolverTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ConfigMerging/YamlIncludeResolverTest.cs @@ -6,16 +6,15 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing.ConfigMerging; -[TestFixture] [SuppressMessage("Design", "CA1034:Nested types should not be visible")] [SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] -public class YamlIncludeResolverTest +internal sealed class YamlIncludeResolverTest { - public abstract class TestYamlInclude1 : IYamlInclude; + private abstract class TestYamlInclude1 : IYamlInclude; - public abstract class TestYamlInclude2 : IYamlInclude; + private abstract class TestYamlInclude2 : IYamlInclude; - public abstract class TestYamlInclude3 : IYamlInclude; + private abstract class TestYamlInclude3 : IYamlInclude; [Test, AutoMockData] public void Find_and_return_processor( diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessorTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessorTest.cs index 365c3bf3..7e3866f6 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessorTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/PostProcessing/ImplicitUrlAndKeyPostProcessorTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Config.Secrets; namespace Recyclarr.Core.Tests.Config.Parsing.PostProcessing; -[TestFixture] -public class ImplicitUrlAndKeyPostProcessorTest +internal sealed class ImplicitUrlAndKeyPostProcessorTest { [Test, AutoMockData] public void Update_only_base_url_when_absent( diff --git a/tests/Recyclarr.Core.Tests/Config/Parsing/YamlConfigValidatorTest.cs b/tests/Recyclarr.Core.Tests/Config/Parsing/YamlConfigValidatorTest.cs index 6b6fb193..c6f533bf 100644 --- a/tests/Recyclarr.Core.Tests/Config/Parsing/YamlConfigValidatorTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Parsing/YamlConfigValidatorTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Config.Parsing; namespace Recyclarr.Core.Tests.Config.Parsing; -[TestFixture] -public class YamlConfigValidatorTest +internal sealed class YamlConfigValidatorTest { [Test] public void Validation_succeeds() diff --git a/tests/Recyclarr.Core.Tests/Config/Secrets/SecretNotFoundExceptionTest.cs b/tests/Recyclarr.Core.Tests/Config/Secrets/SecretNotFoundExceptionTest.cs index 6c6b22e1..5d71bef7 100644 --- a/tests/Recyclarr.Core.Tests/Config/Secrets/SecretNotFoundExceptionTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Secrets/SecretNotFoundExceptionTest.cs @@ -2,8 +2,7 @@ using Recyclarr.Config.Secrets; namespace Recyclarr.Core.Tests.Config.Secrets; -[TestFixture] -public class SecretNotFoundExceptionTest +internal sealed class SecretNotFoundExceptionTest { [Test] public void Properties_get_initialized() diff --git a/tests/Recyclarr.Core.Tests/Config/Settings/SettingsLoaderTest.cs b/tests/Recyclarr.Core.Tests/Config/Settings/SettingsLoaderTest.cs index b29e5bb3..28fe221b 100644 --- a/tests/Recyclarr.Core.Tests/Config/Settings/SettingsLoaderTest.cs +++ b/tests/Recyclarr.Core.Tests/Config/Settings/SettingsLoaderTest.cs @@ -5,8 +5,7 @@ using Recyclarr.Yaml; namespace Recyclarr.Core.Tests.Config.Settings; -[TestFixture] -public class SettingsLoaderTest +internal sealed class SettingsLoaderTest { [Test, AutoMockData] public void Load_should_create_settings_file_if_not_exists( diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/BulkJsonLoaderIntegrationTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/BulkJsonLoaderIntegrationTest.cs index e5a744a4..0310a3dc 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/BulkJsonLoaderIntegrationTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/BulkJsonLoaderIntegrationTest.cs @@ -5,8 +5,7 @@ using Recyclarr.Json.Loading; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class BulkJsonLoaderIntegrationTest : IntegrationTestFixture +internal sealed class BulkJsonLoaderIntegrationTest : IntegrationTestFixture { [SuppressMessage("ReSharper", "NotAccessedPositionalProperty.Local")] private sealed record TestGuideObject(string TrashId, int TrashScore, string Name); diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigSaverTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigSaverTest.cs index 2c5a7b39..295e99f8 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigSaverTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigSaverTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Core.TestLibrary; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigSaverTest : IntegrationTestFixture +internal sealed class ConfigSaverTest : IntegrationTestFixture { [Test] public void Replace_file_when_already_exists() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigTemplateGuideServiceIntegrationTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigTemplateGuideServiceIntegrationTest.cs index e239a280..aceab858 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigTemplateGuideServiceIntegrationTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigTemplateGuideServiceIntegrationTest.cs @@ -6,8 +6,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigTemplateGuideServiceIntegrationTest : IntegrationTestFixture +internal sealed class ConfigTemplateGuideServiceIntegrationTest : IntegrationTestFixture { [Test, AutoMockData] public void Throw_when_templates_dir_does_not_exist(ConfigTemplateGuideService sut) diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderEnvVarTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderEnvVarTest.cs index 7fcd7078..7cd15e9b 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderEnvVarTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderEnvVarTest.cs @@ -4,8 +4,7 @@ using Recyclarr.Platform; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigurationLoaderEnvVarTest : IntegrationTestFixture +internal sealed class ConfigurationLoaderEnvVarTest : IntegrationTestFixture { [Test] public void Test_successful_environment_variable_loading() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderSecretsTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderSecretsTest.cs index 1ebdf019..9ff30027 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderSecretsTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderSecretsTest.cs @@ -5,8 +5,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigurationLoaderSecretsTest : IntegrationTestFixture +internal sealed class ConfigurationLoaderSecretsTest : IntegrationTestFixture { [Test] public void Test_secret_loading() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderTest.cs index a0173213..d6333042 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationLoaderTest.cs @@ -11,8 +11,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigurationLoaderTest : IntegrationTestFixture +internal sealed class ConfigurationLoaderTest : IntegrationTestFixture { protected override void RegisterStubsAndMocks(ContainerBuilder builder) { diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationRegistryTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationRegistryTest.cs index ad0bc74f..f55585f4 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationRegistryTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/ConfigurationRegistryTest.cs @@ -5,8 +5,7 @@ using Recyclarr.Core.TestLibrary; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class ConfigurationRegistryTest : IntegrationTestFixture +internal sealed class ConfigurationRegistryTest : IntegrationTestFixture { [Test] public void Use_explicit_paths_instead_of_default() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatLoaderIntegrationTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatLoaderIntegrationTest.cs index 542be5a6..58248831 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatLoaderIntegrationTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatLoaderIntegrationTest.cs @@ -7,8 +7,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class CustomFormatLoaderIntegrationTest : IntegrationTestFixture +internal sealed class CustomFormatLoaderIntegrationTest : IntegrationTestFixture { protected override void RegisterStubsAndMocks(ContainerBuilder builder) { diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatServiceTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatServiceTest.cs index 4d1e7a5e..ec6d3531 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatServiceTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/CustomFormatServiceTest.cs @@ -7,8 +7,7 @@ using Recyclarr.ServarrApi.CustomFormat; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class CustomFormatServiceTest : IntegrationTestFixture +internal sealed class CustomFormatServiceTest : IntegrationTestFixture { [Test] public async Task Get_can_parse_json() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/IncludePostProcessorIntegrationTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/IncludePostProcessorIntegrationTest.cs index f760e416..eb6df30e 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/IncludePostProcessorIntegrationTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/IncludePostProcessorIntegrationTest.cs @@ -6,8 +6,7 @@ using Recyclarr.Core.TestLibrary; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class IncludePostProcessorIntegrationTest : IntegrationTestFixture +internal sealed class IncludePostProcessorIntegrationTest : IntegrationTestFixture { [Test] public void No_change_when_no_includes() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideParserTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideParserTest.cs index ccf184a3..87ac2d3a 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideParserTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideParserTest.cs @@ -5,8 +5,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class QualitySizeGuideParserTest : IntegrationTestFixture +internal sealed class QualitySizeGuideParserTest : IntegrationTestFixture { [Test] public void Get_valid_data() diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideServiceTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideServiceTest.cs index 359966b2..0f79b886 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideServiceTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/QualitySizeGuideServiceTest.cs @@ -7,8 +7,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Core.Tests.IntegrationTests; -[TestFixture] -public class QualitySizeGuideServiceTest : IntegrationTestFixture +internal sealed class QualitySizeGuideServiceTest : IntegrationTestFixture { [TestCase(SupportedServices.Sonarr, "sonarr")] [TestCase(SupportedServices.Radarr, "radarr")] diff --git a/tests/Recyclarr.Core.Tests/IntegrationTests/TrashGuide/MediaNamingGuideServiceTest.cs b/tests/Recyclarr.Core.Tests/IntegrationTests/TrashGuide/MediaNamingGuideServiceTest.cs index 69149cf7..d299d467 100644 --- a/tests/Recyclarr.Core.Tests/IntegrationTests/TrashGuide/MediaNamingGuideServiceTest.cs +++ b/tests/Recyclarr.Core.Tests/IntegrationTests/TrashGuide/MediaNamingGuideServiceTest.cs @@ -6,8 +6,7 @@ using Recyclarr.TrashGuide.MediaNaming; namespace Recyclarr.Core.Tests.IntegrationTests.TrashGuide; -[TestFixture] -public class MediaNamingGuideServiceTest : IntegrationTestFixture +internal sealed class MediaNamingGuideServiceTest : IntegrationTestFixture { private void SetupMetadata() { diff --git a/tests/Recyclarr.Core.Tests/Json/JsonUtilsTest.cs b/tests/Recyclarr.Core.Tests/Json/JsonUtilsTest.cs index bbd0740a..b1ca2b81 100644 --- a/tests/Recyclarr.Core.Tests/Json/JsonUtilsTest.cs +++ b/tests/Recyclarr.Core.Tests/Json/JsonUtilsTest.cs @@ -4,8 +4,7 @@ using Recyclarr.TestLibrary; namespace Recyclarr.Core.Tests.Json; -[TestFixture] -public class JsonUtilsTest +internal sealed class JsonUtilsTest { [Test] public void Log_files_that_do_not_exist() diff --git a/tests/Recyclarr.Core.Tests/Platform/DefaultAppDataSetupTest.cs b/tests/Recyclarr.Core.Tests/Platform/DefaultAppDataSetupTest.cs index 12bdbd8e..465e77ca 100644 --- a/tests/Recyclarr.Core.Tests/Platform/DefaultAppDataSetupTest.cs +++ b/tests/Recyclarr.Core.Tests/Platform/DefaultAppDataSetupTest.cs @@ -4,8 +4,7 @@ using IEnvironment = Recyclarr.Platform.IEnvironment; namespace Recyclarr.Core.Tests.Platform; -[TestFixture] -public class DefaultAppDataSetupTest +internal sealed class DefaultAppDataSetupTest { [Test, AutoMockData] public void Initialize_using_default_path( diff --git a/tests/Recyclarr.Core.Tests/Repo/TrashRepoMetadataBuilderTest.cs b/tests/Recyclarr.Core.Tests/Repo/TrashRepoMetadataBuilderTest.cs index 1d22289d..2298c79e 100644 --- a/tests/Recyclarr.Core.Tests/Repo/TrashRepoMetadataBuilderTest.cs +++ b/tests/Recyclarr.Core.Tests/Repo/TrashRepoMetadataBuilderTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Repo; namespace Recyclarr.Core.Tests.Repo; -[TestFixture] -public class TrashRepoMetadataBuilderTest +internal sealed class TrashRepoMetadataBuilderTest { private const string MetadataJson = """ { diff --git a/tests/Recyclarr.Core.Tests/TrashGuide/ConfigTemplateGuideServiceTest.cs b/tests/Recyclarr.Core.Tests/TrashGuide/ConfigTemplateGuideServiceTest.cs index bf1b2c31..19fabea5 100644 --- a/tests/Recyclarr.Core.Tests/TrashGuide/ConfigTemplateGuideServiceTest.cs +++ b/tests/Recyclarr.Core.Tests/TrashGuide/ConfigTemplateGuideServiceTest.cs @@ -2,8 +2,7 @@ using Recyclarr.TrashGuide; namespace Recyclarr.Core.Tests.TrashGuide; -[TestFixture] -public class ConfigTemplateGuideServiceTest +internal sealed class ConfigTemplateGuideServiceTest { [Test, AutoMockData] public void Throw_when_templates_dir_does_not_exist(ConfigTemplateGuideService sut) diff --git a/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/CustomFormatCategoryParserTest.cs b/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/CustomFormatCategoryParserTest.cs index de68e547..fb4f8282 100644 --- a/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/CustomFormatCategoryParserTest.cs +++ b/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/CustomFormatCategoryParserTest.cs @@ -5,8 +5,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Core.Tests.TrashGuide.CustomFormat; -[TestFixture] -public class CustomFormatCategoryParserTest +internal sealed class CustomFormatCategoryParserTest { [Test, AutoMockData] public void It_works( diff --git a/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/NondeterministicValueConverterTest.cs b/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/NondeterministicValueConverterTest.cs index 292cf946..c3410340 100644 --- a/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/NondeterministicValueConverterTest.cs +++ b/tests/Recyclarr.Core.Tests/TrashGuide/CustomFormat/NondeterministicValueConverterTest.cs @@ -3,8 +3,7 @@ using Recyclarr.TrashGuide.CustomFormat; namespace Recyclarr.Core.Tests.TrashGuide.CustomFormat; -[Parallelizable(ParallelScope.All)] -public class NondeterministicValueConverterTest +internal sealed class NondeterministicValueConverterTest { private JsonSerializerOptions _options = default!; diff --git a/tests/Recyclarr.Core.Tests/TrashGuide/QualitySize/QualityItemWithLimitsTest.cs b/tests/Recyclarr.Core.Tests/TrashGuide/QualitySize/QualityItemWithLimitsTest.cs index fbb9e927..f299032c 100644 --- a/tests/Recyclarr.Core.Tests/TrashGuide/QualitySize/QualityItemWithLimitsTest.cs +++ b/tests/Recyclarr.Core.Tests/TrashGuide/QualitySize/QualityItemWithLimitsTest.cs @@ -3,8 +3,7 @@ using Recyclarr.TrashGuide.QualitySize; namespace Recyclarr.Core.Tests.TrashGuide.QualitySize; -[TestFixture] -public class QualityItemWithLimitsTest +internal sealed class QualityItemWithLimitsTest { private static readonly object[] MaxTestValues = [ diff --git a/tests/Recyclarr.Core.Tests/VersionControl/GitPathTest.cs b/tests/Recyclarr.Core.Tests/VersionControl/GitPathTest.cs index 7f72de0d..852572e4 100644 --- a/tests/Recyclarr.Core.Tests/VersionControl/GitPathTest.cs +++ b/tests/Recyclarr.Core.Tests/VersionControl/GitPathTest.cs @@ -3,8 +3,7 @@ using Recyclarr.Settings; namespace Recyclarr.Core.Tests.VersionControl; -[TestFixture] -public class GitPathTest +internal sealed class GitPathTest { [Test, AutoMockData] public void Default_path_used_when_setting_is_null( diff --git a/tests/Recyclarr.TestLibrary/AutoFixture/AutoMockDataAttribute.cs b/tests/Recyclarr.TestLibrary/AutoFixture/AutoMockDataAttribute.cs index 58605e1d..8b8e173f 100644 --- a/tests/Recyclarr.TestLibrary/AutoFixture/AutoMockDataAttribute.cs +++ b/tests/Recyclarr.TestLibrary/AutoFixture/AutoMockDataAttribute.cs @@ -2,6 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Reflection; using Autofac; using AutoFixture; +using AutoFixture.NUnit4; namespace Recyclarr.TestLibrary.AutoFixture; diff --git a/tests/Recyclarr.TestLibrary/AutoFixture/AutofacSpecimenBuilder.cs b/tests/Recyclarr.TestLibrary/AutoFixture/AutofacSpecimenBuilder.cs index ddf50a35..fa327156 100644 --- a/tests/Recyclarr.TestLibrary/AutoFixture/AutofacSpecimenBuilder.cs +++ b/tests/Recyclarr.TestLibrary/AutoFixture/AutofacSpecimenBuilder.cs @@ -4,7 +4,7 @@ using AutoFixture.Kernel; namespace Recyclarr.TestLibrary.AutoFixture; -public class AutofacSpecimenBuilder(ILifetimeScope container) : ISpecimenBuilder +internal class AutofacSpecimenBuilder(ILifetimeScope container) : ISpecimenBuilder { public object Create(object request, ISpecimenContext context) { diff --git a/tests/Recyclarr.TestLibrary/AutoFixture/CustomizeWithAttribute.cs b/tests/Recyclarr.TestLibrary/AutoFixture/CustomizeWithAttribute.cs index a016ecb3..cf7fe6d0 100644 --- a/tests/Recyclarr.TestLibrary/AutoFixture/CustomizeWithAttribute.cs +++ b/tests/Recyclarr.TestLibrary/AutoFixture/CustomizeWithAttribute.cs @@ -1,5 +1,6 @@ using System.Reflection; using AutoFixture; +using AutoFixture.NUnit4; namespace Recyclarr.TestLibrary.AutoFixture; diff --git a/tests/Recyclarr.TestLibrary/AutoFixture/InlineAutoMockDataAttribute.cs b/tests/Recyclarr.TestLibrary/AutoFixture/InlineAutoMockDataAttribute.cs index fa7cfd76..d0c37abd 100644 --- a/tests/Recyclarr.TestLibrary/AutoFixture/InlineAutoMockDataAttribute.cs +++ b/tests/Recyclarr.TestLibrary/AutoFixture/InlineAutoMockDataAttribute.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using AutoFixture.NUnit4; namespace Recyclarr.TestLibrary.AutoFixture; diff --git a/tests/Recyclarr.TestLibrary/AutoFixture/MockFileSystemSpecimenBuilder.cs b/tests/Recyclarr.TestLibrary/AutoFixture/MockFileSystemSpecimenBuilder.cs index ee2be73e..acb9f8f3 100644 --- a/tests/Recyclarr.TestLibrary/AutoFixture/MockFileSystemSpecimenBuilder.cs +++ b/tests/Recyclarr.TestLibrary/AutoFixture/MockFileSystemSpecimenBuilder.cs @@ -1,4 +1,5 @@ using System.IO.Abstractions; +using System.IO.Abstractions.TestingHelpers; using AutoFixture; namespace Recyclarr.TestLibrary.AutoFixture; diff --git a/tests/Recyclarr.TestLibrary/Autofac/AutofacTestExtensions.cs b/tests/Recyclarr.TestLibrary/Autofac/AutofacTestExtensions.cs index 7043583b..153055bb 100644 --- a/tests/Recyclarr.TestLibrary/Autofac/AutofacTestExtensions.cs +++ b/tests/Recyclarr.TestLibrary/Autofac/AutofacTestExtensions.cs @@ -1,4 +1,5 @@ using Autofac; +using NSubstitute; namespace Recyclarr.TestLibrary.Autofac; diff --git a/tests/Recyclarr.TestLibrary/FileUtils.cs b/tests/Recyclarr.TestLibrary/FileUtils.cs index 721fc6e7..23aab52f 100644 --- a/tests/Recyclarr.TestLibrary/FileUtils.cs +++ b/tests/Recyclarr.TestLibrary/FileUtils.cs @@ -1,3 +1,4 @@ +using System.IO.Abstractions.TestingHelpers; using System.Text.RegularExpressions; namespace Recyclarr.TestLibrary; diff --git a/tests/Recyclarr.TestLibrary/MockData.cs b/tests/Recyclarr.TestLibrary/MockData.cs index e1fbb2c6..ac98357e 100644 --- a/tests/Recyclarr.TestLibrary/MockData.cs +++ b/tests/Recyclarr.TestLibrary/MockData.cs @@ -1,3 +1,4 @@ +using System.IO.Abstractions.TestingHelpers; using System.Text.Json; namespace Recyclarr.TestLibrary; diff --git a/tests/Recyclarr.TestLibrary/MockFileSystemExtensions.cs b/tests/Recyclarr.TestLibrary/MockFileSystemExtensions.cs index dd3dc8cf..0303c3fa 100644 --- a/tests/Recyclarr.TestLibrary/MockFileSystemExtensions.cs +++ b/tests/Recyclarr.TestLibrary/MockFileSystemExtensions.cs @@ -1,4 +1,5 @@ using System.IO.Abstractions; +using System.IO.Abstractions.TestingHelpers; namespace Recyclarr.TestLibrary; diff --git a/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj b/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj index 8aed2c20..e4d2181d 100644 --- a/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj +++ b/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj @@ -1,6 +1,15 @@ + + + + + + + + + diff --git a/tests/Recyclarr.TestLibrary/TestableLogger.cs b/tests/Recyclarr.TestLibrary/TestableLogger.cs index 69b42bb6..5e225564 100644 --- a/tests/Recyclarr.TestLibrary/TestableLogger.cs +++ b/tests/Recyclarr.TestLibrary/TestableLogger.cs @@ -1,4 +1,5 @@ using System.Globalization; +using Serilog; using Serilog.Core; using Serilog.Events;