using FluentResults; namespace SanctionsSearch.Worker.Tests.Unit; public class DatabaseMaintainerTests : IDisposable { private readonly Mock _unitOfWorkMock = new(); private readonly Mock _ofacFileServiceMock = new(); private readonly Mock> _loggerMock = new(); private readonly DatabaseMaintainer _databaseMaintainer; public DatabaseMaintainerTests() { _databaseMaintainer = new(_unitOfWorkMock.Object, _ofacFileServiceMock.Object, _loggerMock.Object); } [Fact] public async Task BuildSdnTableAsync_WhenUnableToRetrieveCsvFile_ItShouldLogError() { _ofacFileServiceMock .Setup(x => x.GetSdnFileAsync()) .ReturnsAsync(Result.Fail("Error")); await _databaseMaintainer.BuildSdnTableAsync(); _loggerMock.Verify( x => x.Log( LogLevel.Error, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>() ) ); } [Fact] public async Task BuildAddressTableAsync_WhenUnableToRetrieveCsvFile_ItShouldLogError() { _ofacFileServiceMock .Setup(x => x.GetAddressFileAsync()) .ReturnsAsync(Result.Fail("Error")); await _databaseMaintainer.BuildAddressTableAsync(); _loggerMock.Verify( x => x.Log( LogLevel.Error, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>() ) ); } [Fact] public async Task BuildAliasTableAsync_WhenUnableToRetrieveCsvFile_ItShouldLogError() { _ofacFileServiceMock .Setup(x => x.GetAltNamesFileAsync()) .ReturnsAsync(Result.Fail("Error")); await _databaseMaintainer.BuiltAliasTableAsync(); _loggerMock.Verify( x => x.Log( LogLevel.Error, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>() ) ); } [Fact] public async Task BuildCommentsTableAsync_WhenUnableToRetrieveCsvFile_ItShouldLogError() { _ofacFileServiceMock .Setup(x => x.GetCommentsFileAsync()) .ReturnsAsync(Result.Fail("Error")); await _databaseMaintainer.BuildCommentTableAsync(); _loggerMock.Verify( x => x.Log( LogLevel.Error, It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>() ) ); } public void Dispose() { _databaseMaintainer.Dispose(); GC.SuppressFinalize(this); } }