use of org.mifos.accounts.loan.business.LoanBO in project head by mifos.
the class LoanArrearsAgingHelperIntegrationTest method testLoanWithOnePaymentMadeAndOneOverduePayments.
/**
* unsure why its failing.
*/
@Ignore
@Test
public void testLoanWithOnePaymentMadeAndOneOverduePayments() throws Exception {
LoanBO loan = setUpLoan(dateTime, AccountState.LOAN_ACTIVE_IN_GOOD_STANDING);
Assert.assertNull(loan.getLoanArrearsAgingEntity());
short daysOverdue = 3;
// advance time daysOverdue past the second repayment interval
dateTime = dateTime.plusDays(2 * repaymentInterval + daysOverdue);
new DateTimeService().setCurrentDateTimeFixed(dateTime);
// make one payment, so we should still be one payment behind after that
PaymentData paymentData = PaymentData.createPaymentData(new Money(Configuration.getInstance().getSystemConfig().getCurrency(), "" + onePayment), loan.getPersonnel(), Short.valueOf("1"), dateTime.toDate());
IntegrationTestObjectMother.applyAccountPayment(loan, paymentData);
runLoanArrearsThenLoanArrearsAging();
StaticHibernateUtil.flushAndClearSession();
loan = legacyLoanDao.getAccount(loan.getAccountId());
Assert.assertNotNull(loan.getLoanArrearsAgingEntity());
LoanArrearsAgingEntity loanArrearsAgingEntity = loan.getLoanArrearsAgingEntity();
Assert.assertEquals(new Money(getCurrency(), "" + (loanAmount - principalForOneInstallment)), loanArrearsAgingEntity.getUnpaidPrincipal());
Assert.assertEquals(new Money(getCurrency(), "" + (totalInterest - interestForOneInstallment)), loanArrearsAgingEntity.getUnpaidInterest());
Assert.assertEquals(new Money(getCurrency(), "" + principalForOneInstallment), loanArrearsAgingEntity.getOverduePrincipal());
Assert.assertEquals(new Money(getCurrency(), "" + interestForOneInstallment), loanArrearsAgingEntity.getOverdueInterest());
Assert.assertEquals(new Money(getCurrency(), "" + (principalForOneInstallment + interestForOneInstallment)), loanArrearsAgingEntity.getOverdueBalance());
Assert.assertEquals(Short.valueOf(daysOverdue), loanArrearsAgingEntity.getDaysInArrears());
}
use of org.mifos.accounts.loan.business.LoanBO in project head by mifos.
the class LoanArrearsAgingHelperIntegrationTest method testLoanWithOneOverduePayment.
// create a weekly 10 week loan of 100 with flat 100% interest (total interest is 20 or 2 each week)
// advance the date by ten days, run the batch job
// one weeks payment should be in arrears
@Ignore
@Test
public void testLoanWithOneOverduePayment() throws Exception {
LoanBO loan = setUpLoan(dateTime, AccountState.LOAN_ACTIVE_IN_GOOD_STANDING);
LoanArrearsAgingEntity loanArrearsAgingEntity = ageLoanTenDaysAndGetLoanArrearsAgingEntity(loan);
Assert.assertEquals(new Money(getCurrency(), "" + loanAmount), loanArrearsAgingEntity.getUnpaidPrincipal());
Assert.assertEquals(new Money(getCurrency(), "" + totalInterest), loanArrearsAgingEntity.getUnpaidInterest());
Assert.assertEquals(new Money(getCurrency(), "" + principalForOneInstallment), loanArrearsAgingEntity.getOverduePrincipal());
Assert.assertEquals(new Money(getCurrency(), "" + interestForOneInstallment), loanArrearsAgingEntity.getOverdueInterest());
Assert.assertEquals(new Money(getCurrency(), "" + (principalForOneInstallment + interestForOneInstallment)), loanArrearsAgingEntity.getOverdueBalance());
Assert.assertEquals(Short.valueOf("3"), loanArrearsAgingEntity.getDaysInArrears());
assertForLoanArrearsAgingEntity(loan);
}
use of org.mifos.accounts.loan.business.LoanBO in project head by mifos.
the class LoanArrearsHelperIntegrationTest method setDisbursementDateAsOldDate.
private void setDisbursementDateAsOldDate(AccountBO account) {
Date startDate = offSetCurrentDate(15);
LoanBO loan = (LoanBO) account;
LoanBOTestUtils.modifyDisbursementDate(loan, startDate);
for (AccountActionDateEntity actionDate : loan.getAccountActionDates()) {
LoanBOTestUtils.setActionDate(actionDate, offSetGivenDate(actionDate.getActionDate(), 18));
}
}
use of org.mifos.accounts.loan.business.LoanBO in project head by mifos.
the class LoanArrearsTaskIntegrationTest method setDisbursementDateAsOldDate.
private void setDisbursementDateAsOldDate(AccountBO account) {
Date startDate = offSetCurrentDate(15);
LoanBO loan = (LoanBO) account;
LoanBOTestUtils.modifyDisbursementDate(loan, startDate);
for (AccountActionDateEntity actionDate : loan.getAccountActionDates()) {
LoanBOTestUtils.setActionDate(actionDate, offSetGivenDate(actionDate.getActionDate(), 18));
}
}
use of org.mifos.accounts.loan.business.LoanBO in project head by mifos.
the class TestObjectFactory method deleteSpecificAccount.
private static void deleteSpecificAccount(final AccountBO account, final Session session) {
if (account instanceof LoanBO) {
LoanBO loan = (LoanBO) account;
if (null != loan.getLoanSummary()) {
session.delete(loan.getLoanSummary());
}
session.delete(account);
loan.getLoanOffering().getLoanOfferingMeeting().setMeeting(null);
session.delete(loan.getLoanOffering().getLoanOfferingMeeting());
session.delete(loan.getLoanOffering());
}
if (account instanceof SavingsBO) {
SavingsBO savings = (SavingsBO) account;
session.delete(account);
// FIXME - no longer create a meeting to track intereswt calculation for each savings account, instead we always use value from savigns product.
// session.delete(savings.getTimePerForInstcalc());
PrdOfferingMeetingEntity prdOfferingMeeting1 = savings.getSavingsOffering().getTimePerForInstcalc();
prdOfferingMeeting1.setMeeting(null);
session.delete(prdOfferingMeeting1);
PrdOfferingMeetingEntity prdOfferingMeeting2 = savings.getSavingsOffering().getFreqOfPostIntcalc();
prdOfferingMeeting2.setMeeting(null);
session.delete(prdOfferingMeeting2);
session.delete(savings.getSavingsOffering());
} else {
session.delete(account);
}
}
Aggregations