Files
monorepo/LCU.API.Internal.OnlineLoanApp/CRIF.ACTion.Tests/Loan/Individuals/AppPartiesSectionTest.cs
T
2026-03-11 11:18:25 -05:00

216 lines
7.6 KiB
C#

using System;
using System.Collections.Generic;
using Xunit;
using CRIF.ACTion.Loan.Individuals;
using Landmark.OLA.Models.Addresses.Enums;
using Landmark.OLA.Models.Individuals;
using Landmark.OLA.Models.Individuals.Enums;
using Landmark.OLA.Models.Residences;
namespace CRIF.ACTion.Tests.Loan.Individuals
{
public class AppPartiesSectionTest
{
private static Guid TestGuid => new("a333a064-be7b-4d20-841f-9c3c306866b3");
private readonly Individual Individual = new(new Guid("3580f8c9-db39-42f9-a9f3-133fe4a3b002"))
{
FirstName = "Jane",
MiddleInitial = "A",
LastName = "Doe",
DOB = new DateTime(2018, 7, 9),
Phone = "1235555555",
PhoneType = PhoneType.Home,
SSN = "000090001",
Email = "[email protected]",
IsMarried = false,
Address = new CurrentResidenceAddress
{
Address1 = "123 Main St",
City = "New Berlin",
State = StateOption.WI,
PostalCode = "53151",
MonthsResided = 12,
ResidenceType = ResidenceTypeOption.Own,
MonthlyPayment = 100,
},
OtherIncomes =
[
new Income
{
IncomeTypeCD = IncomeType.Alimony,
SourceName = "Child Support",
AmountPerPeriod = 500.0m,
Frequency = Frequency.Annually,
IncomeStatus = IncomeStatus.IncomeStatus_Included
}
],
Employers =
[
new Employer
{
Name = "College Pro Painters",
Title = "tester",
WorkPhone = "9992245555",
MonthsEmployed = 60,
CurrentEmployer = true,
EmploymentType = EmploymentTypeOption.FullTime,
Income = new Income
{
IncomeTypeCD = IncomeType.Salary,
SourceName = "Salary",
AmountPerPeriod = 5000.0m,
Frequency = Frequency.Annually,
IncomeStatus = IncomeStatus.IncomeStatus_Included
}
}
]
};
private readonly IIndividualHistory HistoryIndividual = new HistoryIndividual(new Guid("3580f8c9-db39-42f9-a9f3-133fe4a3b002"))
{
FirstName = "Jane",
MiddleInitial = "A",
LastName = "Doe",
DOB = new DateTime(2018, 7, 9),
Phone = "1235555555",
PhoneType = PhoneType.Home,
SSN = "000090001",
Email = "[email protected]",
Address = new CurrentResidenceAddress
{
Address1 = "123 Main St",
City = "New Berlin",
State = StateOption.WI,
PostalCode = "53151",
MonthsResided = 12,
ResidenceType = ResidenceTypeOption.Own,
MonthlyPayment = 100,
},
OtherIncomes =
[
new Income
{
IncomeTypeCD = IncomeType.Alimony,
SourceName = "Child Support",
AmountPerPeriod = 500.0m,
Frequency = Frequency.Annually,
IncomeStatus = IncomeStatus.IncomeStatus_Included
}
],
};
[Fact]
public void AddIndividualBorrowerParty()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.AddIndividualParty(Individual, AppPartiesSection.PartyType.borrower, false);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "AddIndividualBorrowerParty.xml");
Assert.Empty(result);
}
[Fact]
public void AddIndividualNonSigningPrimarySpouseParty()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.AddIndividualParty(HistoryIndividual, AppPartiesSection.PartyType.NonSigningSpouseMarriedToPrimary);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "AddIndividualNonSigningPrimarySpouseParty.xml");
Assert.Empty(result);
}
[Fact]
public void AddIndividualNonSigningCoApplicantSpouseParty()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.AddIndividualParty(HistoryIndividual, AppPartiesSection.PartyType.NonSigningSpouseMarriedToCoBorrower);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "AddIndividualNonSigningCoApplicantSpouseParty.xml");
Assert.Empty(result);
}
[Fact]
public void AddRentAndAlimony()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.AddIndividualParty(Individual, AppPartiesSection.PartyType.borrower);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "AddIndividualBorrowerParty.xml");
Assert.Empty(result);
}
[Fact]
public void AddIndividualPrimaryBorrowerParty()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.AddIndividualParty(Individual, AppPartiesSection.PartyType.primaryBorrower);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "AddIndividualPrimaryBorrowerParty.xml");
Assert.Empty(result);
}
[Fact]
public void SetSourceChannel()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.SetSourceChannel(TestGuid);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "SetSourceChannel.xml");
Assert.Empty(result);
}
[Fact]
public void SetServicingChannel()
{
var section = new AppPartiesSection("", TestCommon.GetTestSettings());
section.SetServicingChannel(TestGuid);
var partyElement = section.Build();
var result = TestCommon.Compare(partyElement,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AppPartiesSection"
+ System.IO.Path.DirectorySeparatorChar + "SetServicingChannel.xml");
Assert.Empty(result);
}
}
}