Adding
This commit is contained in:
+347
@@ -0,0 +1,347 @@
|
||||
using LCU.Api.Internal.DataCleanUp.Models.ParserModels;
|
||||
using LCU.Api.Internal.DataCleanUp.Services.Validation;
|
||||
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Agreements;
|
||||
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.PostalAddresses;
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace LCU.Api.Internal.DataCleanUpTest.Services.Validation;
|
||||
|
||||
public class NcoaValidationServiceTest
|
||||
{
|
||||
private readonly NcoaValidationService _ncoaValidationService;
|
||||
|
||||
public NcoaValidationServiceTest()
|
||||
{
|
||||
_ncoaValidationService = new NcoaValidationService();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsBusinessRecord_True()
|
||||
{
|
||||
// Arrange
|
||||
var ncoaRecord = new NcoaRecord()
|
||||
{
|
||||
UserId = "123456",
|
||||
NcoaType = "I",
|
||||
ChangeDate = "202212",
|
||||
PrimaryName = "Test E Testerson",
|
||||
CurrentAddressOne = "1 Imaginary Lane",
|
||||
CurrentAddressTwo = "Apt 13",
|
||||
CurrentAddressThree = "Additional Address Line",
|
||||
CurrentAddressFour = "ReallyLongCityName",
|
||||
CurrentAddressFive = "Wisconsin, 53186",
|
||||
SecondaryName = "Test Testerson",
|
||||
BusinessName = "Testerson's Testing",
|
||||
NewAddressLine = "New Address Line PO BOX Test",
|
||||
City = "New Test City",
|
||||
StateCode = "WI",
|
||||
ZipCode = "53022",
|
||||
ZipSuffix = "1234",
|
||||
UserIdTwo = "123456",
|
||||
StatementCode = "TestStatementCode",
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsBusinessRecord(ncoaRecord);
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsBusinessRecord_False_Null()
|
||||
{
|
||||
// Arrange
|
||||
var ncoaRecord = new NcoaRecord()
|
||||
{
|
||||
UserId = "123456",
|
||||
NcoaType = "I",
|
||||
ChangeDate = "202212",
|
||||
PrimaryName = "Test E Testerson",
|
||||
CurrentAddressOne = "1 Imaginary Lane",
|
||||
CurrentAddressTwo = "Apt 13",
|
||||
CurrentAddressThree = "Additional Address Line",
|
||||
CurrentAddressFour = "ReallyLongCityName",
|
||||
CurrentAddressFive = "Wisconsin, 53186",
|
||||
SecondaryName = "Test Testerson",
|
||||
BusinessName = null,
|
||||
NewAddressLine = "New Address Line PO BOX Test",
|
||||
City = "New Test City",
|
||||
StateCode = "WI",
|
||||
ZipCode = "53022",
|
||||
ZipSuffix = "1234",
|
||||
UserIdTwo = "123456",
|
||||
StatementCode = "TestStatementCode",
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsBusinessRecord(ncoaRecord);
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsBusinessRecord_False_Empty()
|
||||
{
|
||||
// Arrange
|
||||
var ncoaRecord = new NcoaRecord()
|
||||
{
|
||||
UserId = "123456",
|
||||
NcoaType = "I",
|
||||
ChangeDate = "202212",
|
||||
PrimaryName = "Test E Testerson",
|
||||
CurrentAddressOne = "1 Imaginary Lane",
|
||||
CurrentAddressTwo = "Apt 13",
|
||||
CurrentAddressThree = "Additional Address Line",
|
||||
CurrentAddressFour = "ReallyLongCityName",
|
||||
CurrentAddressFive = "Wisconsin, 53186",
|
||||
SecondaryName = "Test Testerson",
|
||||
BusinessName = "",
|
||||
NewAddressLine = "New Address Line PO BOX Test",
|
||||
City = "New Test City",
|
||||
StateCode = "WI",
|
||||
ZipCode = "53022",
|
||||
ZipSuffix = "1234",
|
||||
UserIdTwo = "123456",
|
||||
StatementCode = "TestStatementCode",
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsBusinessRecord(ncoaRecord);
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ParsePersonNumber_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var agreement = new Agreement()
|
||||
{
|
||||
PersonNumber = 111
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.ParsePersonNumber(agreement);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(111, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ParsePersonNumber_FailParse()
|
||||
{
|
||||
// Arrange
|
||||
var agreement = new Agreement()
|
||||
{
|
||||
PersonNumber = 11111111111
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.ParsePersonNumber(agreement);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(-1, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task ParsePersonNumber_NullAgreement()
|
||||
{
|
||||
// Arrange/Act
|
||||
var result = _ncoaValidationService.ParsePersonNumber(null);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(-1, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddrUseCodeFound_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var addressList = new List<PersonPostalAddress>();
|
||||
var address = new PersonPostalAddress()
|
||||
{
|
||||
AddressUseCode = "PRI",
|
||||
AddressNumber = 111
|
||||
};
|
||||
addressList.Add(address);
|
||||
addressList.AsReadOnly();
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddrUseCodeFound(addressList, "PRI");
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(111, result.AddressNumber);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddrUseCodeFound_Null()
|
||||
{
|
||||
// Arrange
|
||||
var addressList = new List<PersonPostalAddress>();
|
||||
var address = new PersonPostalAddress()
|
||||
{
|
||||
AddressUseCode = "ALT",
|
||||
AddressNumber = 111
|
||||
};
|
||||
addressList.Add(address);
|
||||
addressList.AsReadOnly();
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddrUseCodeFound(addressList, "PRI");
|
||||
|
||||
// Assert
|
||||
Assert.Null(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddrLineTooLong_Ok()
|
||||
{
|
||||
// Arrange
|
||||
string addrLine = "Short Address";
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddrLineTooLong(addrLine);
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddrLineTooLong_TooLong()
|
||||
{
|
||||
// Arrange
|
||||
string addrLine = "This is a long addrLine that should be more than 40 characters and should fail validation";
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddrLineTooLong(addrLine);
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AgreementHasOrgNumber_Ok()
|
||||
{
|
||||
// Arrange
|
||||
var agreement = new Agreement()
|
||||
{
|
||||
PersonNumber = 11111111111
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.AgreementHasOrgNumber(agreement);
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AgreementHasOrgNumber_HasOrgNumber()
|
||||
{
|
||||
// Arrange
|
||||
var agreement = new Agreement()
|
||||
{
|
||||
PersonNumber = 11111111111,
|
||||
ByOrgNbr = 123456
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.AgreementHasOrgNumber(agreement);
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsOnExlusionList_OnExclusionList()
|
||||
{
|
||||
// Arrange
|
||||
var exclusionList = new List<string>()
|
||||
{
|
||||
"12345",
|
||||
"6789",
|
||||
"2468"
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsOnExclusionList(2468, exclusionList);
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsOnExlusionList_NotOnExclusionList()
|
||||
{
|
||||
// Arrange
|
||||
var exclusionList = new List<string>()
|
||||
{
|
||||
"12345",
|
||||
"6789",
|
||||
"2468"
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsOnExclusionList(13579, exclusionList);
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddressUpdatedRecently_UpdatedRecently()
|
||||
{
|
||||
// Arrange
|
||||
var personPostalAddress = new PersonPostalAddress()
|
||||
{
|
||||
LastMaintained = DateTime.Now.AddDays(-10)
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddressUpdatedRecently(personPostalAddress, -25, DateTime.Now.ToString());
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddressUpdatedRecently_UpdatedRecently_SameAsExclusionDays()
|
||||
{
|
||||
// Arrange
|
||||
var time = DateTime.Now;
|
||||
var personPostalAddress = new PersonPostalAddress()
|
||||
{
|
||||
LastMaintained = time.AddDays(-25)
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddressUpdatedRecently(personPostalAddress, -25, time.ToString());
|
||||
|
||||
// Assert
|
||||
Assert.True(result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task IsAddressUpdatedRecently_NotUpdatedRecently()
|
||||
{
|
||||
// Arrange
|
||||
var personPostalAddress = new PersonPostalAddress()
|
||||
{
|
||||
LastMaintained = DateTime.Now.AddDays(-25)
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = _ncoaValidationService.IsAddressUpdatedRecently(personPostalAddress, -10, DateTime.Now.ToString());
|
||||
|
||||
// Assert
|
||||
Assert.False(result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user