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

601 lines
28 KiB
C#

using LCU.API.Internal.Operations.IncentiveApi.Services;
using LCU.API.Internal.Operations.IncentiveApiLib.Repositories;
using LCU.API.Internal.Operations.IncentiveApi.Services.MicroApiServices;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.API.Internal.Operations.IncentiveApiLib.Persistence;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using Moq;
using NUnit.Framework;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using System;
using Microsoft.EntityFrameworkCore;
namespace Application.UnitTests.Services
{
public class EStatementServiceTest
{
private EStatementService _referralService;
private IActivityRepository _activityRepository;
private IUnitOfWork _unitOfWork;
private Mock<IProcessorHistoryService> _mockProcessorHistoryService;
private Mock<ICoreApiWrapperService> _mockCoreApiWrapperService;
private Mock<IActivityService> _mockActivityService;
[SetUp]
public void Setup()
{
var mockDateTime = new DateTimeService();
var mockCurrentUserService = Mock.Of<ICurrentUserService>();
Mock.Get(mockCurrentUserService).Setup(s => s.GetCurrentUser()).Returns(new ApplicationUser()
{
Email = "[email protected]",
});
var options = new DbContextOptionsBuilder<ApplicationDbContext>()
.UseInMemoryDatabase(Guid.NewGuid().ToString())
.EnableSensitiveDataLogging(true)
.Options;
var context = new ApplicationDbContext(options, mockCurrentUserService, mockDateTime);
_activityRepository = new ActivityRepository(context);
_unitOfWork = new UnitOfWork(context);
_mockProcessorHistoryService = new Mock<IProcessorHistoryService>();
_mockCoreApiWrapperService = new Mock<ICoreApiWrapperService>();
_mockActivityService = new Mock<IActivityService>();
_referralService =
new EStatementService(_mockProcessorHistoryService.Object, _mockCoreApiWrapperService.Object,
_mockActivityService.Object, _activityRepository);
}
[TestCase("1111", null)]
[TestCase(null, "1111")]
[Test]
public async Task MatchOrExpireEstatementReferral_MatchOnPersonOrOrgNumber_MatchNoExpire(string supjectPersonNbr, string subjectOrgNbr)
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var referralDaysInPast = -5;
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = supjectPersonNbr,
SubjectOrgNbr = subjectOrgNbr
},
MetaData = new List<ActivityMetaData> { }
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var matchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = supjectPersonNbr,
OrganizationNumber = subjectOrgNbr ?? "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "0987654321",
EmailAddresses = "[email protected]"
};
var methodWithNonMatchingNumbers = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var methodWithMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 3,
AccountNumber = 33333,
PersonNumber = "5678",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "2629999999,2622344555,2626788888,2624324444",
EmailAddresses = "[email protected],[email protected]"
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedDeliveryMethod, methodWithNonMatchingNumbers, methodWithMetadata };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchedDeliveryMethod.AccountNumber.ToString(), matchedEStatementReferral.Detail.AccountNumber);
Assert.AreEqual(matchedEStatementReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
}
[Test]
public async Task MatchOrExpireEstatementReferral_MatchOnPhoneMetaData_MatchNoExpire()
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var referralDaysInPast = -5;
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = null,
SubjectOrgNbr = null
},
MetaData = new List<ActivityMetaData> {
new ActivityMetaData {
MetaData = "1234567890",
MetaDataType = MetaDataType.Phone
}
}
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var matchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "1234567890,0987654321", // Additional phone number should be added to referral activity
EmailAddresses = "[email protected]" // This email address should be added to the referral activity
};
var methodWithNonMatchingMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = "5678",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "0987654321",
EmailAddresses = "[email protected], [email protected]"
};
var methodWithoutMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 3,
AccountNumber = 33333,
PersonNumber = "9134",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedDeliveryMethod, methodWithNonMatchingMetadata, methodWithoutMetadata };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchedEStatementReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
Assert.AreEqual(2, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Phone).Count()); // Added one new phone number
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Email).Count()); // Added one new email address
}
[Test]
public async Task MatchOrExpireReferralsWithoutSales_MatchOnEmailMetaData_MatchNoExpire()
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var referralDaysInPast = -5;
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = null,
SubjectOrgNbr = null
},
MetaData = new List<ActivityMetaData> {
new ActivityMetaData {
MetaData = "[email protected]",
MetaDataType = MetaDataType.Email
}
}
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var matchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "1234567890", // This phone number should be added to referral activity
EmailAddresses = "[email protected], [email protected]" // Additional email address should be added to the referral activity
};
var methodWithNonMatchingMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = "5678",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = "0987654321",
EmailAddresses = "[email protected], [email protected]"
};
var methodWithoutMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 3,
AccountNumber = 33333,
PersonNumber = "9123",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedDeliveryMethod, methodWithNonMatchingMetadata, methodWithoutMetadata };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchedEStatementReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Phone).Count()); // Added one new phone number
Assert.AreEqual(2, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Email).Count()); // Added one new email address
}
[Test]
public async Task MatchOrExpireEstatementReferral_MultipleDeliveryMethodsMatch_OneMatchNoExpire()
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var latestDeliveryMethodDaysInPast = -1;
var referralDaysInPast = -5;
var referralMatchingPhoneNumber = "1234567890";
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = null,
SubjectOrgNbr = null
},
MetaData = new List<ActivityMetaData> {
new ActivityMetaData {
MetaData = referralMatchingPhoneNumber,
MetaDataType = MetaDataType.Phone
}
}
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var matchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(latestDeliveryMethodDaysInPast),
PhoneNumbers = referralMatchingPhoneNumber,
EmailAddresses = "[email protected]" // This email address should be added to the referral activity
};
var methodWithNonMatchingMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = "5678",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = referralMatchingPhoneNumber,
EmailAddresses = "[email protected], [email protected]"
};
var methodWithoutMetadata = new EStatementDeliveryMethod()
{
ActivityNumber = 3,
AccountNumber = 33333,
PersonNumber = "9123",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = referralMatchingPhoneNumber,
EmailAddresses = null
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedDeliveryMethod, methodWithNonMatchingMetadata, methodWithoutMetadata };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchedEStatementReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Phone).Count()); // Did not add any phone numbers
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Email).Count()); // Added one new email address
}
[Test]
public async Task MatchOrExpireEstatementReferral_MatchMultipleOnPersNumberAndMetaData_OneMatchNoExpire()
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var firstMatchedDeliveryMethodDaysInPast = -2;
var latestDeliveryMethodDaysInPast = -1; // Method with this date will match because it is newest
var referralDaysInPast = -5;
var referralMatchingPersNumber = "1111";
var referralMatchingPhoneNumber = "1234567890";
var referralMatchingEmail = "[email protected]";
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = referralMatchingPersNumber,
SubjectOrgNbr = null
},
MetaData = new List<ActivityMetaData> {
new ActivityMetaData {
MetaData = referralMatchingEmail,
MetaDataType = MetaDataType.Email
}
}
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
// Will match on email MetaData
var matchedOnEmailDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(latestDeliveryMethodDaysInPast),
PhoneNumbers = referralMatchingPhoneNumber,
EmailAddresses = referralMatchingEmail
};
// Will match on PersonNumber
var matchedOnPersonNumberButNotLatest = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = referralMatchingPersNumber,
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(firstMatchedDeliveryMethodDaysInPast),
PhoneNumbers = referralMatchingPhoneNumber,
EmailAddresses = referralMatchingEmail
};
var nonMatchingMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 3,
AccountNumber = 33333,
PersonNumber = "5678",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedOnEmailDeliveryMethod, matchedOnPersonNumberButNotLatest, nonMatchingMethod };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedOnEmailDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchedEStatementReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Phone).Count()); // Did not add any phone numbers
Assert.AreEqual(1, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Email).Count()); // Added one new email address
}
[Test]
public async Task MatchOrExpireEstatementReferral_MultipleReferralMatches_MatchOneReferralNoExpire()
{
// Delivery methods activity dates must precede referral source created date
var deliveryMethodDaysInPast = -2;
var referralDaysInPast = -5;
var latestReferral = -4;
var duplicateReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "1",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(latestReferral),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = "1234",
SubjectOrgNbr = null
}
};
duplicateReferral.Id = await _activityRepository.SaveActivityAsync(duplicateReferral);
await _unitOfWork.CompleteAsync();
var matchingReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "2",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = "1234",
SubjectOrgNbr = null
}
};
// Saving this referral second makes it the "latest" (last updated) and match
matchingReferral.Id = await _activityRepository.SaveActivityAsync(matchingReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var matchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 1,
AccountNumber = 11111,
PersonNumber = "1234",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var nonMatchedDeliveryMethod = new EStatementDeliveryMethod()
{
ActivityNumber = 2,
AccountNumber = 22222,
PersonNumber = "4321",
OrganizationNumber = "0",
ActivityDateTime = DateTime.Now.AddDays(deliveryMethodDaysInPast),
PhoneNumbers = null,
EmailAddresses = null
};
var eStatmentActivities = new List<EStatementDeliveryMethod>() { matchedDeliveryMethod };
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Once);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains(matchedDeliveryMethod.AccountNumber.ToString()));
Assert.AreEqual(matchingReferral.Id, results.First().ActivityId);
Assert.AreEqual(ActivityState.Accepted, results.First().State);
}
[Test]
public async Task MatchOrExpireEstatementReferral_NoMatch_Expire()
{
var referralDaysInPast = -61; // Expires after 60 days
var matchedEStatementReferral = new Activity()
{
Product = Product.eStatement,
EmployeeId = "1",
SourceId = "2",
Type = ActivityType.Referral,
State = ActivityState.PendingReferral,
SourceCreated = DateTime.Now.AddDays(referralDaysInPast),
Detail = new ActivityDetail
{
AccountNumber = null,
SubjectPersonNbr = null,
SubjectOrgNbr = null
}
};
matchedEStatementReferral.Id = await _activityRepository.SaveActivityAsync(matchedEStatementReferral);
await _unitOfWork.CompleteAsync();
var lastRun = new ProcessorHistoryRecord() { };
_mockProcessorHistoryService.Setup(mock => mock.GetProcessorHistory(It.IsAny<Process>())).ReturnsAsync(lastRun);
var eStatmentActivities = new List<EStatementDeliveryMethod>() { }; // Matching fails because there are no estatements to match with
_mockCoreApiWrapperService.Setup(mock => mock.GetEStatmentDeliveryMethods(It.IsAny<DateTime>())).ReturnsAsync(eStatmentActivities);
var results = await _referralService.UpdateOrExpireEStatementReferral();
_mockProcessorHistoryService.Verify(mock => mock.SaveProcessorHistory(It.IsAny<ProcessorHistoryRecord>()), Times.Never);
Assert.IsNotNull(results);
Assert.IsTrue(results.Count == 1);
Assert.IsTrue(results.First().Note.Contains("expired"));
Assert.AreEqual(0, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Phone).Count());
Assert.AreEqual(0, matchedEStatementReferral.MetaData.Where(x => x.MetaDataType == MetaDataType.Email).Count());
}
}
}