Files
2026-03-17 09:53:09 -05:00

72 lines
2.9 KiB
C#

using System;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApiLib.Repositories;
using LCU.API.Internal.Operations.IncentiveApi.Services;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using Moq;
using NUnit.Framework;
namespace Application.UnitTests.Services
{
public class ProcessorHistoryServiceTest
{
private ProcessorHistoryService _processorHistoryService;
private Mock<IProcessorHistoryRepository> _mockRepository;
public ProcessorHistoryServiceTest()
{
_mockRepository = new Mock<IProcessorHistoryRepository>();
_processorHistoryService = new ProcessorHistoryService(_mockRepository.Object, new Mock<IUnitOfWork>().Object);
}
[Test]
public async Task GetProcessorHistory_OK()
{
_mockRepository.Setup(repo => repo.GetProcessorRunHistory(It.IsAny<Process>())).ReturnsAsync(new ProcessorHistoryRecord()
{
Process = Process.ImportCheckingAccountSalesFromDna,
LastProcessedRecordId = 5
}).Verifiable();
var res = await _processorHistoryService.GetProcessorHistory(Process.ImportCheckingAccountSalesFromDna);
Assert.AreEqual(Process.ImportCheckingAccountSalesFromDna, res.Process);
Assert.AreEqual(5, res.LastProcessedRecordId);
_mockRepository.Verify( x => x.GetProcessorRunHistory(It.Is<Process>(x => x == Process.ImportCheckingAccountSalesFromDna)));
}
[Test]
public void GetProcessorHistory_Exception()
{
_mockRepository.Setup(repo => repo.GetProcessorRunHistory(It.IsAny<Process>()))
.ThrowsAsync(new Exception("oops"));
Assert.ThrowsAsync<Exception>( async () => await _processorHistoryService.GetProcessorHistory(Process.ImportCheckingAccountSalesFromDna));
}
[Test]
public void SaveProcessorHistory_Exception()
{
_mockRepository.Setup(repo => repo.SaveProcessorRunHistory(It.IsAny<ProcessorHistoryRecord>()))
.ThrowsAsync(new Exception("Oops"));
Assert.ThrowsAsync<Exception>( async () => await _processorHistoryService.SaveProcessorHistory(new ProcessorHistoryRecord()
{
LastProcessedRecordId = 100
}));
}
[Test]
public async Task SaveProcessorHistory_OK()
{
_mockRepository.Setup(repo => repo.SaveProcessorRunHistory(It.IsAny<ProcessorHistoryRecord>())).ReturnsAsync(Process.ImportCheckingAccountSalesFromDna).Verifiable();
var res = await _processorHistoryService.SaveProcessorHistory(new ProcessorHistoryRecord()
{
LastProcessedRecordId = 100
});
Assert.AreEqual(Process.ImportCheckingAccountSalesFromDna, res);
}
}
}