224 lines
8.3 KiB
C#
224 lines
8.3 KiB
C#
using Moq;
|
|
using NUnit.Framework;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using LCU.API.Internal.MemberPreferencesApi.Services;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Entities;
|
|
using LCU.Library.Internal.MemberPreferencesApiModels.Enums;
|
|
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Agreements;
|
|
using LCU.API.Internal.MemberPreferencesApi.Services.DnaAuditServices;
|
|
using LCU.API.Internal.MemberPreferencesApi.MicroApiServices;
|
|
using LCU.API.Internal.MemberPreferencesApi.Models.Requests;
|
|
|
|
namespace LCU.API.Internal.MemberPreferencesApi.UnitTests.Services
|
|
{
|
|
public class DNADataAuditServiceTest
|
|
{
|
|
private Mock<ICoreApiWrapperService> _coreApiWrapperServiceMock;
|
|
private Mock<IOptinService> _optinServiceMock;
|
|
private DNADataAuditService _service;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
_coreApiWrapperServiceMock = new Mock<ICoreApiWrapperService>();
|
|
_optinServiceMock = new Mock<IOptinService>();
|
|
_service = new DNADataAuditService(_coreApiWrapperServiceMock.Object, _optinServiceMock.Object);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleChangedFields_AccountChange_OK_UPDATE()
|
|
{
|
|
|
|
var account = new AgreementAccount
|
|
{
|
|
AccountNumber = 123456,
|
|
OvrDeliveryMethCD = "PRNT",
|
|
AccountOwner = new AgreementAccountOwner
|
|
{
|
|
AccountNumber = 123456,
|
|
AgreementNumber = 222,
|
|
PersonNumber = 123,
|
|
UserId = "1234"
|
|
}
|
|
};
|
|
|
|
var memberOptinSettings = new MemberOptInSettings
|
|
{
|
|
EStatements = null,
|
|
UniversalOptIn = "Electronic"
|
|
};
|
|
|
|
//setup
|
|
_coreApiWrapperServiceMock.Setup(x => x.GetAgreementAccountByAccountId(123456)).ReturnsAsync(account).Verifiable();
|
|
|
|
_optinServiceMock.Setup(x => x.GetMemberOptInSettings("1234")).ReturnsAsync(memberOptinSettings).Verifiable();
|
|
|
|
var request = new DnaFieldChangeRequest()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaFieldIdInformation = 123456L,
|
|
DnaProcessType = DnaAuditProcessType.DNAAgreement,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 1
|
|
};
|
|
|
|
await _service.HandleAccountAuditCheck(request);
|
|
|
|
//assert
|
|
_coreApiWrapperServiceMock.Verify(x => x.UpdateAgreementAccountsDeliveryMethod(It.Is<List<long>>(list => list.Contains(123456)), It.Is<string>(x => x.Equals("WWW")), It.Is<string>(x => x.Equals("1234"))), Times.Once);
|
|
_coreApiWrapperServiceMock.Verify();
|
|
_optinServiceMock.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleChangedFields_AccountChange_OK_DONTUPDATE()
|
|
{
|
|
var account = new AgreementAccount
|
|
{
|
|
AccountNumber = 123456,
|
|
OvrDeliveryMethCD = "PRNT",
|
|
AccountOwner = new AgreementAccountOwner
|
|
{
|
|
AccountNumber = 123456,
|
|
AgreementNumber = 222,
|
|
PersonNumber = 123,
|
|
UserId = "1234"
|
|
}
|
|
};
|
|
|
|
var memberOptinSettings = new MemberOptInSettings
|
|
{
|
|
EStatements = null,
|
|
UniversalOptIn = "Paper"
|
|
};
|
|
|
|
//setup
|
|
_coreApiWrapperServiceMock.Setup(x => x.GetAgreementAccountByAccountId(123456)).ReturnsAsync(account).Verifiable();
|
|
|
|
_optinServiceMock.Setup(x => x.GetMemberOptInSettings("1234"))
|
|
.ReturnsAsync(memberOptinSettings).Verifiable();
|
|
|
|
var request = new DnaFieldChangeRequest()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaFieldIdInformation = 123456L,
|
|
DnaProcessType = DnaAuditProcessType.DNAAccounts,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 1
|
|
};
|
|
|
|
await _service.HandleAccountAuditCheck(request);
|
|
|
|
//assert
|
|
_coreApiWrapperServiceMock.Verify(x => x.UpdateAgreementAccountsDeliveryMethod(It.IsAny<List<long>>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_coreApiWrapperServiceMock.Verify();
|
|
_optinServiceMock.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleChangedFields_AgreementChange_OK_UPDATE()
|
|
{
|
|
var agreement = new Agreement
|
|
{
|
|
AgreementNumber = 1127,
|
|
PersonNumber = 123,
|
|
UserId = "1234"
|
|
};
|
|
|
|
var accounts = new List<AgreementAccount>
|
|
{
|
|
new AgreementAccount{
|
|
AccountNumber = 123456,
|
|
OvrDeliveryMethCD = "PRNT",
|
|
TaxReportForPersonNumber = 123,
|
|
AccountOwner = new AgreementAccountOwner{
|
|
AccountNumber = 123456,
|
|
AgreementNumber = 1127,
|
|
PersonNumber = 123,
|
|
UserId = "1234"
|
|
}
|
|
}
|
|
};
|
|
|
|
var memberOptinSettings = new MemberOptInSettings
|
|
{
|
|
EStatements = null,
|
|
UniversalOptIn = "Electronic"
|
|
};
|
|
|
|
//setup
|
|
_coreApiWrapperServiceMock.Setup(x => x.GetAgreementByAgreementId(1127)).ReturnsAsync(agreement).Verifiable();
|
|
_coreApiWrapperServiceMock.Setup(x => x.GetAgreementAccountsByUserId("1234")).ReturnsAsync(accounts).Verifiable();
|
|
|
|
_optinServiceMock.Setup(x => x.GetMemberOptInSettings("1234")).ReturnsAsync(memberOptinSettings).Verifiable();
|
|
|
|
var request = new DnaFieldChangeRequest()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaFieldIdInformation = 1127L,
|
|
DnaProcessType = DnaAuditProcessType.DNAAgreement,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 1
|
|
};
|
|
|
|
await _service.HandleAgreementAuditCheck(request);
|
|
|
|
//assert
|
|
_coreApiWrapperServiceMock.Verify(x => x.UpdateAgreementAccountsDeliveryMethod(It.Is<List<long>>(list => list.Contains(123456)), It.Is<string>(x => x.Equals("WWW")), It.Is<string>(x => x.Equals("1234"))), Times.Once);
|
|
_coreApiWrapperServiceMock.Verify();
|
|
_optinServiceMock.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleChangedFields_OrganizationChange_OK_UPDATE()
|
|
{
|
|
var accounts = new List<AgreementAccount>
|
|
{
|
|
new AgreementAccount{
|
|
AccountNumber = 123456,
|
|
TaxReportForOrgNumber = 11267,
|
|
OvrDeliveryMethCD = "PRNT",
|
|
AccountOwner = new AgreementAccountOwner
|
|
{
|
|
AccountNumber = 123456,
|
|
AgreementNumber = 222,
|
|
PersonNumber = 123,
|
|
UserId = "1234"
|
|
}
|
|
}
|
|
};
|
|
|
|
var memberOptinSettings = new MemberOptInSettings
|
|
{
|
|
EStatements = null,
|
|
UniversalOptIn = "Electronic"
|
|
};
|
|
|
|
//setup
|
|
|
|
_coreApiWrapperServiceMock.Setup(x => x.GetAgreementAccountsByOrganizationId(1126)).ReturnsAsync(accounts).Verifiable();
|
|
|
|
_optinServiceMock.Setup(x => x.GetMemberOptInSettings("1234")).ReturnsAsync(memberOptinSettings).Verifiable();
|
|
|
|
var request = new DnaFieldChangeRequest()
|
|
{
|
|
ConsecutiveFailures = 0,
|
|
DnaFieldIdInformation = 1126L,
|
|
DnaProcessType = DnaAuditProcessType.DNAAgreement,
|
|
LastUpdated = DateTime.Now,
|
|
ProcessId = 1
|
|
};
|
|
|
|
//act
|
|
await _service.HandleOrganizationAuditCheck(request);
|
|
|
|
//assert
|
|
_coreApiWrapperServiceMock.Verify(x => x.UpdateAgreementAccountsDeliveryMethod(It.Is<List<long>>(list => list.Contains(123456)), It.Is<string>(x => x.Equals("WWW")), It.Is<string>(x => x.Equals("1234"))), Times.Once);
|
|
_coreApiWrapperServiceMock.Verify();
|
|
_optinServiceMock.Verify();
|
|
}
|
|
}
|
|
}
|