/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.test.acceptance.framework.testhelpers; import org.mifos.test.acceptance.framework.admin.FeesCreatePage; import org.mifos.test.acceptance.framework.client.CreateClientEnterPersonalDataPage; import org.mifos.test.acceptance.framework.loanproduct.DefineNewLoanProductPage; import org.mifos.test.acceptance.util.StringUtil; import java.util.Arrays; public class FormParametersHelper { public static DefineNewLoanProductPage.SubmitFormParameters getWeeklyLoanProductParameters() { DefineNewLoanProductPage.SubmitFormParameters formParameters = new DefineNewLoanProductPage.SubmitFormParameters(); formParameters.setOfferingName("productWeekly" + StringUtil.getRandomString(4)); formParameters.setOfferingShortName("pw" + StringUtil.getRandomString(2)); formParameters.setDescription("descriptionForWeekly1"); formParameters.setCategory("Other"); formParameters.setApplicableFor(DefineNewLoanProductPage.SubmitFormParameters.CLIENTS); formParameters.setMinLoanAmount("100"); formParameters.setMaxLoanAmount("190000"); formParameters.setDefaultLoanAmount("2500"); formParameters.setInterestTypes(DefineNewLoanProductPage.SubmitFormParameters.DECLINING_BALANCE); formParameters.setMaxInterestRate("30"); formParameters.setMinInterestRate("10"); formParameters.setDefaultInterestRate("19"); /* This parameter expects Weeks or Months */ formParameters.setFreqOfInstallments(DefineNewLoanProductPage.SubmitFormParameters.WEEKS); formParameters.setMaxInstallments("52"); formParameters.setDefInstallments("52"); formParameters.setGracePeriodType(DefineNewLoanProductPage.SubmitFormParameters.NONE); formParameters.setInterestGLCode("31102 - Penalty"); formParameters.setPrincipalGLCode("1506 - Managed WFLoan"); return formParameters; } public static DefineNewLoanProductPage.SubmitFormParameters getWeeklyLoanProductParametersWithInstallmentsSetsByLastLoanAmount() { DefineNewLoanProductPage.SubmitFormParameters formParameters = FormParametersHelper.getWeeklyLoanProductParameters(); formParameters.setCalculateInstallments(DefineNewLoanProductPage.SubmitFormParameters.BY_LAST_LOAN_AMOUNT); String[][] installmentsByLastLoanAmount = { {"1000", "5", "10", "5"}, {"2000", "10", "20", "15"}, {"3000", "10", "30", "25"}, {"4000", "20", "50", "30"}, {"5000", "20", "50", "35"}, {"6000", "30", "60", "40"} }; formParameters.setInstallmentsByLastLoanAmount(installmentsByLastLoanAmount); return formParameters; } public static DefineNewLoanProductPage.SubmitFormParameters getMonthlyLoanProductParameters() { DefineNewLoanProductPage.SubmitFormParameters formParameters = new DefineNewLoanProductPage.SubmitFormParameters(); formParameters.setOfferingName("productMonthly" + StringUtil.getRandomString(4)); formParameters.setOfferingShortName("pm" + StringUtil.getRandomString(2)); formParameters.setDescription("descriptionForMonthly1"); formParameters.setCategory("Other"); formParameters.setApplicableFor(DefineNewLoanProductPage.SubmitFormParameters.CLIENTS); formParameters.setMinLoanAmount("1007"); formParameters.setMaxLoanAmount("190000"); formParameters.setDefaultLoanAmount("60000"); formParameters.setInterestTypes(DefineNewLoanProductPage.SubmitFormParameters.DECLINING_BALANCE); formParameters.setMaxInterestRate("30"); formParameters.setMinInterestRate("10"); formParameters.setDefaultInterestRate("12"); /* This parameter expects Weeks or Months */ formParameters.setFreqOfInstallments(DefineNewLoanProductPage.SubmitFormParameters.MONTHS); formParameters.setMaxInstallments("72"); formParameters.setDefInstallments("60"); formParameters.setGracePeriodType(DefineNewLoanProductPage.SubmitFormParameters.NONE); formParameters.setInterestGLCode("31102 - Penalty"); formParameters.setPrincipalGLCode("1506 - Managed WFLoan"); return formParameters; } public static CreateClientEnterPersonalDataPage.SubmitFormParameters getClientEnterPersonalDataPageFormParameters() { CreateClientEnterPersonalDataPage.SubmitFormParameters formParameters = new CreateClientEnterPersonalDataPage.SubmitFormParameters(); formParameters.setSalutation(CreateClientEnterPersonalDataPage.SubmitFormParameters.MRS); formParameters.setFirstName("test"); formParameters.setLastName("Customer" + StringUtil.getRandomString(8)); formParameters.setDateOfBirthDD("22"); formParameters.setDateOfBirthMM("05"); formParameters.setDateOfBirthYYYY("1987"); formParameters.setGender(CreateClientEnterPersonalDataPage.SubmitFormParameters.FEMALE); formParameters.setPovertyStatus(CreateClientEnterPersonalDataPage.SubmitFormParameters.POOR); formParameters.setHandicapped("Yes"); formParameters.setSpouseNameType(CreateClientEnterPersonalDataPage.SubmitFormParameters.FATHER); formParameters.setSpouseFirstName("father"); formParameters.setSpouseLastName("lastname" + StringUtil.getRandomString(8)); return formParameters; } public static FeesCreatePage.SubmitFormParameters getCreatePeriodicFeesParameters() { FeesCreatePage.SubmitFormParameters formParameters = new FeesCreatePage.SubmitFormParameters(); formParameters.setFeeName(StringUtil.getRandomString(5)); formParameters.setCategoryType("Group"); formParameters.setDefaultFees(false); formParameters.setFeeFrequencyType(formParameters.PERIODIC_FEE_FREQUENCY); formParameters.setFeeRecurrenceType(formParameters.MONTHLY_FEE_RECURRENCE); formParameters.setMonthRecurAfter(2); formParameters.setAmount(6); formParameters.setGlCode("6201 - Miscelleneous Income"); return formParameters; } public static DefineNewLoanProductPage.SubmitFormParameters getWeeklyLoanProductParametersWithQuestionGroups(String... questionGroupTitle) { DefineNewLoanProductPage.SubmitFormParameters weeklyLoanProductParameters = getWeeklyLoanProductParameters(); weeklyLoanProductParameters.setQuestionGroups(Arrays.asList(questionGroupTitle)); return weeklyLoanProductParameters; } public static FeesCreatePage.SubmitFormParameters getOneTimeLoanMultiCurrencyFeesParameters() { FeesCreatePage.SubmitFormParameters formParameters = new FeesCreatePage.SubmitFormParameters(); formParameters.setFeeName(StringUtil.getRandomString(5)); formParameters.setCategoryType("Loans"); formParameters.setDefaultFees(false); formParameters.setFeeFrequencyType(formParameters.ONETIME_FEE_FREQUENCY); formParameters.setCustomerCharge("Upfront"); formParameters.setAmount(10); formParameters.setCurrency(FeesCreatePage.SubmitFormParameters.USD); formParameters.setGlCode("31301 - Fees"); return formParameters; } public static DefineNewLoanProductPage.SubmitFormParameters getDailyLoanProductParameters() { DefineNewLoanProductPage.SubmitFormParameters params = getWeeklyLoanProductParameters(); params.setFreqOfInstallments(DefineNewLoanProductPage.SubmitFormParameters.DAYS); params.setOfferingName("productDaily" + StringUtil.getRandomString(4)); params.setDescription("daily"); return params; } }