Merge branch 'glms/feature/1.4.2' into glms/feature/dotnumber
This commit is contained in:
+106
@@ -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
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user