Files
2026-04-20 14:47:24 -05:00

169 lines
5.4 KiB
C#

using System;
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 NoticeOfSurplusDeficiencyNotSentCheckerTest
{
private readonly NoticeOfSurplusDeficiencyNotSentChecker _checker;
public NoticeOfSurplusDeficiencyNotSentCheckerTest()
{
_checker = new NoticeOfSurplusDeficiencyNotSentChecker();
}
[Fact]
public void Does_Not_Create_Alert_When_Refunds_Received_Date_Is_Null()
{
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO"
},
UpdatedRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
RefundStatus = new RefundStatus
{
RepoId = 1,
RefundsReceivedDate = null
}
}
};
var result = _checker.CheckForAlert(slip);
Assert.Null(result);
}
[Fact]
public void Does_Not_Create_Alert_When_Refunds_Received_Date_Two_Days_Ago_And_Account_Not_Closed()
{
var originalRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
RefundStatus = new RefundStatus
{
RepoId = 1,
RefundsReceivedDate = DateTime.Now.AddDays(-2).Date
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = _checker.CheckForAlert(slip);
Assert.Null(result);
}
[Fact]
public void Creates_Alert_When_Refunds_Received_Date_Three_Days_Ago_And_Account_Not_Closed()
{
var originalRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
RefundStatus = new RefundStatus
{
RepoId = 1,
RefundsReceivedDate = DateTime.Now.AddDays(-3).Date
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = _checker.CheckForAlert(slip);
Assert.NotNull(result);
}
[Fact]
public void Does_Not_Create_Alert_When_Refunds_Received_Date_Three_Days_Ago_And_Account_Not_Closed_And_Bankruptcy_Not_Null()
{
var originalRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
Bankruptcy = "B7"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
Bankruptcy = "B7",
RefundStatus = new RefundStatus
{
RepoId = 1,
RefundsReceivedDate = DateTime.Now.AddDays(-3).Date
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = _checker.CheckForAlert(slip);
Assert.Null(result);
}
[Fact]
public void Does_Not_Create_Alert_When_Refunds_Received_Date_Three_Days_Ago_And_Account_Is_Closed()
{
var originalRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 1,
AccountNo = "123456-789",
Status = "REPO",
DateClosed = DateTime.Now.Date,
RefundStatus = new RefundStatus
{
RepoId = 1,
RefundsReceivedDate = DateTime.Now.AddDays(-3).Date
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = _checker.CheckForAlert(slip);
Assert.Null(result);
}
}
}