131 lines
5.5 KiB
C#
131 lines
5.5 KiB
C#
using Moq;
|
|
using NUnit.Framework;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using System.Linq;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Entities;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Enums;
|
|
using LCU.API.Internal.MemberPreferencesApi.Services.QueueServices;
|
|
using LCU.API.Internal.MemberPreferencesApi.Interfaces;
|
|
using LCU.API.Internal.MemberPreferencesApi.Configuration;
|
|
using LCU.API.Internal.MemberPreferencesApiLib.Repositories;
|
|
using LCU.API.Internal.MemberPreferencesApi.Services.DnaAuditServices;
|
|
using LCU.API.Internal.MemberPreferencesApi.MicroApiServices;
|
|
|
|
namespace LCU.API.Internal.MemberPreferencesApi.UnitTests.Services
|
|
{
|
|
public class DNADataAuditProcessServiceTest
|
|
{
|
|
private Mock<ICoreApiWrapperService> _coreApiWrapperServiceMock;
|
|
private Mock<IQueueDnaAccountAuditService> _queueAccountMock;
|
|
private Mock<IQueueDnaAgreementAuditService> _queueAgreementMock;
|
|
private Mock<IQueueDnaOrganizationAuditService> _queueOrganizationMock;
|
|
private Mock<IDnaAuditProcessRepository> _dnaAuditProcessRepositoryMock;
|
|
private DNADataAuditProcessService _service;
|
|
private Mock<IDateTime> _dateTimeMock;
|
|
private DnaAuditProcessConfiguration _config;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
_dateTimeMock = new Mock<IDateTime>();
|
|
_config = new DnaAuditProcessConfiguration();
|
|
_coreApiWrapperServiceMock = new Mock<ICoreApiWrapperService>();
|
|
_queueAccountMock = new Mock<IQueueDnaAccountAuditService>();
|
|
_queueAgreementMock = new Mock<IQueueDnaAgreementAuditService>();
|
|
_queueOrganizationMock = new Mock<IQueueDnaOrganizationAuditService>();
|
|
_dnaAuditProcessRepositoryMock = new Mock<IDnaAuditProcessRepository>();
|
|
_service = new DNADataAuditProcessService(_queueAccountMock.Object, _queueAgreementMock.Object, _queueOrganizationMock.Object,
|
|
_coreApiWrapperServiceMock.Object, _dateTimeMock.Object, _dnaAuditProcessRepositoryMock.Object, _config);
|
|
}
|
|
|
|
[Test]
|
|
public async Task RunDnaAuditProcessesChange_HandleProcessUpdate_Ok()
|
|
{
|
|
|
|
var processlistAccount = new List<DnaAuditProcess>
|
|
{
|
|
new DnaAuditProcess()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaProcessType = DnaAuditProcessType.DNAAccounts,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 0,
|
|
}
|
|
};
|
|
|
|
var processlistAgreement = new List<DnaAuditProcess>
|
|
{
|
|
new DnaAuditProcess()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaProcessType = DnaAuditProcessType.DNAAgreement,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 0,
|
|
}
|
|
};
|
|
|
|
var processlistOrg = new List<DnaAuditProcess>
|
|
{
|
|
new DnaAuditProcess()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaProcessType = DnaAuditProcessType.DNAOrganization,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 0,
|
|
}
|
|
};
|
|
|
|
await _service.RunDataAuditProcesses();
|
|
await _service.AuditDNAAccountsForTimePeriod(DateTime.Now, processlistAccount.First());
|
|
var resultAccount = _service.HandleDnaAuditProcessSuccess(processlistAccount.First());
|
|
|
|
await _service.AuditDNAAgreementForTimePeriod(DateTime.Now, processlistAgreement.First());
|
|
var resultAgreement = _service.HandleDnaAuditProcessSuccess(processlistAgreement.First());
|
|
|
|
await _service.AuditDNAOrganizationForTimePeriod(DateTime.Now, processlistOrg.First());
|
|
var resultOrg = _service.HandleDnaAuditProcessSuccess(processlistOrg.First());
|
|
|
|
//assert
|
|
Assert.NotNull(resultAccount);
|
|
Assert.AreEqual(resultAccount.DnaProcessType, DnaAuditProcessType.DNAAccounts);
|
|
Assert.AreEqual(resultAccount.ConsecutiveFailures, 0);
|
|
|
|
Assert.NotNull(resultAgreement);
|
|
Assert.AreEqual(resultAgreement.DnaProcessType, DnaAuditProcessType.DNAAgreement);
|
|
Assert.AreEqual(resultAgreement.ConsecutiveFailures, 0);
|
|
|
|
Assert.NotNull(resultOrg);
|
|
Assert.AreEqual(resultOrg.DnaProcessType, DnaAuditProcessType.DNAOrganization);
|
|
Assert.AreEqual(resultOrg.ConsecutiveFailures, 0);
|
|
}
|
|
|
|
[Test]
|
|
public async Task RunDnaAuditProcessesChange_HandleProcessUpdateException_Ok()
|
|
{
|
|
|
|
var processlistAccount = new List<DnaAuditProcess>
|
|
{
|
|
new DnaAuditProcess()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaProcessType = DnaAuditProcessType.DNAAccounts,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 0,
|
|
}
|
|
};
|
|
|
|
var ex = new Exception();
|
|
await _service.RunDataAuditProcesses();
|
|
await _service.AuditDNAAccountsForTimePeriod(DateTime.Now, processlistAccount.First());
|
|
var resultAccount = _service.HandleDnaAuditProcessException(processlistAccount.First(), ex);
|
|
|
|
//assert
|
|
Assert.NotNull(resultAccount);
|
|
Assert.AreEqual(resultAccount.DnaProcessType, DnaAuditProcessType.DNAAccounts);
|
|
Assert.AreEqual(resultAccount.ConsecutiveFailures, 1);
|
|
}
|
|
}
|
|
}
|