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 RedemptionEndedNoTitleOrderedCheckerTest { private readonly RedemptionEndedNoTitleOrderedChecker _checker; public RedemptionEndedNoTitleOrderedCheckerTest() { _checker = new RedemptionEndedNoTitleOrderedChecker(); } [Fact] public void Create_TooFewDays_Ok() { var originalRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO" }; var updatedRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO", RedemptionExpiredDate = DateTime.Now.AddDays(-7), Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = _checker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Create_StatusNotRepo_Ok() { var originalRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "O4R" }; var updatedRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "O4R", RedemptionExpiredDate = DateTime.Now.AddDays(-8), Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = _checker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Create_RedemptionEndedNoTitleOrdered_Ok() { var originalRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO" }; var updatedRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO", RedemptionExpiredDate = DateTime.Now.AddDays(-8), Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } } } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = _checker.CheckForAlert(slip); Assert.NotNull(result); Assert.Equal("Redemption Ended No Title Ordered", result[0].Message); } [Fact] public void Create_RedemptionEndedTitleOrdered_Ok() { var originalRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO" }; var updatedRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "REPO", RedemptionExpiredDate = DateTime.Now.AddDays(-8), Collaterals = new List() { new Collateral() { AuctionAssignmentToCollaterals = new List() { new AuctionAssignmentToCollateral() { AuctionAssignmentId = 1, CollateralId = 1 } }, RetitledInLandmarkName = DateTime.Now.AddDays(-5) } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = _checker.CheckForAlert(slip); Assert.Null(result); } } }