tests: begin adding tests related to performing searches

This commit is contained in:
Stevan Freeborn
2024-09-01 18:26:46 -05:00
parent e400be31f7
commit 4eef7af9db
5 changed files with 54 additions and 8 deletions
@@ -36,10 +36,9 @@ public class DatabaseMaintainerTests : DatabaseTest, IDisposable
_ofacFileServiceOptions
);
var uowLogger = _loggerFactory.CreateLogger<EfUnitOfWork>();
var dbMaintainerLogger = _loggerFactory.CreateLogger<DatabaseMaintainer>();
var uow = new EfUnitOfWork(_context, uowLogger, _loggerFactory);
var uow = new EfUnitOfWork(_context, _loggerFactory);
_databaseMaintainer = new DatabaseMaintainer(uow, ofacFileService, dbMaintainerLogger);
}
@@ -11,9 +11,7 @@ public class EfUnitOfWorkTests : DatabaseTest
public EfUnitOfWorkTests()
{
var loggerFactory = LoggerFactory.Create(c => c.ClearProviders());
var logger = loggerFactory.CreateLogger<EfUnitOfWork>();
_uow = new(_context, logger, loggerFactory);
_uow = new(_context, loggerFactory);
}
[Fact]
@@ -0,0 +1,51 @@
namespace SanctionsSearch.Worker.Tests.Integration;
public class SearchServiceTests : DatabaseTest
{
private readonly SearchService _searchService;
private readonly SdnFaker _sdnFaker = new();
private readonly AddressFaker _addressFaker = new();
public SearchServiceTests()
{
var uow = new EfUnitOfWork(_context, _loggerFactory);
_searchService = new SearchService(uow);
}
[Fact]
public async Task PerformSearchAsync_WhenCalledWithEmptyRequest_ItShouldReturnEmptyResult()
{
var request = new SearchRequest();
var result = await _searchService.PerformSearchAsync(request);
result.SearchRequestId.Should().Be(request.Id);
result.Hits.Should().BeEmpty();
}
[Fact]
public async Task PerformSearchAsync_WhenCalledWithRequest_ItShouldReturnHits()
{
var sdn = _sdnFaker.Generate();
sdn.Name = "PUTIN, Vladimir Vladimirovich";
var address = _addressFaker.Generate();
address.SdnId = sdn.Id;
await _context.Set<Sdn>().AddAsync(sdn);
await _context.Set<Address>().AddAsync(address);
await _context.SaveChangesAsync();
var request = new SearchRequest
{
Name = "Putin",
};
var result = await _searchService.PerformSearchAsync(request);
result.SearchRequestId.Should().Be(request.Id);
result.Hits.Should().HaveCount(1);
result.Hits.First().Name.Should().Be(sdn.Name);
result.Hits.First().Address.Should().Be(address.ToString());
}
}