Search in sources :

Example 1 with DefineNewLoanProductPage

use of org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage in project head by mifos.

the class AdminPage method defineLoanProduct.

public void defineLoanProduct(SubmitFormParameters formParameters) {
    DefineNewLoanProductPage newLoanPage = navigateToDefineLoanProduct();
    newLoanPage.fillLoanParameters(formParameters);
    DefineNewLoanProductPreviewPage previewPage = newLoanPage.submitAndGotoNewLoanProductPreviewPage();
    DefineNewLoanProductConfirmationPage confirmationPage = previewPage.submit();
    confirmationPage.verifyPage();
}
Also used : DefineNewLoanProductConfirmationPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductConfirmationPage) DefineNewLoanProductPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage) DefineNewLoanProductPreviewPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPreviewPage)

Example 2 with DefineNewLoanProductPage

use of org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage in project head by mifos.

the class UpdateCustomPropertiesTest method verifyInvalidInterestInLoanProduct.

private void verifyInvalidInterestInLoanProduct(SubmitFormParameters formParameters, boolean checkInterestExceedsLimit) {
    DefineNewLoanProductPage newLoanPage = navigationHelper.navigateToDefineNewLoanProductPage();
    newLoanPage.fillLoanParameters(formParameters);
    DefineNewLoanProductPage previewPage = newLoanPage.submitWithErrors();
    if (checkInterestExceedsLimit) {
        previewPage.verifyErrorInForm(errorInterestExceedsLimit);
    } else {
        previewPage.verifyErrorInForm(errorInterestDigitsAfterDecimal);
    }
}
Also used : DefineNewLoanProductPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage)

Example 3 with DefineNewLoanProductPage

use of org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage in project head by mifos.

the class LoanTestHelper method createProductAndThenAccount.

public LoanAccountPage createProductAndThenAccount(DefineNewLoanProductPage.SubmitFormParameters productParams, CreateLoanAccountSearchParameters searchParams, DisburseLoanParameters disburseParams) {
    DefineNewLoanProductPage defineNewLoanProductPage = navigationHelper.navigateToAdminPage().navigateToDefineLoanProduct();
    defineNewLoanProductPage.fillLoanParameters(productParams);
    return defineNewLoanProductPage.submitAndGotoNewLoanProductPreviewPage().submit().navigateToClientsAndAccountsUsingHeaderTab().navigateToCreateLoanAccountUsingLeftMenu().searchAndNavigateToCreateLoanAccountPage(searchParams).continuePreviewSubmitAndNavigateToDetailsPage().changeAccountStatusToAccepted().navigateToDisburseLoan().submitAndNavigateToDisburseLoanConfirmationPage(disburseParams).submitAndNavigateToLoanAccountPage();
}
Also used : DefineNewLoanProductPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage)

Example 4 with DefineNewLoanProductPage

use of org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage in project head by mifos.

the class ViewOriginalLoanScheduleTest method verifyForVariableInstallmentLoanEarlyDisbursal.

// http://mifosforge.jira.com/browse/MIFOSTEST-1163
//blocked by http://mifosforge.jira.com/browse/MIFOS-5026 - ldomzalski
@Test(enabled = false)
// one of the dependent methods throws Exception
@SuppressWarnings("PMD.SignatureDeclareThrowsException")
public void verifyForVariableInstallmentLoanEarlyDisbursal() throws Exception {
    //Given
    int interestType = DefineNewLoanProductPage.SubmitFormParameters.DECLINING_BALANCE;
    DateTime disbursalDate = systemDateTime.plusDays(1);
    applicationDatabaseOperation.updateLSIM(1);
    DefineNewLoanProductPage.SubmitFormParameters formParameters = defineLoanProductParameters(interestType);
    CreateLoanAccountSubmitParameters accountSubmitParameters = new CreateLoanAccountSubmitParameters();
    accountSubmitParameters.setAmount("1000.0");
    accountSubmitParameters.setInterestRate("20");
    accountSubmitParameters.setNumberOfInstallments("5");
    accountSubmitParameters.setDd("11");
    accountSubmitParameters.setMm("10");
    accountSubmitParameters.setYy("2011");
    String[] fees = { "fixedFeePerAmountAndInterest", "fixedFeePerInterest" };
    EditLoanAccountInformationParameters editAccountParameters = new EditLoanAccountInformationParameters();
    editAccountParameters.setGracePeriod("0");
    formParameters.addFee("fixedFeePerAmountAndInterest");
    formParameters.addFee("fixedFeePerInterest");
    //When
    DefineNewLoanProductPage defineNewLoanProductPage = loanProductTestHelper.navigateToDefineNewLoanPageAndFillMandatoryFields(formParameters).fillVariableInstalmentOption("30", "1", "100");
    defineNewLoanProductPage.submitWithErrors("fee cannot be applied to variable installment loan product");
    defineNewLoanProductPage.setInterestRateType(DefineNewLoanProductPage.SubmitFormParameters.DECLINING_BALANCE_INTEREST_RECALCULATION);
    defineNewLoanProductPage.submitWithErrors("The selected interest type is invalid for variable installment loan product");
    defineNewLoanProductPage.setInterestRateType(interestType);
    defineNewLoanProductPage.submitAndGotoNewLoanProductPreviewPage().submit();
    List<String> errors = new ArrayList<String>();
    errors.add("fixedFeePerAmountAndInterest fee cannot be applied to loan with variable installments");
    errors.add("fixedFeePerInterest fee cannot be applied to loan with variable installments.");
    navigationHelper.navigateToHomePage();
    CreateLoanAccountReviewInstallmentPage createLoanAccountReviewInstallmentPage = loanTestHelper.navigateToCreateLoanAccountEntryPageWithoutLogout(setLoanSearchParameters()).setDisbursalDate(disbursalDate).applyAdditionalFees(fees).submitWithErrors(errors).unselectAdditionalFees().clickContinue();
    createLoanAccountReviewInstallmentPage.isDueDatesEditable(Integer.parseInt(formParameters.getDefInstallments()));
    createLoanAccountReviewInstallmentPage.isTotalsEditable(Integer.parseInt(formParameters.getDefInstallments()));
    String total = createLoanAccountReviewInstallmentPage.getTotalForInstallment(1);
    createLoanAccountReviewInstallmentPage.setTotalForInstallment(1, "3");
    createLoanAccountReviewInstallmentPage.submitWithErrors("has total amount less than the sum of interest and fees");
    createLoanAccountReviewInstallmentPage.setTotalForInstallment(1, "5");
    createLoanAccountReviewInstallmentPage.submitWithErrors("has total amount less than the allowed value");
    createLoanAccountReviewInstallmentPage.setTotalForInstallment(1, total);
    createLoanAccountReviewInstallmentPage.validate();
    Calendar calendar = Calendar.getInstance();
    calendar.set(2011, 9, 13);
    String prevDueDate = createLoanAccountReviewInstallmentPage.getDueDateForInstallment(1);
    createLoanAccountReviewInstallmentPage.typeInstallmentDueDateByPicker(1, calendar);
    createLoanAccountReviewInstallmentPage.setDueDateForInstallment(1, prevDueDate);
    prevDueDate = createLoanAccountReviewInstallmentPage.getDueDateForInstallment(5);
    createLoanAccountReviewInstallmentPage.setDueDateForInstallment(5, "07/11/11");
    createLoanAccountReviewInstallmentPage.submitWithErrors("Gap between the due dates of installment 5 and the previous installment is less than allowed");
    createLoanAccountReviewInstallmentPage.setDueDateForInstallment(5, prevDueDate);
    List<String> totals = createLoanAccountReviewInstallmentPage.getTotalsInstallments(Integer.parseInt(formParameters.getDefInstallments()));
    List<String> dueDates = createLoanAccountReviewInstallmentPage.getDueDatesInstallments(Integer.parseInt(formParameters.getDefInstallments()));
    CreateLoanAccountPreviewPage createLoanAccountPreviewPage = createLoanAccountReviewInstallmentPage.clickPreviewAndGoToReviewLoanAccountPage();
    createLoanAccountPreviewPage.verifyInstallmentsSchedule(totals, dueDates, Integer.parseInt(formParameters.getDefInstallments()));
    LoanAccountPage loanAccountPage = createLoanAccountPreviewPage.submit().navigateToLoanAccountDetailsPage();
    loanAccountPage.verifyDisbursalDate(disbursalDate);
    ViewRepaymentSchedulePage viewRepaymentSchedulePage = loanAccountPage.navigateToRepaymentSchedulePage();
    viewRepaymentSchedulePage.verifyScheduleAndAmounts(totals, dueDates);
    viewRepaymentSchedulePage.navigateBack();
    EditLoanAccountInformationPage editLoanAccountInformationPage = loanAccountPage.navigateToEditAccountInformation();
    editLoanAccountInformationPage.verifyAccountParams(accountSubmitParameters, editAccountParameters);
    editLoanAccountInformationPage.navigateBack();
    loanTestHelper.applyCharge(ChargeParameters.MISC_FEES, "10");
    loanTestHelper.applyCharge(ChargeParameters.MISC_PENALTY, "10");
    loanTestHelper.approveLoan();
    loanTestHelper.disburseLoan(systemDateTime);
    String[][] tableOnOriginalInstallment = OriginalScheduleData.VARIABLE_LOAN_EARLY_DISBURSAL_SCHEDULE;
    verifyOriginalSchedule(tableOnOriginalInstallment);
    loanTestHelper.applyCharge(ChargeParameters.MISC_FEES, "10");
    loanTestHelper.applyCharge(ChargeParameters.MISC_PENALTY, "10");
    verifyOriginalSchedule(tableOnOriginalInstallment);
    loanTestHelper.makePayment(systemDateTime.plusDays(5), "100");
    //Then
    verifyOriginalSchedule(tableOnOriginalInstallment);
    applicationDatabaseOperation.updateLSIM(0);
}
Also used : ViewRepaymentSchedulePage(org.mifos.test.acceptance.framework.loan.ViewRepaymentSchedulePage) Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) EditLoanAccountInformationPage(org.mifos.test.acceptance.framework.loan.EditLoanAccountInformationPage) EditLoanAccountInformationParameters(org.mifos.test.acceptance.framework.loan.EditLoanAccountInformationParameters) DateTime(org.joda.time.DateTime) CreateLoanAccountPreviewPage(org.mifos.test.acceptance.framework.loan.CreateLoanAccountPreviewPage) DefineNewLoanProductPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage) CreateLoanAccountSubmitParameters(org.mifos.test.acceptance.framework.loan.CreateLoanAccountSubmitParameters) LoanAccountPage(org.mifos.test.acceptance.framework.loan.LoanAccountPage) CreateLoanAccountReviewInstallmentPage(org.mifos.test.acceptance.framework.loan.CreateLoanAccountReviewInstallmentPage) Test(org.testng.annotations.Test)

Example 5 with DefineNewLoanProductPage

use of org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage in project head by mifos.

the class DefineNewLoanProductTest method verifyGracePeriodWithoutInterestType.

public void verifyGracePeriodWithoutInterestType() {
    DefineNewLoanProductPage defineLoanProduct = new NavigationHelper(selenium).navigateToAdminPage().navigateToDefineLoanProduct();
    defineLoanProduct.fillGracePeriod(SubmitFormParameters.GRACE_ON_ALL_REPAYMENTS, "1");
    defineLoanProduct.submitWithErrors().verifyPage();
}
Also used : NavigationHelper(org.mifos.test.acceptance.framework.testhelpers.NavigationHelper) DefineNewLoanProductPage(org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage)

Aggregations

DefineNewLoanProductPage (org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage)13 Test (org.testng.annotations.Test)5 AdminPage (org.mifos.test.acceptance.framework.admin.AdminPage)3 DefineNewLoanProductPreviewPage (org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPreviewPage)3 NavigationHelper (org.mifos.test.acceptance.framework.testhelpers.NavigationHelper)3 DateTime (org.joda.time.DateTime)2 LoanAccountPage (org.mifos.test.acceptance.framework.loan.LoanAccountPage)2 SubmitFormParameters (org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage.SubmitFormParameters)2 EditLoanProductPreviewPage (org.mifos.test.acceptance.framework.loanproduct.EditLoanProductPreviewPage)2 ArrayList (java.util.ArrayList)1 Calendar (java.util.Calendar)1 CreateLoanAccountPreviewPage (org.mifos.test.acceptance.framework.loan.CreateLoanAccountPreviewPage)1 CreateLoanAccountReviewInstallmentPage (org.mifos.test.acceptance.framework.loan.CreateLoanAccountReviewInstallmentPage)1 CreateLoanAccountSearchParameters (org.mifos.test.acceptance.framework.loan.CreateLoanAccountSearchParameters)1 CreateLoanAccountSubmitParameters (org.mifos.test.acceptance.framework.loan.CreateLoanAccountSubmitParameters)1 DisburseLoanParameters (org.mifos.test.acceptance.framework.loan.DisburseLoanParameters)1 EditLoanAccountInformationPage (org.mifos.test.acceptance.framework.loan.EditLoanAccountInformationPage)1 EditLoanAccountInformationParameters (org.mifos.test.acceptance.framework.loan.EditLoanAccountInformationParameters)1 RepayLoanPage (org.mifos.test.acceptance.framework.loan.RepayLoanPage)1 RepayLoanParameters (org.mifos.test.acceptance.framework.loan.RepayLoanParameters)1