fix(trade): 标的除权0覆盖旧值
- 重命名 MergeNonZeroDividendValues 方法为 MergeDividendValues - 修改合并逻辑,数值字段(包括 0)都作为有效覆盖值进行合并 - 更新注释说明合并规则的变化 - 添加零现金分红覆盖现有值的单元测试 - 修复数据库记录合并时的字段覆盖逻辑
This commit is contained in:
@@ -133,6 +133,17 @@ namespace YLErp.Modules.SwapModule
|
||||
Assert.AreEqual(1m, GetSplit(target));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ZeroCashDividendOverridesExistingValueDuringMerge()
|
||||
{
|
||||
var target = CreateCorporateAction(cash: 10m);
|
||||
var source = CreateCorporateAction(cash: 0m);
|
||||
|
||||
InvokeMerge(target, source);
|
||||
|
||||
Assert.AreEqual(0m, target.GiveCashAmount);
|
||||
}
|
||||
|
||||
private static ex_dividend_info CreateCorporateAction(
|
||||
decimal cash = 0m,
|
||||
decimal giveShare = 0m,
|
||||
@@ -188,7 +199,7 @@ namespace YLErp.Modules.SwapModule
|
||||
private static void InvokeMerge(ex_dividend_info target, ex_dividend_info source)
|
||||
{
|
||||
var method = typeof(DividendService).GetMethod(
|
||||
"MergeNonZeroDividendValues",
|
||||
"MergeDividendValues",
|
||||
BindingFlags.Static | BindingFlags.NonPublic);
|
||||
Assert.IsNotNull(method, "公司行为存量合并方法不存在");
|
||||
method.Invoke(null, new object[] { target, source });
|
||||
|
||||
Reference in New Issue
Block a user