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

180 lines
5.8 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 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<Collateral>()
{
new Collateral()
{
AuctionAssignmentToCollaterals = new List<AuctionAssignmentToCollateral>()
{
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<Collateral>()
{
new Collateral()
{
AuctionAssignmentToCollaterals = new List<AuctionAssignmentToCollateral>()
{
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<Collateral>()
{
new Collateral()
{
AuctionAssignmentToCollaterals = new List<AuctionAssignmentToCollateral>()
{
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<Collateral>()
{
new Collateral()
{
AuctionAssignmentToCollaterals = new List<AuctionAssignmentToCollateral>()
{
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);
}
}
}