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 AuctionOnHoldCheckerTest { readonly AuctionOnHoldChecker _auctionOnHoldChecker; public AuctionOnHoldCheckerTest() { _auctionOnHoldChecker = new AuctionOnHoldChecker(); } [Fact] public void Auction_On_Hold_Created_Ok() { var updatedAccount = new RepoAccount() { Status = "REHO", Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { HoldStatus = 1 } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedAccount }; var result = _auctionOnHoldChecker.CheckForAlert(slip); Assert.NotNull(result); Assert.Equal("Auction On Hold", result[0].Message); } [Fact] public void Auction_On_Hold_Not_Created_RepoRedeemed() { var updatedAccount = new RepoAccount() { Status = "REDEEMED", Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { HoldStatus = 0 } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedAccount }; var result = _auctionOnHoldChecker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Auction_On_Hold_Not_Created_Sold() { var updatedAccount = new RepoAccount() { Status = "SOLD", Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { AuctionAssignments = new List() { new AuctionAssignment() { HoldStatus = 0 } }, ExistingRepoAccount = new RepoAccount(), UpdatedRepoAccount = updatedAccount }; var result = _auctionOnHoldChecker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Auction_On_Hold_Not_Created_No_AuctionAssignments() { var updatedAccount = new RepoAccount() { Status = "REHO", 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 = updatedAccount }; var result = _auctionOnHoldChecker.CheckForAlert(slip); Assert.Null(result); } } }