61 lines
2.0 KiB
C#
61 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Xml.Linq;
|
|
using Xunit;
|
|
using CRIF.ACTion.Decisioning;
|
|
using Landmark.OLA.Models.Decisioning;
|
|
using Landmark.OLA.Models.Decisioning.Enums;
|
|
|
|
namespace CRIF.ACTion.Tests.Decisioning
|
|
{
|
|
public class GetApplicationProductsResponseParserTest
|
|
{
|
|
private const string LoanApplicationId = "1200217";
|
|
|
|
[Fact]
|
|
public void DecisionStatus_Review()
|
|
{
|
|
GetDecisionStatusParserResponse("CashBackCC_Under-Review.xml",
|
|
new DecisioningDetails([85,])
|
|
{
|
|
DecisioningState = DecisioningState.Ready,
|
|
DecisioningResult = DecisioningResult.DecisionStatus_Review,
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public void InvalidApplication()
|
|
{
|
|
/*
|
|
This situation would likely not occur with our use cases, but if an application has more than one
|
|
AppDetail section, the client will need to ask for a specific result.
|
|
*/
|
|
Assert.Throws<ArgumentException>(() =>
|
|
GetDecisionStatusParserResponse("Multiple-AppDetails.xml", null));
|
|
}
|
|
|
|
[Fact]
|
|
public void InvalidApplicationIdInResponse()
|
|
{
|
|
Assert.Throws<InvalidOperationException>(() =>
|
|
GetDecisionStatusParserResponse("InvalidApplicationId.xml", null));
|
|
}
|
|
|
|
|
|
private static void GetDecisionStatusParserResponse(string fileName, DecisioningDetails expectedResult)
|
|
{
|
|
string successResponsePath = "ExampleXML" + System.IO.Path.DirectorySeparatorChar + "GetApplicationsProductsParser" + System.IO.Path.DirectorySeparatorChar + fileName;
|
|
|
|
var decisionResponse = (XElement)XDocument.Load(successResponsePath).FirstNode;
|
|
|
|
var parser = new GetApplicationProductsResponseParser();
|
|
|
|
parser.SetLoanId(LoanApplicationId);
|
|
|
|
var result = parser.Parse(decisionResponse);
|
|
|
|
Assert.Equal(expectedResult, result);
|
|
}
|
|
}
|
|
}
|