public void RepayInstallments_DontCancelFees_InitialAmount_RepaymentTwicelyADay() { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "10-days", 10, 0), LoanType = OLoanTypes.Flat, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1 } }; package.KeepExpectedInstallment = true; package.AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB; Loan myContract = new Loan(package, 8000, 0.03333m, 5, 0, new DateTime(2010, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0.01; myContract.NonRepaymentPenalties = new NonRepaymentPenalties(0, 0, 0.0667, 0.01); myContract.CalculateInstallments(true); myContract.Disburse(new DateTime(2010, 1, 1), false, true); myContract.Repay(1, new DateTime(2010, 1, 8), 30, false, true); RepaymentEvent rPE = myContract.Repay(1, new DateTime(2010, 1, 11), 0, false, true); Assert.AreEqual(rPE.Penalties, 0); }