fix:手动互换不再产生应付预付金支出

This commit is contained in:
马冰冰
2026-08-06 14:44:30 +08:00
parent c1c2ed9dda
commit 15bf1a90ab
3 changed files with 64 additions and 1 deletions
@@ -63,5 +63,35 @@ namespace YLErp.Modules.SwapModule
Assert.AreEqual(ClientCashInCashOut._预付金返息, service.ClientCashCalls[1].action);
Console.WriteLine($"SI_002: 互换={service.ClientCashCalls[0].amount}, 预付金返息={service.ClientCashCalls[1].amount} ✅");
}
[TestMethod]
public void SI_003_SwapIncome_含预付金腿_不返还预付金本金()
{
var td = SwapDealTestFactory.CreateTrade();
td.ExerciseDate = new DateTime(2026, 12, 31);
var service = new TestableSwapDealService(td);
var unwindData = SwapDealTestFactory.CreateUnwindData(swapRealizedPnL: 0m);
unwindData.FlowEvents.Add(new swap_flow_event
{
UnderlyingCode = "UT-FLOAT",
MarkClosePnl = 100m,
PayDirection = 1
});
unwindData.FlowEvents.Add(new swap_flow_event
{
InterestMode = (int)InterestModeEnum.,
InterestDirection = 1,
InterestPrincipal = 10000m,
InterestClosePnL = 2m
});
service.SwapIncome(unwindData);
Assert.AreEqual(0m, unwindData.SwapMarginAmount, "手动互换不应返还预付金本金");
Assert.IsFalse(service.ClientCashCalls.Any(x => x.action == ClientCashInCashOut._应付预付金),
"手动互换不应生成应付预付金流水");
Assert.IsTrue(service.ClientCashCalls.Any(x => x.action == ClientCashInCashOut._预付金返息),
"手动互换仍应结算预付金返息");
}
}
}