fix:手动互换不再产生应付预付金支出
This commit is contained in:
@@ -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.系统操作_预付金返息),
|
||||
"手动互换仍应结算预付金返息");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user