public void AddTranche_FixedPrincipal_ApplyNewInterest_Cash() { ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash); Loan loan = _GetLoan(_GetFixedPrincipalProduct(), 1000, 0.025m, 4, new DateTime(2010, 5, 11)); loan.Disburse(new DateTime(2010, 5, 11), true, false); loan.Repay(1, new DateTime(2010, 6, 11), 275m, false, true); loan.Repay(2, new DateTime(2010, 7, 9), 269m, false, true); Assert.AreEqual(loan.GetInstallment(0).IsRepaid, true); Assert.AreEqual(loan.GetInstallment(1).IsRepaid, true); TrancheOptions to = new TrancheOptions { TrancheDate = new DateTime(2010, 7, 15), CountOfNewInstallments = 4, TrancheAmount = 1000, InterestRate = 0.03m, ApplyNewInterestOnOLB = true }; loan.AddTranche(loan.CalculateTranche(to)); _AssertInstallment(loan, 2, "2010-08-16", 45m, 500m); _AssertInstallment(loan, 3, "2010-09-15", 30m, 500m); _AssertInstallment(loan, 4, "2010-10-15", 15m, 250m); _AssertInstallment(loan, 5, "2010-11-15", 8m, 250m); }
public void AddTranche_Annuity_ApplyNewInterest_Accrual() { ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Accrual); Loan loan = _GetLoan(_GetAnnuityProduct(), 1000, 0.025m, 4, new DateTime(2010, 5, 11)); loan.Disburse(new DateTime(2010, 5, 11), true, false); loan.Repay(1, new DateTime(2010, 6, 11), 266m, false, true); loan.Repay(2, new DateTime(2010, 7, 9), 266m, false, true); Assert.AreEqual(loan.GetInstallment(0).IsRepaid, true); Assert.AreEqual(loan.GetInstallment(1).IsRepaid, true); TrancheOptions to = new TrancheOptions { TrancheDate = new DateTime(2010, 7, 15), CountOfNewInstallments = 4, TrancheAmount = 1000, InterestRate = 0.03m, ApplyNewInterestOnOLB = true }; loan.AddTranche(loan.CalculateTranche(to)); _AssertInstallment(loan, 2, "2010-08-16", 46m, 362m); _AssertInstallment(loan, 3, "2010-09-15", 35m, 372m); _AssertInstallment(loan, 4, "2010-10-15", 23m, 384m); _AssertInstallment(loan, 5, "2010-11-15", 12m, 394m); }