using System.Threading.Tasks; using Moq; using Newtonsoft.Json; using Xunit; using CRIF.ACTion.Services.Crif; using Landmark.OLA.Models.Decisioning; using Landmark.OLA.Models.Decisioning.Enums; namespace Landmark.OLA.Integration.Tests { public class DecisionControllerTest : OlaIntegrationTest { public DecisionControllerTest() : base() { var decisionResult = new DecisioningDetails() { DecisioningState = DecisioningState.Ready, DecisioningResult = DecisioningResult.AcceptanceStatus_Provisional }; mockVendorClient.Setup(repo => repo.GetDecisionStatus("555")).Throws(new Error13Exception("Test Failure")); mockVendorClient.Setup(repo => repo.GetDecisionStatus("444")).ReturnsAsync(decisionResult); } [Fact] public async Task GetDecisionSpecialError13() { // The endpoint or route of the controller action. var httpResponse = await _client.GetAsync("/api/LoanApplication/555/DecisioningDetails"); // Must be successful. httpResponse.EnsureSuccessStatusCode(); // Deserialize and examine results. var stringResponse = await httpResponse.Content.ReadAsStringAsync(); var status = JsonConvert.DeserializeObject(stringResponse); Assert.Equal(DecisioningState.Unknown, status.DecisioningState); Assert.Equal(DecisioningResult.ProcessStatus_Incomplete, status.DecisioningResult); } [Fact] public async Task GetDecisionSuccess() { // The endpoint or route of the controller action. var httpResponse = await _client.GetAsync("/api/LoanApplication/444/DecisioningDetails"); // Must be successful. httpResponse.EnsureSuccessStatusCode(); // Deserialize and examine results. var stringResponse = await httpResponse.Content.ReadAsStringAsync(); var status = JsonConvert.DeserializeObject(stringResponse); Assert.Equal(DecisioningState.Ready, status.DecisioningState); } } }