tests in ApplicantsRepositoryTests.cs for FindByUserId method
This commit is contained in:
		| @@ -0,0 +1,55 @@ | |||||||
|  | using ApplicationLayer.InfrastructureServicesInterfaces; | ||||||
|  | using ApplicationLayer.Services.Applicants.NeededServices; | ||||||
|  | using FluentAssertions; | ||||||
|  | using Infrastructure.Database; | ||||||
|  | using Infrastructure.Database.Applicants.Repositories; | ||||||
|  | using Infrastructure.Database.Applicants.Repositories.Exceptions; | ||||||
|  | using VisaApi.Fakers; | ||||||
|  | using VisaApi.Services; | ||||||
|  |  | ||||||
|  | namespace VisaApi.Database.Repositories | ||||||
|  | { | ||||||
|  |     public class ApplicantsRepositoryTests | ||||||
|  |     { | ||||||
|  |         private static IApplicantsRepository GetRepository(DbContext context) | ||||||
|  |             => new ApplicantsRepository(context, context); | ||||||
|  |  | ||||||
|  |         private static IDateTimeProvider GetDateTimeProvider() => new TestDateTimeProvider(); | ||||||
|  |  | ||||||
|  |         [Fact] | ||||||
|  |         private async Task FindByUserIdForNotExistingShouldThrow() | ||||||
|  |         { | ||||||
|  |             await using var context = InMemoryContextProvider.GetDbContext(); | ||||||
|  |             var repository = GetRepository(context); | ||||||
|  |             ApplicantNotFoundByUserIdException? result = null; | ||||||
|  |  | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 await repository.FindByUserIdAsync(Guid.NewGuid(), CancellationToken.None); | ||||||
|  |             } | ||||||
|  |             catch (Exception e) | ||||||
|  |             { | ||||||
|  |                 result = e as ApplicantNotFoundByUserIdException; | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             result.Should().NotBeNull(); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         [Fact] | ||||||
|  |         private async Task FindByUserIdForExistingShouldReturnApplicant() | ||||||
|  |         { | ||||||
|  |             await using var context = InMemoryContextProvider.GetDbContext(); | ||||||
|  |             var repository = GetRepository(context); | ||||||
|  |             var user = new UserFaker().Generate(); | ||||||
|  |             var applicant = new ApplicantFaker(GetDateTimeProvider()).Generate(); | ||||||
|  |             applicant.UserId = user.Id; | ||||||
|  |             await context.AddAsync(user); | ||||||
|  |             await repository.AddAsync(applicant, CancellationToken.None); | ||||||
|  |             await context.SaveChangesAsync(); | ||||||
|  |  | ||||||
|  |             var result = await repository.FindByUserIdAsync(user.Id, CancellationToken.None); | ||||||
|  |  | ||||||
|  |             result.Should().BeEquivalentTo(applicant); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user