You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
62 lines
1.6 KiB
2 years ago
|
using System.Diagnostics.CodeAnalysis;
|
||
|
using Autofac;
|
||
2 years ago
|
using FluentAssertions;
|
||
2 years ago
|
using FluentValidation;
|
||
2 years ago
|
using NUnit.Framework;
|
||
|
using Recyclarr.Cli.TestLibrary;
|
||
2 years ago
|
using Recyclarr.TrashLib.Config.Parsing;
|
||
|
using Recyclarr.TrashLib.Config.Services;
|
||
2 years ago
|
using Recyclarr.TrashLib.TestLibrary;
|
||
|
|
||
2 years ago
|
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
|
||
2 years ago
|
|
||
|
[TestFixture]
|
||
|
[Parallelizable(ParallelScope.All)]
|
||
|
public class ConfigValidationExecutorTest : IntegrationFixture
|
||
|
{
|
||
2 years ago
|
[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();
|
||
|
}
|
||
|
|
||
2 years ago
|
[Test]
|
||
2 years ago
|
public void Return_false_on_validation_failure()
|
||
2 years ago
|
{
|
||
2 years ago
|
var validator = Resolve<TestValidator>();
|
||
|
validator.ShouldSucceed = false;
|
||
|
|
||
2 years ago
|
var sut = Resolve<ConfigValidationExecutor>();
|
||
|
|
||
2 years ago
|
var result = sut.Validate(new TestConfig());
|
||
2 years ago
|
|
||
|
result.Should().BeFalse();
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void Valid_returns_true()
|
||
|
{
|
||
2 years ago
|
var validator = Resolve<TestValidator>();
|
||
|
validator.ShouldSucceed = true;
|
||
|
|
||
2 years ago
|
var sut = Resolve<ConfigValidationExecutor>();
|
||
|
|
||
2 years ago
|
var result = sut.Validate(new TestConfig());
|
||
2 years ago
|
|
||
|
result.Should().BeTrue();
|
||
|
}
|
||
|
}
|