Skip to content

Commit

Permalink
Added AbstractValidatorExtensions tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuck committed Mar 22, 2023
1 parent 0192ba4 commit 57c0cf4
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ public static class AbstractValidatorExtensions
{
public static Result<T> GetResult<T>(this AbstractValidator<T> validator, T item)
{
if (validator == null)
throw new ArgumentNullException(nameof(validator));

var validationResult = validator.Validate(item);
var result = BuildResult(validationResult, item);

Expand All @@ -20,6 +23,9 @@ public static Result<T> GetResult<T>(this AbstractValidator<T> validator, T item

public static async Task<Result<T>> GetResult<T>(this AbstractValidator<T> validator, T item, CancellationToken cancellationToken)
{
if (validator == null)
throw new ArgumentNullException(nameof(validator));

var validationResult = await validator.ValidateAsync(item, cancellationToken);
var result = BuildResult(validationResult, item);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using FluentValidation;
using NUnit.Framework;
using YuckQi.Domain.Validation.Extensions;

namespace YuckQi.Domain.Validation.UnitTests.Extensions;

public class AbstractValidatorExtensionsTests
{
public class StringValidator : AbstractValidator<String>
{
public StringValidator()
{
RuleFor(t => t.Length).GreaterThan(1).WithMessage("it is too short");
}
}

[SetUp]
public void Setup() { }

[Test]
public void AbstractValidator_GetResultWithValidItem_IsValid()
{
var validator = new StringValidator();
var result = validator.GetResult("hello");

Assert.That(result.IsValid, Is.True);
}

[Test]
public async Task AbstractValidator_GetResultAsyncWithValidItem_IsValid()
{
var validator = new StringValidator();
var result = await validator.GetResult("hello", CancellationToken.None);

Assert.That(result.IsValid, Is.True);
}

[Test]
public void AbstractValidator_GetResultWithInvalidItem_HasDetail()
{
var validator = new StringValidator();
var result = validator.GetResult(String.Empty);

Assert.That(result.IsValid, Is.False);
Assert.That(result.Detail, Is.Not.Empty);
}

[Test]
public void AbstractValidator_GetResultWithNullReference_ThrowsException()
{
Assert.That(() => AbstractValidatorExtensions.GetResult(null!, String.Empty), Throws.ArgumentNullException);
}

[Test]
public void AbstractValidator_GetResultAsyncWithNullReference_ThrowsException()
{
Assert.That(() => AbstractValidatorExtensions.GetResult(null!, String.Empty, CancellationToken.None), Throws.ArgumentNullException);
}
}

0 comments on commit 57c0cf4

Please sign in to comment.