using System; using System.Collections.Generic; using LCU.API.Collections.RepoApi.Domain.AlertChecker; using LCU.API.Collections.RepoApi.Domain.Processing; using LCU.Shared.Collections.RepoApiLib.Models; using Xunit; namespace LCU.API.Collections.RepoApiTests.AlertCheckers { public class SoldNoProceedsCheckerTest { private readonly SoldNoProceedsChecker _soldNoProceedsChecker; public SoldNoProceedsCheckerTest() { _soldNoProceedsChecker = new SoldNoProceedsChecker(); } [Fact] public void Sold_No_Proceeds_Created_Ok() { var updatedRepoAccount = new RepoAccount() { Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { AutoIMS = new ImsAutoFileData() { SoldDate = DateTime.Now.AddDays(-6) } } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedRepoAccount }; var result = _soldNoProceedsChecker.CheckForAlert(slip); Assert.NotNull(result); Assert.Equal("Sold No Proceeds", result[0].Message); } [Fact] public void Sold_No_Proceeds_Not_Created_Funds_Sent() { var updatedRepoAccount = new RepoAccount() { Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { AutoIMS = new ImsAutoFileData() { SoldDate = DateTime.Now.AddDays(-6), FundsSent = DateTime.Now.AddDays(-2) } } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedRepoAccount }; var result = _soldNoProceedsChecker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Sold_No_Proceeds_Not_Created_SoldDate_Null() { var updatedRepoAccount = new RepoAccount() { Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { AutoIMS = new ImsAutoFileData() { FundsSent = DateTime.Now.AddDays(-2) } } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedRepoAccount }; var result = _soldNoProceedsChecker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Sold_No_Proceeds_Not_Created_No_AuctionAssignments() { var updatedRepoAccount = new RepoAccount() { Collaterals = new List() { new Collateral() } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { AutoIMS = new ImsAutoFileData() { FundsSent = DateTime.Now.AddDays(-2) } } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedRepoAccount }; var result = _soldNoProceedsChecker.CheckForAlert(slip); Assert.Null(result); } } }