122 lines
3.9 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|