using System; using System.Collections.Generic; using LCU.API.Collections.CollectionsApiLib.Models; 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 SkipEndCheckerTest { [Fact] public void Create_SkipNotEnded_Ok() { var checker = new SkipEndChecker(91); var originalRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "O4R" }; var updatedRepoAccount = new RepoAccount() { AccountNo = "123456-789", Status = "O4R", Collaterals = new List() { new Collateral { RepoCompanySelections = new List() { new RepoCompanySelection() { RepoType = RepoType.Skip } } } }, RepoStatusChanges = new List() { new RepoStatusChange() { StatusFrom = "None", StatusTo = "O4R", ChangedDate = DateTime.Now.AddDays(-90) } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = checker.CheckForAlert(slip); Assert.Null(result); } [Fact] public void Create_SkipEnded_Ok() { var checker = new SkipEndChecker(91); var originalRepoAccount = new RepoAccount() { RepoId = 1, AccountNo = "123456-789", Status = "O4R" }; var updatedRepoAccount = new RepoAccount() { RepoId = 1, AccountNo = "123456-789", Status = "O4R", Collaterals = new List() { new Collateral { RepoCompanySelections = new List() { new RepoCompanySelection() { RepoType = RepoType.Skip } } } }, RepoStatusChanges = new List() { new RepoStatusChange() { StatusFrom = "None", StatusTo = "O4R", ChangedDate = DateTime.Now.AddDays(-91) } } }; var slip = new RepoAccountProcessingSlip() { ExistingRepoAccount = originalRepoAccount, UpdatedRepoAccount = updatedRepoAccount }; var result = checker.CheckForAlert(slip); Assert.NotNull(result); Assert.Equal("Skip Claim Ended", result[0].Message); Assert.Equal("123456-789", result[0].AccountNo); Assert.Equal("Batch", result[0].CreatedBy); Assert.InRange(result[0].DateAdded, DateTime.Now.AddSeconds(-1), DateTime.Now.AddSeconds(1)); Assert.Equal(1, result[0].RepoId); Assert.Null(result[0].MarkedReadBy); Assert.Null(result[0].DateMarkedRead); } } }