using System.Collections.Generic; using System.IO; using Xunit; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using CRIF.ACTion.Loan.Assets; using Landmark.OLA.Models.Assets; using Landmark.OLA.Models.Assets.Enums; namespace CRIF.ACTion.Tests.Loan { public class LienPositionTest { private readonly RealEstateBase _realEstateBase = new() { CurrentlyBeingRemodeledOrImproved = false, CurrentlyListedForSale = true, Use = PropertyUse.SecondHome, LienPosition = new LienPosition { HasFirstMortgage = true, HasSecondMortgage = true, PayoffFirstMortgage = false, PayoffSecondMortgage = false } }; [Fact] public void GetFirstLienPositionTest() { _ = new RealEstateProperty(_realEstateBase); using StreamReader file = File.OpenText("Loan" + Path.DirectorySeparatorChar + "json" + Path.DirectorySeparatorChar + "TestLienPositions.json"); using JsonTextReader reader = new(file); JObject allData = (JObject)JToken.ReadFrom(reader); JArray firstLien = (JArray)allData["first"]; IList validFirstLienPositions = firstLien.ToObject>(); JArray secondLien = (JArray)allData["second"]; IList validSecondLienPositions = secondLien.ToObject>(); JArray thirdLien = (JArray)allData["third"]; IList validThirdLienPositions = thirdLien.ToObject>(); foreach (var position in validFirstLienPositions) { LienPositionType calculatedPosition = RealEstateProperty.GetLienPosition(position); Assert.Equal(LienPositionType.First, calculatedPosition); } foreach (var position in validSecondLienPositions) { LienPositionType calculatedPosition = RealEstateProperty.GetLienPosition(position); Assert.Equal(LienPositionType.Second, calculatedPosition); } foreach (var position in validThirdLienPositions) { LienPositionType calculatedPosition = RealEstateProperty.GetLienPosition(position); Assert.Equal(LienPositionType.Third, calculatedPosition); } } } }