using Recyclarr.TrashLib.Config; using Recyclarr.TrashLib.Config.Parsing; using Recyclarr.TrashLib.Config.Services; using Recyclarr.TrashLib.Config.Services.Radarr; using Recyclarr.TrashLib.Config.Services.Sonarr; using Recyclarr.TrashLib.Processors; using Recyclarr.TrashLib.TestLibrary; namespace Recyclarr.TrashLib.Tests.Config.Parsing; [TestFixture] [Parallelizable(ParallelScope.All)] public class ConfigRegistryTest { [Test] public void Get_configs_by_type() { var configs = new IServiceConfiguration[] { new SonarrConfiguration {InstanceName = "one"}, new SonarrConfiguration {InstanceName = "two"}, new RadarrConfiguration {InstanceName = "three"} }; var sut = new ConfigRegistry(); foreach (var c in configs) { sut.Add(c); } var result = sut.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr()); result.Should().Equal(configs.Take(2)); } [Test] public void Null_service_type_returns_configs_of_all_types() { var configs = new IServiceConfiguration[] { new SonarrConfiguration {InstanceName = "one"}, new SonarrConfiguration {InstanceName = "two"}, new RadarrConfiguration {InstanceName = "three"} }; var sut = new ConfigRegistry(); foreach (var c in configs) { sut.Add(c); } var result = sut.GetConfigsBasedOnSettings(MockSyncSettings.AnyService()); result.Should().Equal(configs); } [Test] public void Get_empty_collection_when_no_configs_of_type() { var sut = new ConfigRegistry(); sut.Add(new SonarrConfiguration()); var settings = Substitute.For(); settings.Service.Returns(SupportedServices.Radarr); var result = sut.GetConfigsBasedOnSettings(settings); result.Should().BeEmpty(); } [Test] public void Get_configs_by_type_and_instance_name() { var configs = new IServiceConfiguration[] { new SonarrConfiguration {InstanceName = "one"}, new SonarrConfiguration {InstanceName = "two"}, new RadarrConfiguration {InstanceName = "three"} }; var sut = new ConfigRegistry(); foreach (var c in configs) { sut.Add(c); } var result = sut.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr("one")); result.Should().Equal(configs.Take(1)); } [Test] public void Instance_matching_should_be_case_insensitive() { var configs = new IServiceConfiguration[] { new SonarrConfiguration {InstanceName = "one"} }; var sut = new ConfigRegistry(); foreach (var c in configs) { sut.Add(c); } var result = sut.GetConfigsBasedOnSettings(MockSyncSettings.AnyService("ONE")); result.Should().Equal(configs); } }