refactor (readonly for static objects in tests and file-scoped namespaces

This commit is contained in:
2024-09-22 17:34:29 +03:00
parent 1625764e0a
commit a80076e2e6
50 changed files with 1196 additions and 1246 deletions

View File

@@ -7,165 +7,164 @@ using FluentValidation;
using VisaApi.Fakers.Applicants.Requests;
using Xunit;
namespace VisaApi.Tests.Application.Validation.Applicants
namespace VisaApi.Tests.Application.Validation.Applicants;
public class NameModelValidatorTests
{
public class NameModelValidatorTests
private readonly static IValidator<NameModel> validator = new NameModelValidator();
private readonly static NameModelFaker faker = new();
/// <summary>
/// Test for <see cref="NameModel"/> validator that should throw for empty first name
/// </summary>
[Fact]
private async Task ValidateForEmptyFirstNameShouldThrow()
{
private static IValidator<NameModel> validator = new NameModelValidator();
private static NameModelFaker faker = new();
var name = faker.Generate();
name.FirstName = null!;
/// <summary>
/// Test for <see cref="NameModel"/> validator that should throw for empty first name
/// </summary>
[Fact]
private async Task ValidateForEmptyFirstNameShouldThrow()
{
var name = faker.Generate();
name.FirstName = null!;
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should throw for empty surname
/// </summary>
[Fact]
private async Task ValidateForEmptySurnameShouldThrow()
{
var name = faker.Generate();
name.Surname = null!;
/// <summary>
/// Test for <see cref="NameModel"/> validator that should throw for empty surname
/// </summary>
[Fact]
private async Task ValidateForEmptySurnameShouldThrow()
{
var name = faker.Generate();
name.Surname = null!;
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return no errors for empty patronymic
/// </summary>
[Fact]
private async Task ValidateForEmptyPatronymicShouldReturnNoErrors()
{
var name = faker.Generate();
name.Patronymic = null;
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return no errors for empty patronymic
/// </summary>
[Fact]
private async Task ValidateForEmptyPatronymicShouldReturnNoErrors()
{
var name = faker.Generate();
name.Patronymic = null;
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().BeEmpty();
}
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().BeEmpty();
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long first name
/// </summary>
[Fact]
private async Task ValidateForLongFirstNameShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.FirstName = stringBuilder.ToString();
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long first name
/// </summary>
[Fact]
private async Task ValidateForLongFirstNameShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.FirstName = stringBuilder.ToString();
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long surname
/// </summary>
[Fact]
private async Task ValidateForLongSurnameShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.Surname = stringBuilder.ToString();
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long surname
/// </summary>
[Fact]
private async Task ValidateForLongSurnameShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.Surname = stringBuilder.ToString();
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long patronymic
/// </summary>
[Fact]
private async Task ValidateForLongPatronymicShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.Patronymic = stringBuilder.ToString();
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for too long patronymic
/// </summary>
[Fact]
private async Task ValidateForLongPatronymicShouldReturnError()
{
var name = faker.Generate();
var stringBuilder = new StringBuilder();
stringBuilder.Append('h', ConfigurationConstraints.NameLength + 1);
name.Patronymic = stringBuilder.ToString();
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid firstname
/// </summary>
[Fact]
private async Task ValidateForNotValidFirstNameShouldReturnError()
{
var name = faker.Generate();
name.FirstName = "&&7!**|";
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid firstname
/// </summary>
[Fact]
private async Task ValidateForNotValidFirstNameShouldReturnError()
{
var name = faker.Generate();
name.FirstName = "&&7!**|";
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.FirstName))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid surname
/// </summary>
[Fact]
private async Task ValidateForNotValidSurnameShouldReturnError()
{
var name = faker.Generate();
name.Surname = "&&7!**|";
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid surname
/// </summary>
[Fact]
private async Task ValidateForNotValidSurnameShouldReturnError()
{
var name = faker.Generate();
name.Surname = "&&7!**|";
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.Surname))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid patronymic
/// </summary>
[Fact]
private async Task ValidateForNotValidPatronymicShouldReturnError()
{
var name = faker.Generate();
name.Patronymic = "&&7!**|";
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return error for not valid patronymic
/// </summary>
[Fact]
private async Task ValidateForNotValidPatronymicShouldReturnError()
{
var name = faker.Generate();
name.Patronymic = "&&7!**|";
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().HaveCount(1);
}
result.Errors.Where(error => error.PropertyName == nameof(name.Patronymic))
.Should().HaveCount(1);
}
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return no errors for valid name
/// </summary>
[Fact]
private async Task ValidateForValidNameShouldReturnNoErrors()
{
var name = faker.Generate();
/// <summary>
/// Test for <see cref="NameModel"/> validator that should return no errors for valid name
/// </summary>
[Fact]
private async Task ValidateForValidNameShouldReturnNoErrors()
{
var name = faker.Generate();
var result = await validator.ValidateAsync(name);
var result = await validator.ValidateAsync(name);
result.Errors.Should().BeEmpty();
}
result.Errors.Should().BeEmpty();
}
}