tests and fixes

This commit is contained in:
2025-05-11 18:28:33 +03:00
parent 6ab5b9f1df
commit 07f5663c75
8 changed files with 120 additions and 13 deletions

View File

@@ -15,7 +15,7 @@ public class PassportModelValidatorTests
{
private readonly static IDateTimeProvider dateTimeProvider = new TestDateTimeProvider();
private readonly static IValidator<PassportModel> validator = new PassportModelValidator(dateTimeProvider);
private readonly static PassportModelFaker faker = new(dateTimeProvider);
private readonly static PassportModelFaker faker = new();
/// <summary>
/// Test for <see cref="PassportModel"/> validator that should return error for empty number

View File

@@ -0,0 +1,73 @@
using ApplicationLayer.Services.Applicants.Models.Validation;
using ApplicationLayer.Services.AuthServices.Requests;
using ApplicationLayer.Services.AuthServices.Requests.Validation;
using Domains.ApplicantDomain;
using FluentValidation.TestHelper;
using Infrastructure.Database.Users.Repositories;
using VisaApi.Fakers.Auth;
using VisaApi.Services;
using VisaApi.Tests.Infrastructure.Database;
using Xunit;
namespace VisaApi.Tests.Application.Validation.Auth
{
public class RegisterApplicantRequestValidatorTests
{
private readonly RegisterApplicantRequestValidator validator;
private RegisterApplicantRequestFaker requestFaker;
public RegisterApplicantRequestValidatorTests()
{
var context = InMemoryContextProvider.GetDbContext();
var dateTimeProvider = new TestDateTimeProvider();
requestFaker = new(dateTimeProvider);
validator = new(
dateTimeProvider,
new NameModelValidator(),
new RegisterRequestValidator(new UsersRepository(context, context), new AuthDataValidator()),
new PassportModelValidator(dateTimeProvider),
new PlaceOfWorkModelValidator()
);
}
/// <summary>
/// Validation should return no errors
/// </summary>
[Fact]
public async Task ValidateShouldWork()
{
var request = requestFaker.Generate();
var result = await validator.TestValidateAsync(request);
result.ShouldNotHaveAnyValidationErrors();
}
/// <summary>
/// Validation should return errors
/// </summary>
[Fact]
public async Task ValidateShouldFail()
{
var request = new RegisterApplicantRequest
{
BirthDate = DateTime.Now,
Citizenship = string.Empty,
CitizenshipByBirth = string.Empty,
CityOfBirth = string.Empty,
CountryOfBirth = string.Empty,
Gender = (Gender)123123,
JobTitle = string.Empty,
MaritalStatus = (MaritalStatus)123123,
};
var result = await validator.TestValidateAsync(request);
var properties = request.GetType().GetProperties().Select(x => x.Name).Except([nameof(RegisterApplicantRequest.IsNonResident)]);
foreach (var property in properties)
{
result.ShouldHaveValidationErrorFor(property);
}
}
}
}