test: Fix or remove disabled tests

pull/201/head
Robert Dailey 2 years ago
parent 08a5de773d
commit 38e7980dbe

@ -1,110 +0,0 @@
// using Recyclarr.TrashLib.Config;
// using Recyclarr.TrashLib.Config.Parsing;
// using Recyclarr.TrashLib.Config.Services;
// 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 ConfigExtensions();
// 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 ConfigExtensions();
// 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 ConfigExtensions();
// sut.Add(new SonarrConfiguration());
//
// var settings = Substitute.For<ISyncSettings>();
// 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 ConfigExtensions();
// 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 ConfigExtensions();
// foreach (var c in configs)
// {
// sut.Add(c);
// }
//
// var result = sut.GetConfigsBasedOnSettings(MockSyncSettings.AnyService("ONE"));
//
// result.Should().Equal(configs);
// }
// }

@ -1,60 +1,54 @@
// using System.Diagnostics.CodeAnalysis;
// using Autofac;
// using FluentValidation;
// using Recyclarr.Cli.TestLibrary;
// using Recyclarr.TrashLib.Config.Parsing;
// using Recyclarr.TrashLib.Config.Services;
//
// namespace Recyclarr.TrashLib.Tests.Config.Parsing;
//
// [TestFixture]
// [Parallelizable(ParallelScope.All)]
// public class ConfigValidationExecutorTest : IntegrationFixture
// {
// [SuppressMessage("Design", "CA1812", Justification = "Instantiated via reflection in unit test")]
// private sealed class TestValidator : AbstractValidator<ServiceConfiguration>
// {
// public bool ShouldSucceed { get; set; }
//
// public TestValidator()
// {
// RuleFor(x => x).Must(_ => ShouldSucceed);
// }
// }
//
// protected override void RegisterExtraTypes(ContainerBuilder builder)
// {
// builder.RegisterType<TestValidator>()
// .AsSelf()
// .As<IValidator<ServiceConfiguration>>()
// .SingleInstance();
// }
//
// [Test]
// public void Return_false_on_validation_failure()
// {
// var validator = Resolve<TestValidator>();
// validator.ShouldSucceed = false;
//
// var sut = Resolve<ConfigValidationExecutor>();
//
// var result = sut.Validate(new RadarrConfiguration());
//
// result.Should().BeFalse();
// }
//
// [Test]
// public void Valid_returns_true()
// {
// var validator = Resolve<TestValidator>();
// validator.ShouldSucceed = true;
//
// var sut = Resolve<ConfigValidationExecutor>();
//
// var result = sut.Validate(new RadarrConfiguration());
//
// result.Should().BeTrue();
// }
// }
using FluentValidation;
using FluentValidation.Results;
using Recyclarr.Common.FluentValidation;
using Recyclarr.TrashLib.Config.Parsing;
using Recyclarr.TrashLib.Config.Services;
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
[TestFixture]
[Parallelizable(ParallelScope.All)]
public class ConfigValidationExecutorTest
{
[Test, AutoMockData]
public void Return_false_on_validation_failure(
[Frozen] IRuntimeValidationService validationService,
ConfigValidationExecutor sut)
{
validationService.Validate(default!).ReturnsForAnyArgs(new ValidationResult(new[]
{
new ValidationFailure("property", "message")
}));
var result = sut.Validate(new RadarrConfiguration());
result.Should().BeFalse();
}
[Test, AutoMockData]
public void Return_true_when_severity_is_warning(
[Frozen] IRuntimeValidationService validationService,
ConfigValidationExecutor sut)
{
validationService.Validate(default!).ReturnsForAnyArgs(new ValidationResult(new[]
{
new ValidationFailure("property", "message") {Severity = Severity.Warning}
}));
var result = sut.Validate(new RadarrConfiguration());
result.Should().BeTrue();
}
[Test, AutoMockData]
public void Valid_returns_true(
[Frozen] IRuntimeValidationService validationService,
ConfigValidationExecutor sut)
{
validationService.Validate(default!).ReturnsForAnyArgs(new ValidationResult());
var result = sut.Validate(new RadarrConfiguration());
result.Should().BeTrue();
}
}

@ -1,189 +1,171 @@
// using Recyclarr.Cli.TestLibrary;
// using Recyclarr.Common;
// using Recyclarr.TrashLib.Config.EnvironmentVariables;
// using Recyclarr.TrashLib.Config.Parsing;
// using Recyclarr.TrashLib.TestLibrary;
// using YamlDotNet.Core;
//
// namespace Recyclarr.TrashLib.Tests.Config.Parsing;
//
// [TestFixture]
// [Parallelizable(ParallelScope.All)]
// public class ConfigurationLoaderEnvVarTest : IntegrationFixture
// {
// [Test]
// public void Test_successful_environment_variable_loading()
// {
// var env = Resolve<IEnvironment>();
// env.GetEnvironmentVariable("SONARR_API_KEY").Returns("the_api_key");
// env.GetEnvironmentVariable("SONARR_URL").Returns("http://the_url");
//
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// api_key: !env_var SONARR_API_KEY
// base_url: !env_var SONARR_URL http://sonarr:1233
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://the_url"),
// ApiKey = "the_api_key"
// }
// });
// }
//
// [Test]
// public void Use_default_value_if_env_var_not_defined()
// {
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL http://sonarr:1233
// api_key: value
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://sonarr:1233")
// }
// });
// }
//
// [Test]
// public void Default_value_with_spaces_is_allowed()
// {
// var env = Resolve<IEnvironment>();
// env.GetEnvironmentVariable("SONARR_URL").Returns("");
//
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL http://somevalue
// api_key: value
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://somevalue")
// }
// });
// }
//
// [Test]
// public void Quotation_characters_are_stripped_from_default_value()
// {
// var env = Resolve<IEnvironment>();
// env.GetEnvironmentVariable("SONARR_URL").Returns("");
//
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL ""http://theurl""
// api_key: !env_var SONARR_API 'the key'
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://theurl"),
// ApiKey = "the key"
// }
// });
// }
//
// [Test]
// public void Multiple_spaces_between_default_and_env_var_work()
// {
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL http://somevalue
// api_key: value
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://somevalue")
// }
// });
// }
//
// [Test]
// public void Tab_characters_are_stripped()
// {
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = $@"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL {"\t"}http://somevalue
// api_key: value
// ";
//
// var configCollection = sut.Load(new StringReader(testYml));
//
// var config = configCollection.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr());
// config.Should().BeEquivalentTo(new[]
// {
// new
// {
// BaseUrl = new Uri("http://somevalue")
// }
// });
// }
//
// [Test]
// public void Throw_when_no_env_var_and_no_default()
// {
// var sut = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance:
// base_url: !env_var SONARR_URL
// api_key: value
// ";
//
// var act = () => sut.Load(new StringReader(testYml));
//
// act.Should().Throw<YamlException>()
// .WithInnerException<EnvironmentVariableNotDefinedException>();
// }
// }
using Recyclarr.Common;
using Recyclarr.TrashLib.Config.Parsing;
using Recyclarr.TrashLib.TestLibrary;
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
[TestFixture]
[Parallelizable(ParallelScope.All)]
public class ConfigurationLoaderEnvVarTest : TrashLibIntegrationFixture
{
[Test]
public void Test_successful_environment_variable_loading()
{
var env = Resolve<IEnvironment>();
env.GetEnvironmentVariable("SONARR_API_KEY").Returns("the_api_key");
env.GetEnvironmentVariable("SONARR_URL").Returns("http://the_url");
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
api_key: !env_var SONARR_API_KEY
base_url: !env_var SONARR_URL http://sonarr:1233
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://the_url"),
ApiKey = "the_api_key"
}
});
}
[Test]
public void Use_default_value_if_env_var_not_defined()
{
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
base_url: !env_var SONARR_URL http://sonarr:1233
api_key: value
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://sonarr:1233")
}
});
}
[Test]
public void Default_value_with_spaces_is_allowed()
{
var env = Resolve<IEnvironment>();
env.GetEnvironmentVariable("SONARR_URL").Returns("");
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
base_url: !env_var SONARR_URL http://somevalue
api_key: value
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://somevalue")
}
});
}
[Test]
public void Quotation_characters_are_stripped_from_default_value()
{
var env = Resolve<IEnvironment>();
env.GetEnvironmentVariable("SONARR_URL").Returns("");
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
base_url: !env_var SONARR_URL ""http://theurl""
api_key: !env_var SONARR_API 'the key'
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://theurl"),
ApiKey = "the key"
}
});
}
[Test]
public void Multiple_spaces_between_default_and_env_var_work()
{
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
base_url: !env_var SONARR_URL http://somevalue
api_key: value
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://somevalue")
}
});
}
[Test]
public void Tab_characters_are_stripped()
{
var sut = Resolve<ConfigurationLoader>();
const string testYml = $@"
sonarr:
instance:
base_url: !env_var SONARR_URL {"\t"}http://somevalue
api_key: value
";
var config = sut.Load(testYml);
config.Should().BeEquivalentTo(new[]
{
new
{
BaseUrl = new Uri("http://somevalue")
}
});
}
[Test]
public void No_configs_returned_when_no_env_var_and_no_default()
{
var sut = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance:
base_url: !env_var SONARR_URL
api_key: value
";
var result = sut.Load(testYml);
result.Should().BeEmpty();
}
}

@ -1,138 +1,127 @@
// using Recyclarr.Cli.TestLibrary;
// using Recyclarr.TrashLib.Config.Parsing;
// using Recyclarr.TrashLib.Config.Secrets;
// using Recyclarr.TrashLib.Config.Services;
// using Recyclarr.TrashLib.TestLibrary;
// using Serilog.Sinks.TestCorrelator;
// using YamlDotNet.Core;
//
// namespace Recyclarr.TrashLib.Tests.Config.Parsing;
//
// [TestFixture]
// [Parallelizable(ParallelScope.All)]
// public class ConfigurationLoaderSecretsTest : IntegrationFixture
// {
// [Test]
// public void Test_secret_loading()
// {
// var configLoader = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance1:
// api_key: !secret api_key
// base_url: !secret 123GARBAGE_
// release_profiles:
// - trash_ids:
// - !secret secret_rp
// ";
//
// const string secretsYml = @"
// api_key: 95283e6b156c42f3af8a9b16173f876b
// 123GARBAGE_: 'https://radarr:7878'
// secret_rp: 1234567
// ";
//
// Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
// var expected = new List<SonarrConfiguration>
// {
// new()
// {
// InstanceName = "instance1",
// ApiKey = "95283e6b156c42f3af8a9b16173f876b",
// BaseUrl = new Uri("https://radarr:7878"),
// ReleaseProfiles = new List<ReleaseProfileConfig>
// {
// new()
// {
// TrashIds = new[] {"1234567"}
// }
// }
// }
// };
//
// var parsedSecret = configLoader.Load(new StringReader(testYml), "sonarr");
// parsedSecret.GetConfigsBasedOnSettings(MockSyncSettings.Sonarr())
// .Should().BeEquivalentTo(expected);
// }
//
// [Test]
// public void Throw_when_referencing_invalid_secret()
// {
// using var logContext = TestCorrelator.CreateContext();
// var configLoader = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance2:
// api_key: !secret api_key
// base_url: fake_url
// ";
//
// const string secretsYml = "no_api_key: 95283e6b156c42f3af8a9b16173f876b";
//
// Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
//
// var act = () => configLoader.Load(new StringReader(testYml), "sonarr");
//
// act.Should().Throw<YamlException>()
// .WithInnerException<SecretNotFoundException>()
// .WithMessage("*api_key is not defined in secrets.yml");
// }
//
// [Test]
// public void Throw_when_referencing_secret_without_secrets_file()
// {
// var configLoader = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance3:
// api_key: !secret api_key
// base_url: fake_url
// ";
//
// Action act = () => configLoader.Load(new StringReader(testYml), "sonarr");
// act.Should().Throw<YamlException>()
// .WithInnerException<SecretNotFoundException>()
// .WithMessage("*api_key is not defined in secrets.yml");
// }
//
// [Test]
// public void Throw_when_secret_value_is_not_scalar()
// {
// var configLoader = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance4:
// api_key: !secret { property: value }
// base_url: fake_url
// ";
//
// Action act = () => configLoader.Load(new StringReader(testYml), "sonarr");
// act.Should().Throw<YamlException>().WithMessage("Expected 'Scalar'*");
// }
//
// [Test]
// public void Throw_when_expected_value_is_not_scalar()
// {
// var configLoader = Resolve<ConfigurationLoader>();
//
// const string testYml = @"
// sonarr:
// instance5:
// api_key: fake_key
// base_url: fake_url
// release_profiles: !secret bogus_profile
// ";
//
// const string secretsYml = @"bogus_profile: 95283e6b156c42f3af8a9b16173f876b";
//
// Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
// Action act = () => configLoader.Load(new StringReader(testYml), "sonarr");
// act.Should().Throw<YamlException>().WithMessage("Exception during deserialization");
// }
// }
using Recyclarr.TrashLib.Config;
using Recyclarr.TrashLib.Config.Parsing;
using Recyclarr.TrashLib.TestLibrary;
using Serilog.Sinks.TestCorrelator;
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
[TestFixture]
[Parallelizable(ParallelScope.All)]
public class ConfigurationLoaderSecretsTest : TrashLibIntegrationFixture
{
[Test]
public void Test_secret_loading()
{
var configLoader = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance1:
api_key: !secret api_key
base_url: !secret 123GARBAGE_
release_profiles:
- trash_ids:
- !secret secret_rp
";
const string secretsYml = @"
api_key: 95283e6b156c42f3af8a9b16173f876b
123GARBAGE_: 'https://radarr:7878'
secret_rp: 1234567
";
Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
var expected = new[]
{
new
{
InstanceName = "instance1",
ApiKey = "95283e6b156c42f3af8a9b16173f876b",
BaseUrl = new Uri("https://radarr:7878"),
ReleaseProfiles = new[]
{
new
{
TrashIds = new[] {"1234567"}
}
}
}
};
var parsedSecret = configLoader.Load(() => new StringReader(testYml), SupportedServices.Sonarr);
parsedSecret.Should().BeEquivalentTo(expected);
}
[Test]
public void Throw_when_referencing_invalid_secret()
{
using var logContext = TestCorrelator.CreateContext();
var configLoader = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance2:
api_key: !secret api_key
base_url: fake_url
";
const string secretsYml = "no_api_key: 95283e6b156c42f3af8a9b16173f876b";
Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
var result = configLoader.Load(() => new StringReader(testYml), SupportedServices.Sonarr);
result.Should().BeEmpty();
}
[Test]
public void Throw_when_referencing_secret_without_secrets_file()
{
var configLoader = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance3:
api_key: !secret api_key
base_url: fake_url
";
var result = configLoader.Load(() => new StringReader(testYml), SupportedServices.Sonarr);
result.Should().BeEmpty();
}
[Test]
public void No_config_loaded_when_secret_value_is_not_scalar()
{
var configLoader = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance4:
api_key: !secret { property: value }
base_url: fake_url
";
var result = configLoader.Load(() => new StringReader(testYml), SupportedServices.Sonarr);
result.Should().BeEmpty();
}
[Test]
public void No_config_loaded_when_resolved_value_is_not_correct()
{
var configLoader = Resolve<ConfigurationLoader>();
const string testYml = @"
sonarr:
instance5:
api_key: fake_key
base_url: fake_url
release_profiles: !secret bogus_profile
";
const string secretsYml = @"bogus_profile: 95283e6b156c42f3af8a9b16173f876b";
Fs.AddFile(Paths.SecretsPath.FullName, new MockFileData(secretsYml));
var result = configLoader.Load(() => new StringReader(testYml), SupportedServices.Sonarr);
result.Should().BeEmpty();
}
}

Loading…
Cancel
Save