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

168 lines
5.6 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 TimeInStatusCheckerTest
{
[Fact]
public void Create_TooFewDays_Ok()
{
var checker = new TimeInStatusChecker("REHO", 30, 30);
var originalRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "REHO"
};
var updatedRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "REHO",
RepoStatusChanges = new List<RepoStatusChange>()
{
new RepoStatusChange()
{
StatusFrom = "None",
StatusTo = "REHO",
ChangedDate = DateTime.Now.AddDays(-29)
}
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.Null(result);
}
[Fact]
public void Create_30DaysInReho_Ok()
{
var checker = new TimeInStatusChecker("REHO", 30, 30);
var originalRepoAccount = new RepoAccount()
{
RepoId = 9,
AccountNo = "123456-789",
Status = "REHO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 9,
AccountNo = "123456-789",
Status = "REHO",
RepoStatusChanges = new List<RepoStatusChange>()
{
new RepoStatusChange()
{
StatusFrom = "None",
StatusTo = "REHO",
ChangedDate = DateTime.Now.AddDays(-30)
}
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.NotNull(result);
Assert.Equal("30 days in REHO", 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(9, result[0].RepoId);
Assert.Null(result[0].MarkedReadBy);
Assert.Null(result[0].DateMarkedRead);
}
[Fact]
public void Create_30DaysInRehoRepeat_Ok()
{
var checker = new TimeInStatusChecker("REHO", 30, 30);
var originalRepoAccount = new RepoAccount()
{
RepoId = 9,
AccountNo = "123456-789",
Status = "REHO"
};
var updatedRepoAccount = new RepoAccount()
{
RepoId = 9,
AccountNo = "123456-789",
Status = "REHO",
RepoStatusChanges = new List<RepoStatusChange>()
{
new RepoStatusChange()
{
StatusFrom = "None",
StatusTo = "REHO",
ChangedDate = DateTime.Now.AddDays(-60)
}
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.NotNull(result);
Assert.Equal("60 days in REHO", 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(9, result[0].RepoId);
Assert.Null(result[0].MarkedReadBy);
Assert.Null(result[0].DateMarkedRead);
}
[Fact]
public void Create_45DaysInRehoNull_Ok()
{
var checker = new TimeInStatusChecker("REHO", 30, 30);
var originalRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "REHO"
};
var updatedRepoAccount = new RepoAccount()
{
AccountNo = "123456-789",
Status = "REHO",
RepoStatusChanges = new List<RepoStatusChange>()
{
new RepoStatusChange()
{
StatusFrom = "None",
StatusTo = "REHO",
ChangedDate = DateTime.Now.AddDays(-45)
}
}
};
var slip = new RepoAccountProcessingSlip()
{
ExistingRepoAccount = originalRepoAccount,
UpdatedRepoAccount = updatedRepoAccount
};
var result = checker.CheckForAlert(slip);
Assert.Null(result);
}
}
}