#EQD-6604 国联民生-确认书编码生成环节移到簿记(支持手工录入)
feat: 国联民生收益互换簿记后按确认书规则生成交易编 - 补充单测文件
This commit is contained in:
+70
@@ -0,0 +1,70 @@
|
||||
using YLErp.Configuration;
|
||||
using YLErp.DBModels;
|
||||
using YLErp.Modules.TradeModule.DocGenerateModule;
|
||||
|
||||
namespace YLErp.UnitTestProject.Modules.TradeModule.DocGenerateModule
|
||||
{
|
||||
[TestClass]
|
||||
public class GuolianContractNoGeneratorTest
|
||||
{
|
||||
[TestMethod]
|
||||
public void IsGuolianSwapTrade_OnlyMatchesGuolianSwap()
|
||||
{
|
||||
var swapTrade = CreateSwapTrade();
|
||||
|
||||
Assert.IsTrue(GuolianContractNoGenerator.IsGuolianSwapTrade(swapTrade, CompanyEnum.国联));
|
||||
Assert.IsFalse(GuolianContractNoGenerator.IsGuolianSwapTrade(
|
||||
new trade { TradeType = "香草期权" }, CompanyEnum.国联));
|
||||
Assert.IsFalse(GuolianContractNoGenerator.IsGuolianSwapTrade(swapTrade, CompanyEnum.国泰君安));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldGenerateTradeNumberAfterSave_OnlyGeneratesForBlankTradeNumber()
|
||||
{
|
||||
var blankTrade = CreateSwapTrade();
|
||||
var manualTrade = CreateSwapTrade();
|
||||
manualTrade.TradeNumber = "MANUAL-001";
|
||||
|
||||
Assert.IsTrue(GuolianContractNoGenerator.ShouldGenerateTradeNumberAfterSave(
|
||||
blankTrade, CompanyEnum.国联));
|
||||
Assert.IsFalse(GuolianContractNoGenerator.ShouldGenerateTradeNumberAfterSave(
|
||||
manualTrade, CompanyEnum.国联));
|
||||
Assert.IsFalse(GuolianContractNoGenerator.ShouldGenerateTradeNumberAfterSave(
|
||||
blankTrade, CompanyEnum.国泰君安));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void BuildTradeNumber_ClientTrade_UsesNumericSequenceAndSanitizesUnderlyingCode()
|
||||
{
|
||||
var trade = CreateSwapTrade();
|
||||
trade.OpponentRole = "甲方";
|
||||
trade.TradeDate = new DateTime(2026, 7, 24);
|
||||
trade.UnderlyingCode = "250210.IB";
|
||||
|
||||
var number = GuolianContractNoGenerator.BuildTradeNumber(trade, "IS", 3);
|
||||
|
||||
Assert.AreEqual("GLMS-IS-20260724-FICC-03-250210IB", number);
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow(1, "A")]
|
||||
[DataRow(26, "Z")]
|
||||
[DataRow(27, "AA")]
|
||||
public void BuildTradeNumber_NonClientTrade_UsesLetterSequence(int sequenceNo, string sequenceCode)
|
||||
{
|
||||
var trade = CreateSwapTrade();
|
||||
trade.OpponentRole = "乙方";
|
||||
trade.TradeDate = new DateTime(2026, 7, 24);
|
||||
trade.UnderlyingCode = "180205.IB";
|
||||
|
||||
var number = GuolianContractNoGenerator.BuildTradeNumber(trade, "glmscounter", sequenceNo);
|
||||
|
||||
Assert.AreEqual($"GLMS-glmscounter-20260724-FICC-{sequenceCode}-180205IB", number);
|
||||
}
|
||||
|
||||
private static trade CreateSwapTrade()
|
||||
{
|
||||
return new trade { TradeType = "收益互换" };
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user