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

122 lines
3.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
using Org.XmlUnit.Diff;
using Xunit;
using CRIF.ACTion.Common.Parsers;
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 AddIndividualResponseParserTest
{
private readonly IResponseParser<Individual> IndividualParser;
private readonly int applicationId = 1100950;
public AddIndividualResponseParserTest()
{
IndividualParser = new AddIndividualResponseParser();
}
private readonly Individual individual = new(new Guid("325f9caf-b08a-44dc-af67-bd49db6a822c"))
{
FirstName = "Jane",
MiddleInitial = "A",
LastName = "Doe",
DOB = new DateTime(2018, 7, 9),
Phone = "1235555555",
PhoneType = PhoneType.Home,
SSN = "000090001",
Email = "[email protected]",
IsMarried = false,
Language = LanguageOption.English,
HasOptedOutTCPA = true,
Address = new CurrentResidenceAddress(new Guid("325f9caf-b08a-44dc-af67-bd49db6a822c"))
{
Address1 = "123 Main St",
City = "New Berlin",
State = StateOption.WI,
PostalCode = "53151",
Country = CountryOption.UnitedStates,
MonthsResided = 12,
ResidenceType = ResidenceTypeOption.Own,
MonthlyPayment = 100,
},
};
[Fact]
public void ErrorResponseParse()
{
XmlDocument doc = new();
doc.Load("ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AddIndividualError.xml");
XDocument response;
using (XmlNodeReader reader = new(doc))
{
response = XDocument.Load(reader);
}
Exception ex = Assert.Throws<Exception>(() => IndividualParser.Parse(response.Root));
Assert.Equal("The 'Common:isCollateralGrantorFL' attribute is not declared. on line 1 position 166", ex.Message);
}
[Fact]
public void SuccessResponseParse()
{
XmlDocument doc = new();
doc.Load("ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AddIndividualSuccess.xml");
XDocument response;
using (XmlNodeReader reader = new(doc))
{
response = XDocument.Load(reader);
}
var parsedIndividual = IndividualParser.Parse(response.Root);
Assert.Equal("Jane", parsedIndividual.FirstName);
}
[Fact]
public void Validate()
{
var addIndividual =
new AddIndividualRequestBuilder(applicationId.ToString(), individual, TestCommon.GetTestSettings()).Build();
Assert.Empty(TestCommon.Validate(addIndividual));
}
[Fact]
public void CorrectBuild()
{
var addIndividual =
new AddIndividualRequestBuilder(applicationId.ToString(), individual, TestCommon.GetTestSettings()).Build();
var result = TestCommon.Compare(addIndividual,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AddIndividual-Simple.xml");
Assert.Empty(result);
}
[Fact]
public void BadNamespace()
{
var addIndividual =
new AddIndividualRequestBuilder(applicationId.ToString(), individual, TestCommon.GetTestSettings()).Build();
var result = TestCommon.Compare(addIndividual,
"ExampleXML" + System.IO.Path.DirectorySeparatorChar + "AddIndividual-BadNamespace.xml");
Assert.NotEmpty(result);
}
}
}