use of java.sql.Date in project head by mifos.
the class LoanOfferingBOIntegrationTest method testCreateLoanOfferingSameForAllLoan.
@Test
public void testCreateLoanOfferingSameForAllLoan() throws ProductDefinitionException, FeeException {
createIntitalObjects();
GracePeriodTypeEntity gracePeriodType = new GracePeriodTypeEntity(GraceType.GRACEONALLREPAYMENTS);
Date startDate = offSetCurrentDate(0);
Date endDate = offSetCurrentDate(2);
periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.WEEKLY, (short) 1);
oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
List<FeeBO> fees = new ArrayList<FeeBO>();
fees.add(periodicFee);
fees.add(oneTimeFee);
LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
product = new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, "1234", gracePeriodType, (short) 2, interestTypes, 12.0, 2.0, 3.0, false, false, false, null, fees, null, frequency, principalglCodeEntity, intglCodeEntity, populateNoOfInstallSameForAllLoan("1", "12", "1", "2", populateLoanAmountSameForAllLoan("1", new Double("3000"), new Double("1000"), new Double("2000"), loanPrdActionForm)), waiverInterest);
product.save();
StaticHibernateUtil.flushAndClearSession();
product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
Assert.assertEquals("Loan Offering", product.getPrdOfferingName());
Assert.assertEquals("LOAP", product.getPrdOfferingShortName());
Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
Assert.assertEquals(startDate, product.getStartDate());
Assert.assertEquals(endDate, product.getEndDate());
Assert.assertEquals("1234", product.getDescription());
Assert.assertEquals(GraceType.GRACEONALLREPAYMENTS.getValue(), product.getGracePeriodType().getId());
Assert.assertEquals(Short.valueOf("2"), product.getGracePeriodDuration());
Assert.assertEquals(InterestType.FLAT.getValue(), product.getInterestTypes().getId());
for (LoanAmountSameForAllLoanBO loanAmountSameForAllLoanBO : product.getLoanAmountSameForAllLoan()) {
Assert.assertEquals(new Double("3000"), loanAmountSameForAllLoanBO.getMaxLoanAmount());
Assert.assertEquals(new Double("1000"), loanAmountSameForAllLoanBO.getMinLoanAmount());
Assert.assertEquals(new Double("2000"), loanAmountSameForAllLoanBO.getDefaultLoanAmount());
}
for (NoOfInstallSameForAllLoanBO noofInstallSameForAllLoanBO : product.getNoOfInstallSameForAllLoan()) {
Assert.assertEquals(new Short("12"), noofInstallSameForAllLoanBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("1"), noofInstallSameForAllLoanBO.getMinNoOfInstall());
Assert.assertEquals(new Short("2"), noofInstallSameForAllLoanBO.getDefaultNoOfInstall());
}
Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
Assert.assertEquals(3.0, product.getDefInterestRate(), DELTA);
Assert.assertFalse(product.isIncludeInLoanCounter());
Assert.assertFalse(product.isIntDedDisbursement());
Assert.assertFalse(product.isPrinDueLastInst());
Assert.assertEquals(2, product.getLoanOfferingFees().size());
Assert.assertNotNull(product.getLoanOfferingMeeting());
Assert.assertEquals(RecurrenceType.WEEKLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
Assert.assertNotNull(product.getPrincipalGLcode());
Assert.assertNotNull(product.getInterestGLcode());
}
use of java.sql.Date in project head by mifos.
the class LoanOfferingBOIntegrationTest method testBuildloanOfferingWithoutGLCode.
@Test
public void testBuildloanOfferingWithoutGLCode() throws SystemException, ApplicationException {
createIntitalObjects();
Date startDate = offSetCurrentDate(0);
try {
new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, interestTypes, new Money(getCurrency(), "1000.0"), new Money(getCurrency(), "3000"), 12.0, 2.0, 3.0, (short) 20, (short) 1, (short) 12, false, false, false, frequency, null, null, waiverInterest);
Assert.fail();
} catch (ProductDefinitionException e) {
}
}
use of java.sql.Date in project head by mifos.
the class LoanOfferingBOIntegrationTest method testCreateLoanOfferingByLastLoanAmount.
@Test
public void testCreateLoanOfferingByLastLoanAmount() throws ProductDefinitionException, FeeException {
createIntitalObjects();
GracePeriodTypeEntity gracePeriodType = new GracePeriodTypeEntity(GraceType.GRACEONALLREPAYMENTS);
Date startDate = offSetCurrentDate(0);
Date endDate = offSetCurrentDate(2);
periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.WEEKLY, (short) 1);
oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
List<FeeBO> fees = new ArrayList<FeeBO>();
fees.add(periodicFee);
fees.add(oneTimeFee);
LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
product = new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, "1234", gracePeriodType, (short) 2, interestTypes, 12.0, 2.0, 3.0, false, false, false, null, fees, null, frequency, principalglCodeEntity, intglCodeEntity, LoanOfferingTestUtils.populateNoOfInstallFromLastLoanAmount("2", new Integer("0"), new Integer("1000"), new Integer("1001"), new Integer("2000"), new Integer("2001"), new Integer("3000"), new Integer("3001"), new Integer("4000"), new Integer("4001"), new Integer("5000"), new Integer("5001"), new Integer("6000"), "10", "30", "20", "20", "40", "30", "30", "50", "40", "40", "60", "50", "50", "70", "60", "60", "80", "70", LoanOfferingTestUtils.populateLoanAmountFromLastLoanAmount("2", new Integer("0"), new Integer("1000"), new Integer("1001"), new Integer("2000"), new Integer("2001"), new Integer("3000"), new Integer("3001"), new Integer("4000"), new Integer("4001"), new Integer("5000"), new Integer("5001"), new Integer("6000"), new Double("1000"), new Double("3000"), new Double("2000"), new Double("2000"), new Double("4000"), new Double("3000"), new Double("3000"), new Double("5000"), new Double("4000"), new Double("4000"), new Double("6000"), new Double("5000"), new Double("5000"), new Double("7000"), new Double("6000"), new Double("6000"), new Double("8000"), new Double("7000"), loanPrdActionForm)), waiverInterest);
product.save();
StaticHibernateUtil.flushAndClearSession();
product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
Assert.assertEquals("Loan Offering", product.getPrdOfferingName());
Assert.assertEquals("LOAP", product.getPrdOfferingShortName());
Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
Assert.assertEquals(startDate, product.getStartDate());
Assert.assertEquals(endDate, product.getEndDate());
Assert.assertEquals("1234", product.getDescription());
Assert.assertEquals(GraceType.GRACEONALLREPAYMENTS.getValue(), product.getGracePeriodType().getId());
Assert.assertEquals(Short.valueOf("2"), product.getGracePeriodDuration());
Assert.assertEquals(InterestType.FLAT.getValue(), product.getInterestTypes().getId());
for (Iterator<LoanAmountFromLastLoanAmountBO> itr = product.getLoanAmountFromLastLoan().iterator(); itr.hasNext(); ) {
LoanAmountFromLastLoanAmountBO loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("0"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("1000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("1000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("1001"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("2001"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("3001"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("4001"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("7000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
loanAmountFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("5001"), loanAmountFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Double("8000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
Assert.assertEquals(new Double("7000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
}
for (Iterator<NoOfInstallFromLastLoanAmountBO> itr = product.getNoOfInstallFromLastLoan().iterator(); itr.hasNext(); ) {
NoOfInstallFromLastLoanAmountBO noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("0"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("1000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("10"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("20"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("1001"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("2000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("20"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("2001"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("3000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("3001"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("4000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("4001"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("5000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("70"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
noOfInstallFromLastLoanAmountBO = itr.next();
Assert.assertEquals(new Double("5001"), noOfInstallFromLastLoanAmountBO.getStartRange());
Assert.assertEquals(new Double("6000"), noOfInstallFromLastLoanAmountBO.getEndRange());
Assert.assertEquals(new Short("80"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
Assert.assertEquals(new Short("70"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
}
Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
Assert.assertEquals(3.0, product.getDefInterestRate(), DELTA);
Assert.assertFalse(product.isIncludeInLoanCounter());
Assert.assertFalse(product.isIntDedDisbursement());
Assert.assertFalse(product.isPrinDueLastInst());
Assert.assertEquals(2, product.getLoanOfferingFees().size());
Assert.assertNotNull(product.getLoanOfferingMeeting());
Assert.assertEquals(RecurrenceType.WEEKLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
Assert.assertNotNull(product.getPrincipalGLcode());
Assert.assertNotNull(product.getInterestGLcode());
}
use of java.sql.Date in project head by mifos.
the class LoanOfferingBOIntegrationTest method testUpdateLoanOffering.
@Test
public void testUpdateLoanOffering() throws ProductDefinitionException, FeeException {
createIntitalObjects();
Date startDate = offSetCurrentDate(0);
Date endDate = offSetCurrentDate(2);
periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.MONTHLY, (short) 1);
oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
List<FeeBO> fees = new ArrayList<FeeBO>();
fees.add(periodicFee);
fees.add(oneTimeFee);
product = createLoanOfferingBO("Loan Product", "LOAP");
product.update((short) 1, "Loan Product", "LOAN", productCategory, prdApplicableMaster, startDate, endDate, "Loan Product updated", PrdStatus.LOAN_ACTIVE, null, interestTypes, (short) 0, new Money(getCurrency(), "3000"), new Money(getCurrency(), "1000"), new Money(getCurrency(), "1000"), 12.0, 2.0, 12.0, (short) 12, (short) 1, (short) 2, false, true, false, null, fees, null, (short) 2, RecurrenceType.MONTHLY, waiverInterest);
StaticHibernateUtil.flushAndClearSession();
product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
Assert.assertEquals("Loan Product", product.getPrdOfferingName());
Assert.assertEquals("LOAN", product.getPrdOfferingShortName());
Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
Assert.assertEquals(startDate, product.getStartDate());
Assert.assertEquals(endDate, product.getEndDate());
Assert.assertEquals("Loan Product updated", product.getDescription());
Assert.assertEquals(GraceType.NONE, product.getGraceType());
Assert.assertEquals(Short.valueOf("0"), product.getGracePeriodDuration());
Assert.assertEquals(InterestType.FLAT, product.getInterestType());
Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
Assert.assertEquals(12.0, product.getDefInterestRate(), DELTA);
Assert.assertFalse(product.isIncludeInLoanCounter());
Assert.assertTrue(product.isIntDedDisbursement());
Assert.assertFalse(product.isPrinDueLastInst());
Assert.assertEquals(2, product.getLoanOfferingFees().size());
Assert.assertNotNull(product.getLoanOfferingMeeting());
Assert.assertEquals(RecurrenceType.MONTHLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
Assert.assertNotNull(product.getPrincipalGLcode());
Assert.assertNotNull(product.getInterestGLcode());
}
use of java.sql.Date in project head by mifos.
the class LoanOfferingBOIntegrationTest method testMinInstallmentsGreaterThanMaxInstallments.
@Test
public void testMinInstallmentsGreaterThanMaxInstallments() {
createIntitalObjects();
Date startDate = offSetCurrentDate(0);
Date endDate = offSetCurrentDate(2);
try {
new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, null, null, null, interestTypes, new Money(getCurrency(), "1000"), new Money(getCurrency(), "3000"), new Money(getCurrency(), "2000.0"), 12.0, 2.0, 3.0, (short) 20, (short) 31, (short) 21, false, false, false, null, null, null, frequency, principalglCodeEntity, intglCodeEntity, waiverInterest);
Assert.fail();
} catch (ProductDefinitionException e) {
}
}
Aggregations