diff --git a/SchengenVisaApi/ApplicationLayer/Services/Users/Requests/Validation/ChangeUserAuthDataRequestValidator.cs b/SchengenVisaApi/ApplicationLayer/Services/Users/Requests/Validation/ChangeUserAuthDataRequestValidator.cs index e824e77..e858422 100644 --- a/SchengenVisaApi/ApplicationLayer/Services/Users/Requests/Validation/ChangeUserAuthDataRequestValidator.cs +++ b/SchengenVisaApi/ApplicationLayer/Services/Users/Requests/Validation/ChangeUserAuthDataRequestValidator.cs @@ -7,6 +7,9 @@ namespace ApplicationLayer.Services.Users.Requests.Validation { public ChangeUserAuthDataRequestValidator() { + RuleFor(r => r.UserId) + .NotEmpty(); + RuleFor(r => r.NewAuthData) .NotEmpty(); diff --git a/SchengenVisaApi/VisaApiTests/Fakers/Common/ChangeAuthDataFaker.cs b/SchengenVisaApi/VisaApiTests/Fakers/Common/ChangeAuthDataFaker.cs new file mode 100644 index 0000000..fa000f0 --- /dev/null +++ b/SchengenVisaApi/VisaApiTests/Fakers/Common/ChangeAuthDataFaker.cs @@ -0,0 +1,15 @@ +using ApplicationLayer.Services.Users.Models; +using Bogus; + +namespace VisaApi.Fakers.Common +{ + public sealed class ChangeAuthDataFaker : Faker + { + public ChangeAuthDataFaker() + { + RuleFor(a => a.Email, f => f.Internet.Email()); + + RuleFor(a => a.Password, f => f.Internet.Password()); + } + } +} diff --git a/SchengenVisaApi/VisaApiTests/Fakers/Users/Requests/ChangeUserAuthDataRequestFaker.cs b/SchengenVisaApi/VisaApiTests/Fakers/Users/Requests/ChangeUserAuthDataRequestFaker.cs new file mode 100644 index 0000000..dce8164 --- /dev/null +++ b/SchengenVisaApi/VisaApiTests/Fakers/Users/Requests/ChangeUserAuthDataRequestFaker.cs @@ -0,0 +1,16 @@ +using ApplicationLayer.Services.Users.Requests; +using Bogus; +using VisaApi.Fakers.Common; + +namespace VisaApi.Fakers.Users.Requests +{ + public sealed class ChangeUserAuthDataRequestFaker : Faker + { + private static ChangeAuthDataFaker changeAuthDataFaker = new(); + + public ChangeUserAuthDataRequestFaker() + { + CustomInstantiator(_ => new(Guid.NewGuid(), changeAuthDataFaker.Generate())); + } + } +} diff --git a/SchengenVisaApi/VisaApiTests/Fakers/Common/UserFaker.cs b/SchengenVisaApi/VisaApiTests/Fakers/Users/UserFaker.cs similarity index 91% rename from SchengenVisaApi/VisaApiTests/Fakers/Common/UserFaker.cs rename to SchengenVisaApi/VisaApiTests/Fakers/Users/UserFaker.cs index 1e5f271..11f7b40 100644 --- a/SchengenVisaApi/VisaApiTests/Fakers/Common/UserFaker.cs +++ b/SchengenVisaApi/VisaApiTests/Fakers/Users/UserFaker.cs @@ -1,7 +1,7 @@ using Bogus; using Domains.Users; -namespace VisaApi.Fakers.Common +namespace VisaApi.Fakers.Users { /// /// Generates users diff --git a/SchengenVisaApi/VisaApiTests/Tests/Application/Validation/Users/ChangeUserAuthDataRequestValidationTests.cs b/SchengenVisaApi/VisaApiTests/Tests/Application/Validation/Users/ChangeUserAuthDataRequestValidationTests.cs new file mode 100644 index 0000000..59ad092 --- /dev/null +++ b/SchengenVisaApi/VisaApiTests/Tests/Application/Validation/Users/ChangeUserAuthDataRequestValidationTests.cs @@ -0,0 +1,37 @@ +using ApplicationLayer.Services.Users.Requests; +using ApplicationLayer.Services.Users.Requests.Validation; +using FluentAssertions; +using FluentValidation; +using VisaApi.Fakers.Users.Requests; +using Xunit; + +namespace VisaApi.Tests.Application.Validation.Users +{ + public class ChangeUserAuthDataRequestValidationTests + { + private readonly static IValidator validator = new ChangeUserAuthDataRequestValidator(); + private readonly static ChangeUserAuthDataRequestFaker faker = new(); + + /// + /// Test for validator that should return validation error for empty auth data + /// + [Fact] + private async Task ValidateForEmptyAuthDataShouldReturnError() + { + var request = faker.Generate(); + request.NewAuthData = null!; + NullReferenceException? result = null; + + try + { + await validator.ValidateAsync(request); + } + catch (Exception e) + { + result = e as NullReferenceException; + } + + result.Should().NotBeNull(); + } + } +} diff --git a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/ApplicantsRepositoryTests.cs b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/ApplicantsRepositoryTests.cs index 23099a6..e5eb0b2 100644 --- a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/ApplicantsRepositoryTests.cs +++ b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/ApplicantsRepositoryTests.cs @@ -5,7 +5,7 @@ using Infrastructure.Database; using Infrastructure.Database.Applicants.Repositories; using Infrastructure.Database.Applicants.Repositories.Exceptions; using VisaApi.Fakers.Applicants; -using VisaApi.Fakers.Common; +using VisaApi.Fakers.Users; using VisaApi.Services; using Xunit; diff --git a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/UsersRepositoryTests.cs b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/UsersRepositoryTests.cs index 3fc3e9a..50227d7 100644 --- a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/UsersRepositoryTests.cs +++ b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/UsersRepositoryTests.cs @@ -4,7 +4,7 @@ using Domains.Users; using FluentAssertions; using Infrastructure.Database; using Infrastructure.Database.Users.Repositories; -using VisaApi.Fakers.Common; +using VisaApi.Fakers.Users; using Xunit; namespace VisaApi.Tests.Infrastructure.Database.Repositories diff --git a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/VisaApplicationsRepositoryTests.cs b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/VisaApplicationsRepositoryTests.cs index 80de943..b034dd9 100644 --- a/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/VisaApplicationsRepositoryTests.cs +++ b/SchengenVisaApi/VisaApiTests/Tests/Infrastructure/Database/Repositories/VisaApplicationsRepositoryTests.cs @@ -6,7 +6,7 @@ using Infrastructure.Database; using Infrastructure.Database.VisaApplications.Repositories; using Infrastructure.Database.VisaApplications.Repositories.Exceptions; using VisaApi.Fakers.Applicants; -using VisaApi.Fakers.Common; +using VisaApi.Fakers.Users; using VisaApi.Fakers.VisaApplications; using VisaApi.Services; using Xunit;