Files
monorepo/LCU.API.Collections.RepoApi-old/LCU.API.Collections.RepoApiTests/AlertCheckers/StatusChangeCheckerTest.cs
T
2026-04-20 14:47:24 -05:00

148 lines
5.3 KiB
C#

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 StatusChangeCheckerTest
{
[Fact]
public void Create_StatusIsUnchanged_Ok()
{
var checker = new StatusChangeChecker("RECA");
var originalRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "RECA"
};
var updatedRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "RECA"
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.Null(result);
}
[Fact]
public void Create_StatusIsReca_Ok()
{
var checker = new StatusChangeChecker("RECA");
var originalRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = "REPO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = "RECA"
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.NotNull(result);
Assert.Equal("Status Changed to RECA", result[0].Message);
Assert.Equal("Previously REPO. I confirm that I have updated the Status to RECA in RDN.",
result[0].SubMessage);
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(2, result[0].RepoId);
Assert.Null(result[0].MarkedReadBy);
Assert.Null(result[0].DateMarkedRead);
}
[Fact]
public void Create_StatusIsReho_Ok()
{
var checker = new StatusChangeChecker("REHO");
var originalRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = "REPO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = "REHO"
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.NotNull(result);
Assert.Equal("Status Changed to REHO", result[0].Message);
Assert.Equal("Previously REPO. I confirm that I have updated the Status to REHO in RDN.",
result[0].SubMessage);
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(2, result[0].RepoId);
Assert.Null(result[0].MarkedReadBy);
Assert.Null(result[0].DateMarkedRead);
}
[Fact]
public void Create_StatusFromO4rToBlank_Ok()
{
var DefaultNoStatusIntellec = "NO STATUS INTELLEC";
var checker = new StatusChangeChecker(DefaultNoStatusIntellec, new List<string>() { "O4R", "REPO" });
var originalRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = "O4R"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 2,
AccountNo = "123456-789",
Status = DefaultNoStatusIntellec
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.NotNull(result);
Assert.Equal("Status Changed to " + DefaultNoStatusIntellec, result[0].Message);
Assert.Equal("Previously O4R. I confirm that I have updated the Status to NO STATUS INTELLEC in RDN.",
result[0].SubMessage);
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(2, result[0].RepoId);
Assert.Null(result[0].MarkedReadBy);
Assert.Null(result[0].DateMarkedRead);
}
}
}