Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber

This commit is contained in:
张名锐
2026-07-30 13:05:41 +08:00
8 changed files with 412 additions and 12 deletions
@@ -0,0 +1,106 @@
using YLErp.Configuration;
using YLErp.DBModels;
using YLErp.DBModels.Consts;
using YLErp.DBModels.Enums;
using YLErp.Modules.TradeModule.DocGenerateModule;
namespace YLErp.UnitTestProject.Modules.TradeModule.DocGenerateModule
{
[TestClass]
public class GuolianSwapConfirmBookScopeTest
{
[TestMethod]
public void IsPreApprovalTrade_AllAllowedStatuses_ReturnsTrue()
{
var statuses = new[]
{
ConsTrade.,
ConsTrade.,
ConsTrade.
};
foreach (var status in statuses)
{
var trade = CreateTrade(status);
Assert.IsTrue(GuolianSwapConfirmBookScope.IsPreApprovalTrade(trade, CompanyEnum.), status);
}
}
[TestMethod]
public void IsPreApprovalTrade_NonGuolianSwapOrInvalidTrade_ReturnsFalse()
{
var confirmedSwap = CreateTrade(ConsTrade.);
var optionTrade = CreateTrade(ConsTrade., "香草期权");
var invalidSwap = CreateTrade(ConsTrade.);
invalidSwap.ValidState = ConsGlobal.InValid;
Assert.IsFalse(GuolianSwapConfirmBookScope.IsPreApprovalTrade(confirmedSwap, CompanyEnum.));
Assert.IsFalse(GuolianSwapConfirmBookScope.IsPreApprovalTrade(optionTrade, CompanyEnum.));
Assert.IsFalse(GuolianSwapConfirmBookScope.IsPreApprovalTrade(CreateTrade(ConsTrade.), CompanyEnum.));
Assert.IsFalse(GuolianSwapConfirmBookScope.IsPreApprovalTrade(invalidSwap, CompanyEnum.));
}
[TestMethod]
public void OtherActiveReferencePredicate_OnlyMatchesOtherActiveTrade()
{
const string contractCode = "GLMS-TEST-20260728-FICC-04-000001";
var predicate = GuolianSwapConfirmBookCleanupService
.BuildOtherActiveReferencePredicate(contractCode, 4)
.Compile();
Assert.IsFalse(predicate(CreateRelation(4, contractCode, ContractTypeEnum.Trade, true)));
Assert.IsTrue(predicate(CreateRelation(7, contractCode, ContractTypeEnum.Trade, true)));
Assert.IsFalse(predicate(CreateRelation(7, contractCode, ContractTypeEnum.Trade, false)));
Assert.IsFalse(predicate(CreateRelation(7, "OTHER", ContractTypeEnum.Trade, true)));
Assert.IsFalse(predicate(CreateRelation(7, contractCode, ContractTypeEnum.Clearing, true)));
}
[TestMethod]
public void TradeConfirmationRelationPredicate_MatchesActiveAndInactiveRelations()
{
const string contractCode = "GLMS-TEST-20260728-FICC-04-000001";
var predicate = GuolianSwapConfirmBookCleanupService
.BuildTradeConfirmationRelationPredicate(4)
.Compile();
Assert.IsTrue(predicate(CreateRelation(4, contractCode, ContractTypeEnum.Trade, true)));
Assert.IsTrue(predicate(CreateRelation(4, contractCode, ContractTypeEnum.Trade, false)));
Assert.IsFalse(predicate(CreateRelation(7, contractCode, ContractTypeEnum.Trade, true)));
Assert.IsFalse(predicate(CreateRelation(4, contractCode, ContractTypeEnum.Clearing, true)));
}
[TestMethod]
public void ActiveOaResultPredicate_OnlyMatchesRejectedTradeActiveResult()
{
var predicate = GuolianSwapConfirmBookCleanupService
.BuildActiveOaResultPredicate(4)
.Compile();
Assert.IsTrue(predicate(new trade_contract_oa_result { trade_id = 4, is_valid = true }));
Assert.IsFalse(predicate(new trade_contract_oa_result { trade_id = 4, is_valid = false }));
Assert.IsFalse(predicate(new trade_contract_oa_result { trade_id = 7, is_valid = true }));
}
private static trade CreateTrade(string status, string tradeType = "收益互换")
{
return new trade
{
TradeType = tradeType,
TradeStatus = status,
ValidState = ConsGlobal.Valid
};
}
private static trade_contract_r CreateRelation(int tradeId, string contractCode, string type, bool isValid)
{
return new trade_contract_r
{
TradeId = tradeId,
ContractCode = contractCode,
Type = type,
IsValid = isValid
};
}
}
}