Merge pull request #872 from pramodn02/MIFOSX-1076
added loan charge junits
This commit is contained in:
+677
-3
@@ -2,17 +2,25 @@ package org.mifosplatform.integrationtests;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mifosplatform.integrationtests.common.ClientHelper;
|
||||
import org.mifosplatform.integrationtests.common.Utils;
|
||||
import org.mifosplatform.integrationtests.common.charges.ChargesHelper;
|
||||
import org.mifosplatform.integrationtests.common.loans.LoanApplicationTestBuilder;
|
||||
import org.mifosplatform.integrationtests.common.loans.LoanProductTestBuilder;
|
||||
import org.mifosplatform.integrationtests.common.loans.LoanStatusChecker;
|
||||
import org.mifosplatform.integrationtests.common.loans.LoanTransactionHelper;
|
||||
import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper;
|
||||
import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper;
|
||||
import org.mifosplatform.integrationtests.common.savings.SavingsStatusChecker;
|
||||
|
||||
import com.jayway.restassured.builder.RequestSpecBuilder;
|
||||
import com.jayway.restassured.builder.ResponseSpecBuilder;
|
||||
@@ -27,6 +35,9 @@ import com.jayway.restassured.specification.ResponseSpecification;
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
public class ClientLoanIntegrationTest {
|
||||
|
||||
public static final String MINIMUM_OPENING_BALANCE = "1000.0";
|
||||
public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
|
||||
|
||||
private ResponseSpecification responseSpec;
|
||||
private RequestSpecification requestSpec;
|
||||
private LoanTransactionHelper loanTransactionHelper;
|
||||
@@ -46,13 +57,575 @@ public class ClientLoanIntegrationTest {
|
||||
final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||
ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
|
||||
final Integer loanProductID = createLoanProduct();
|
||||
final Integer loanID = applyForLoanApplication(clientID, loanProductID);
|
||||
final Integer loanID = applyForLoanApplication(clientID, loanProductID, null);
|
||||
final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
|
||||
loanID);
|
||||
verifyLoanRepaymentSchedule(loanSchedule);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoanCharges_DISBURSEMENT_FEE() {
|
||||
this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
|
||||
|
||||
final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||
ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
|
||||
final Integer loanProductID = createLoanProduct();
|
||||
|
||||
List<HashMap> charges = new ArrayList<HashMap>();
|
||||
Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanDisbursementJSON());
|
||||
|
||||
Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
|
||||
addCharges(charges, amountPercentage, "1", null);
|
||||
Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
|
||||
addCharges(charges, amountPlusInterestPercentage, "1", null);
|
||||
Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1"));
|
||||
addCharges(charges, interestPercentage, "1", null);
|
||||
|
||||
final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges);
|
||||
Assert.assertNotNull(loanID);
|
||||
|
||||
HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
|
||||
LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
|
||||
|
||||
ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
HashMap disbursementDetail = loanSchedule.get(0);
|
||||
|
||||
List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "120.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "1.0", "6.06", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "1.0", "126.06", "0.0", "0.0");
|
||||
|
||||
validateNumberForEqual("252.12", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getDisbursementChargesForLoanAsJSON(String.valueOf(flatDisbursement)));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
|
||||
validateCharge(flatDisbursement, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("352.12", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
|
||||
.get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("150"));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
validateCharge(amountPercentage, loanCharges, "2.0", "240.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "2.0", "12.12", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "2.0", "252.12", "0.0", "0.0");
|
||||
validateCharge(flatDisbursement, loanCharges, "150.0", "150.0", "0.0", "0.0");
|
||||
validateNumberForEqual("654.24", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, null, null), null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
validateCharge(amountPercentage, loanCharges, "2.0", "200.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "2.0", "10.1", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "2.0", "210.1", "0.0", "0.0");
|
||||
validateCharge(flatDisbursement, loanCharges, "150.0", "150.0", "0.0", "0.0");
|
||||
validateNumberForEqual("570.2", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, flatDisbursement, "1"), null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "100.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "1.0", "5.05", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "1.0", "105.05", "0.0", "0.0");
|
||||
validateNumberForEqual("210.1", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
charges.clear();
|
||||
addCharges(charges, flatDisbursement, "100", null);
|
||||
this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID, charges, null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
validateCharge(flatDisbursement, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("100.0", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.deleteChargesForLoan(loanID, (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
disbursementDetail = loanSchedule.get(0);
|
||||
Assert.assertEquals(0, loanCharges.size());
|
||||
validateNumberForEqual("0.0", String.valueOf(disbursementDetail.get("feeChargesDue")));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoanCharges_SPECIFIED_DUE_DATE_FEE() {
|
||||
this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
|
||||
|
||||
final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||
ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
|
||||
final Integer loanProductID = createLoanProduct();
|
||||
|
||||
List<HashMap> charges = new ArrayList<HashMap>();
|
||||
Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
|
||||
Integer flatAccTransfer = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanSpecifiedDueDateWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
|
||||
|
||||
Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
|
||||
addCharges(charges, amountPercentage, "1", "29 September 2011");
|
||||
Integer amountPlusInterestPercentage = ChargesHelper
|
||||
.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
|
||||
ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
|
||||
addCharges(charges, amountPlusInterestPercentage, "1", "29 September 2011");
|
||||
Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
|
||||
addCharges(charges, interestPercentage, "1", "29 September 2011");
|
||||
|
||||
final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges);
|
||||
Assert.assertNotNull(loanID);
|
||||
|
||||
HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
|
||||
LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
|
||||
|
||||
ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
HashMap firstInstallment = loanSchedule.get(1);
|
||||
|
||||
List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "120.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "1.0", "6.06", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "1.0", "126.06", "0.0", "0.0");
|
||||
|
||||
validateNumberForEqual("252.12", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flat), "29 September 2011", "100"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
|
||||
validateCharge(flat, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("352.12", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
|
||||
.get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("150"));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "2.0", "240.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "2.0", "12.12", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "2.0", "252.12", "0.0", "0.0");
|
||||
validateCharge(flat, loanCharges, "150.0", "150.0", "0.0", "0.0");
|
||||
validateNumberForEqual("654.24", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
final Integer savingsId = createSavings(clientID);
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "2.0", "200.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "2.0", "10.1", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "2.0", "210.1", "0.0", "0.0");
|
||||
validateCharge(flat, loanCharges, "150.0", "150.0", "0.0", "0.0");
|
||||
validateNumberForEqual("570.2", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, flat, "1"), null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "100.0", "0.0", "0.0");
|
||||
validateCharge(interestPercentage, loanCharges, "1.0", "5.05", "0.0", "0.0");
|
||||
validateCharge(amountPlusInterestPercentage, loanCharges, "1.0", "105.05", "0.0", "0.0");
|
||||
validateNumberForEqual("210.1", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
charges.clear();
|
||||
addCharges(charges, flat, "100", "29 September 2011");
|
||||
this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID, charges, null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(flat, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.deleteChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
Assert.assertEquals(0, loanCharges.size());
|
||||
validateNumberForEqual("0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
|
||||
loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
|
||||
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
|
||||
LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatAccTransfer), "29 September 2011", "100"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(flatAccTransfer, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
// DISBURSE
|
||||
loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
|
||||
System.out.println("DISBURSE " + loanStatusHashMap);
|
||||
LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(amountPercentage), "29 September 2011", "1"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "100.0", "0.0", "0.0");
|
||||
validateCharge(flatAccTransfer, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("200.0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
|
||||
this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"), "");
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "0.0", "0.0", "100.0");
|
||||
validateCharge(flatAccTransfer, loanCharges, "100.0", "100.0", "0.0", "0.0");
|
||||
validateNumberForEqual("200.0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesWaived")));
|
||||
|
||||
this.loanTransactionHelper.payChargesForLoan(loanID, (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getPayChargeJSON(SavingsAccountHelper.TRANSACTION_DATE, null));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
firstInstallment = loanSchedule.get(1);
|
||||
validateCharge(amountPercentage, loanCharges, "1.0", "0.0", "0.0", "100.0");
|
||||
validateCharge(flatAccTransfer, loanCharges, "100.0", "0.0", "100.0", "0.0");
|
||||
validateNumberForEqual("200.0", String.valueOf(firstInstallment.get("feeChargesDue")));
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesWaived")));
|
||||
validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesPaid")));
|
||||
validateNumberForEqual("0.0", String.valueOf(firstInstallment.get("feeChargesOutstanding")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoanCharges_INSTALMENT_FEE() {
|
||||
this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
|
||||
final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
|
||||
ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
|
||||
final Integer loanProductID = createLoanProduct();
|
||||
|
||||
List<HashMap> charges = new ArrayList<HashMap>();
|
||||
Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
|
||||
Integer flatAccTransfer = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanInstallmentWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
|
||||
|
||||
Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
|
||||
addCharges(charges, amountPercentage, "1", "29 September 2011");
|
||||
Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
|
||||
addCharges(charges, amountPlusInterestPercentage, "1", "29 September 2011");
|
||||
Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
|
||||
ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
|
||||
addCharges(charges, interestPercentage, "1", "29 September 2011");
|
||||
|
||||
final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges);
|
||||
Assert.assertNotNull(loanID);
|
||||
|
||||
HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
|
||||
LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
|
||||
|
||||
ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
|
||||
Float totalPerOfAmout = 0F;
|
||||
Float totalPerOfAmoutPlusInt = 0F;
|
||||
Float totalPerOfint = 0F;
|
||||
for (HashMap installment : loanSchedule) {
|
||||
Float principalDue = (Float) installment.get("principalDue");
|
||||
Float interestDue = (Float) installment.get("interestDue");
|
||||
Float principalFee = principalDue / 100;
|
||||
Float interestFee = interestDue / 100;
|
||||
Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2);
|
||||
validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
|
||||
totalPerOfAmout = totalPerOfAmout + principalFee;
|
||||
totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
|
||||
totalPerOfint = totalPerOfint + interestFee;
|
||||
}
|
||||
|
||||
validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
|
||||
"0.0");
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getInstallmentChargesForLoanAsJSON(String.valueOf(flat), "50"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
totalPerOfAmout = 0F;
|
||||
totalPerOfAmoutPlusInt = 0F;
|
||||
totalPerOfint = 0F;
|
||||
for (HashMap installment : loanSchedule) {
|
||||
Float principalDue = (Float) installment.get("principalDue");
|
||||
Float interestDue = (Float) installment.get("interestDue");
|
||||
Float principalFee = principalDue / 100;
|
||||
Float interestFee = interestDue / 100;
|
||||
Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 50;
|
||||
validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
|
||||
totalPerOfAmout = totalPerOfAmout + principalFee;
|
||||
totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
|
||||
totalPerOfint = totalPerOfint + interestFee;
|
||||
}
|
||||
|
||||
validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
|
||||
"0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "50.0", "200", "0.0", "0.0");
|
||||
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
|
||||
.get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
|
||||
this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getUpdateChargesForLoanAsJSON("100"));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
totalPerOfAmout = 0F;
|
||||
totalPerOfAmoutPlusInt = 0F;
|
||||
totalPerOfint = 0F;
|
||||
for (HashMap installment : loanSchedule) {
|
||||
Float principalDue = (Float) installment.get("principalDue");
|
||||
Float interestDue = (Float) installment.get("interestDue");
|
||||
Float principalFee = principalDue * 2 / 100;
|
||||
Float interestFee = interestDue * 2 / 100;
|
||||
Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 100;
|
||||
validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
|
||||
totalPerOfAmout = totalPerOfAmout + principalFee;
|
||||
totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
|
||||
totalPerOfint = totalPerOfint + interestFee;
|
||||
}
|
||||
|
||||
validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
|
||||
"0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "100.0", "400", "0.0", "0.0");
|
||||
|
||||
final Integer savingsId = createSavings(clientID);
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
totalPerOfAmout = 0F;
|
||||
totalPerOfAmoutPlusInt = 0F;
|
||||
totalPerOfint = 0F;
|
||||
for (HashMap installment : loanSchedule) {
|
||||
Float principalDue = (Float) installment.get("principalDue");
|
||||
Float interestDue = (Float) installment.get("interestDue");
|
||||
Float principalFee = principalDue * 2 / 100;
|
||||
Float interestFee = interestDue * 2 / 100;
|
||||
Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 100;
|
||||
validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
|
||||
totalPerOfAmout = totalPerOfAmout + principalFee;
|
||||
totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
|
||||
totalPerOfint = totalPerOfint + interestFee;
|
||||
}
|
||||
|
||||
validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
|
||||
"0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "100.0", "400", "0.0", "0.0");
|
||||
|
||||
this.loanTransactionHelper.updateLoan(loanID,
|
||||
updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, flat, "1"), null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
totalPerOfAmout = 0F;
|
||||
totalPerOfAmoutPlusInt = 0F;
|
||||
totalPerOfint = 0F;
|
||||
for (HashMap installment : loanSchedule) {
|
||||
Float principalDue = (Float) installment.get("principalDue");
|
||||
Float interestDue = (Float) installment.get("interestDue");
|
||||
Float principalFee = principalDue / 100;
|
||||
Float interestFee = interestDue / 100;
|
||||
Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2);
|
||||
validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
|
||||
totalPerOfAmout = totalPerOfAmout + principalFee;
|
||||
totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
|
||||
totalPerOfint = totalPerOfint + interestFee;
|
||||
}
|
||||
|
||||
validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
|
||||
validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
|
||||
"0.0");
|
||||
|
||||
charges.clear();
|
||||
addCharges(charges, flat, "50", "29 September 2011");
|
||||
this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID, charges, null));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("50", String.valueOf(installment.get("feeChargesDue")));
|
||||
}
|
||||
validateChargeExcludePrecission(flat, loanCharges, "50.0", "200", "0.0", "0.0");
|
||||
|
||||
this.loanTransactionHelper.deleteChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("0", String.valueOf(installment.get("feeChargesDue")));
|
||||
}
|
||||
|
||||
System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
|
||||
loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
|
||||
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
|
||||
LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getInstallmentChargesForLoanAsJSON(String.valueOf(flatAccTransfer), "100"));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("100", String.valueOf(installment.get("feeChargesDue")));
|
||||
}
|
||||
validateChargeExcludePrecission(flatAccTransfer, loanCharges, "100.0", "400", "0.0", "0.0");
|
||||
|
||||
// DISBURSE
|
||||
loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
|
||||
System.out.println("DISBURSE " + loanStatusHashMap);
|
||||
LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
|
||||
|
||||
this.loanTransactionHelper.addChargesForLoan(loanID,
|
||||
LoanTransactionHelper.getInstallmentChargesForLoanAsJSON(String.valueOf(flat), "50"));
|
||||
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("150", String.valueOf(installment.get("feeChargesDue")));
|
||||
}
|
||||
validateChargeExcludePrecission(flatAccTransfer, loanCharges, "100.0", "400", "0.0", "0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "50.0", "200", "0.0", "0.0");
|
||||
|
||||
Integer waivePeriodnum = 1;
|
||||
this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(waivePeriodnum)));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("150", String.valueOf(installment.get("feeChargesDue")));
|
||||
if (waivePeriodnum == installment.get("period")) {
|
||||
validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesWaived")));
|
||||
} else {
|
||||
validateNumberForEqualExcludePrecission("150.0", String.valueOf(installment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqualExcludePrecission("0.0", String.valueOf(installment.get("feeChargesWaived")));
|
||||
|
||||
}
|
||||
}
|
||||
validateChargeExcludePrecission(flatAccTransfer, loanCharges, "100.0", "400", "0.0", "0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "50.0", "150", "0.0", "50.0");
|
||||
|
||||
Integer payPeriodnum = 2;
|
||||
this.loanTransactionHelper.payChargesForLoan(loanID, (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"),
|
||||
LoanTransactionHelper.getPayChargeJSON(SavingsAccountHelper.TRANSACTION_DATE, String.valueOf(payPeriodnum)));
|
||||
loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
|
||||
loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
|
||||
loanSchedule.remove(0);
|
||||
for (HashMap installment : loanSchedule) {
|
||||
validateNumberForEqualExcludePrecission("150", String.valueOf(installment.get("feeChargesDue")));
|
||||
if (payPeriodnum == installment.get("period")) {
|
||||
validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesPaid")));
|
||||
} else if (waivePeriodnum == installment.get("period")) {
|
||||
validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesWaived")));
|
||||
} else {
|
||||
validateNumberForEqualExcludePrecission("150.0", String.valueOf(installment.get("feeChargesOutstanding")));
|
||||
validateNumberForEqualExcludePrecission("0.0", String.valueOf(installment.get("feeChargesPaid")));
|
||||
|
||||
}
|
||||
}
|
||||
validateChargeExcludePrecission(flatAccTransfer, loanCharges, "100.0", "300", "100.0", "0.0");
|
||||
validateChargeExcludePrecission(flat, loanCharges, "50.0", "150", "0.0", "50.0");
|
||||
|
||||
}
|
||||
|
||||
private void validateCharge(Integer amountPercentage, final List<HashMap> loanCharges, final String amount, final String outstanding,
|
||||
String amountPaid, String amountWaived) {
|
||||
HashMap chargeDetail = getloanCharge(amountPercentage, loanCharges);
|
||||
Assert.assertTrue(new Float(amount).compareTo(new Float(String.valueOf(chargeDetail.get("amountOrPercentage")))) == 0);
|
||||
Assert.assertTrue(new Float(outstanding).compareTo(new Float(String.valueOf(chargeDetail.get("amountOutstanding")))) == 0);
|
||||
Assert.assertTrue(new Float(amountPaid).compareTo(new Float(String.valueOf(chargeDetail.get("amountPaid")))) == 0);
|
||||
Assert.assertTrue(new Float(amountWaived).compareTo(new Float(String.valueOf(chargeDetail.get("amountWaived")))) == 0);
|
||||
}
|
||||
|
||||
private void validateChargeExcludePrecission(Integer amountPercentage, final List<HashMap> loanCharges, final String amount,
|
||||
final String outstanding, String amountPaid, String amountWaived) {
|
||||
DecimalFormat twoDForm = new DecimalFormat("#");
|
||||
HashMap chargeDetail = getloanCharge(amountPercentage, loanCharges);
|
||||
Assert.assertTrue(new Float(twoDForm.format(new Float(amount))).compareTo(new Float(twoDForm.format(new Float(String
|
||||
.valueOf(chargeDetail.get("amountOrPercentage")))))) == 0);
|
||||
Assert.assertTrue(new Float(twoDForm.format(new Float(outstanding))).compareTo(new Float(twoDForm.format(new Float(String
|
||||
.valueOf(chargeDetail.get("amountOutstanding")))))) == 0);
|
||||
Assert.assertTrue(new Float(twoDForm.format(new Float(amountPaid))).compareTo(new Float(twoDForm.format(new Float(String
|
||||
.valueOf(chargeDetail.get("amountPaid")))))) == 0);
|
||||
Assert.assertTrue(new Float(twoDForm.format(new Float(amountWaived))).compareTo(new Float(twoDForm.format(new Float(String
|
||||
.valueOf(chargeDetail.get("amountWaived")))))) == 0);
|
||||
}
|
||||
|
||||
public void validateNumberForEqual(String val, String val2) {
|
||||
Assert.assertTrue(new Float(val).compareTo(new Float(val2)) == 0);
|
||||
}
|
||||
|
||||
public void validateNumberForEqualExcludePrecission(String val, String val2) {
|
||||
DecimalFormat twoDForm = new DecimalFormat("#");
|
||||
Assert.assertTrue(new Float(twoDForm.format(new Float(val))).compareTo(new Float(twoDForm.format(new Float(val2)))) == 0);
|
||||
}
|
||||
|
||||
private Integer createLoanProduct() {
|
||||
System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
|
||||
final String loanProductJSON = new LoanProductTestBuilder() //
|
||||
@@ -68,7 +641,7 @@ public class ClientLoanIntegrationTest {
|
||||
return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
|
||||
}
|
||||
|
||||
private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
|
||||
private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, List<HashMap> charges) {
|
||||
System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
|
||||
final String loanApplicationJSON = new LoanApplicationTestBuilder() //
|
||||
.withPrincipal("12,000.00") //
|
||||
@@ -83,10 +656,29 @@ public class ClientLoanIntegrationTest {
|
||||
.withInterestCalculationPeriodTypeSameAsRepaymentPeriod() //
|
||||
.withExpectedDisbursementDate("20 September 2011") //
|
||||
.withSubmittedOnDate("20 September 2011") //
|
||||
.build(clientID.toString(), loanProductID.toString(), null);
|
||||
.withCharges(charges).build(clientID.toString(), loanProductID.toString(), null);
|
||||
return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
|
||||
}
|
||||
|
||||
private String updateLoanJson(final Integer clientID, final Integer loanProductID, List<HashMap> charges, String savingsId) {
|
||||
System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
|
||||
final String loanApplicationJSON = new LoanApplicationTestBuilder() //
|
||||
.withPrincipal("10,000.00") //
|
||||
.withLoanTermFrequency("4") //
|
||||
.withLoanTermFrequencyAsMonths() //
|
||||
.withNumberOfRepayments("4") //
|
||||
.withRepaymentEveryAfter("1") //
|
||||
.withRepaymentFrequencyTypeAsMonths() //
|
||||
.withInterestRatePerPeriod("2") //
|
||||
.withAmortizationTypeAsEqualInstallments() //
|
||||
.withInterestTypeAsDecliningBalance() //
|
||||
.withInterestCalculationPeriodTypeSameAsRepaymentPeriod() //
|
||||
.withExpectedDisbursementDate("20 September 2011") //
|
||||
.withSubmittedOnDate("20 September 2011") //
|
||||
.withCharges(charges).build(clientID.toString(), loanProductID.toString(), savingsId);
|
||||
return loanApplicationJSON;
|
||||
}
|
||||
|
||||
private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule) {
|
||||
System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
|
||||
|
||||
@@ -110,4 +702,86 @@ public class ClientLoanIntegrationTest {
|
||||
assertEquals("Checking for Principal Due for 4th Month", new Float("3089.7"), loanSchedule.get(4).get("principalDue"));
|
||||
assertEquals("Checking for Interest Due for 4th Month", new Float("61.79"), loanSchedule.get(4).get("interestOriginalDue"));
|
||||
}
|
||||
|
||||
private void addCharges(List<HashMap> charges, Integer chargeId, String amount, String duedate) {
|
||||
charges.add(charges(chargeId, amount, duedate));
|
||||
}
|
||||
|
||||
private HashMap charges(Integer chargeId, String amount, String duedate) {
|
||||
HashMap charge = new HashMap(2);
|
||||
charge.put("chargeId", chargeId.toString());
|
||||
charge.put("amount", amount);
|
||||
if (duedate != null) {
|
||||
charge.put("dueDate", duedate);
|
||||
}
|
||||
return charge;
|
||||
}
|
||||
|
||||
private HashMap getloanCharge(Integer chargeId, List<HashMap> charges) {
|
||||
HashMap charge = null;
|
||||
for (HashMap loancharge : charges) {
|
||||
if (loancharge.get("chargeId").equals(chargeId)) {
|
||||
charge = loancharge;
|
||||
}
|
||||
}
|
||||
return charge;
|
||||
}
|
||||
|
||||
private List<HashMap> copyChargesForUpdate(List<HashMap> charges, Integer deleteWithChargeId, String amount) {
|
||||
List<HashMap> loanCharges = new ArrayList<HashMap>();
|
||||
for (HashMap charge : charges) {
|
||||
if (!charge.get("chargeId").equals(deleteWithChargeId)) {
|
||||
loanCharges.add(copyForUpdate(charge, amount));
|
||||
}
|
||||
}
|
||||
return loanCharges;
|
||||
}
|
||||
|
||||
private HashMap copyForUpdate(HashMap charge, String amount) {
|
||||
HashMap map = new HashMap();
|
||||
map.put("id", charge.get("id"));
|
||||
if (amount == null) {
|
||||
map.put("amount", charge.get("amountOrPercentage"));
|
||||
} else {
|
||||
map.put("amount", amount);
|
||||
}
|
||||
if (charge.get("dueDate") != null) {
|
||||
map.put("dueDate", charge.get("dueDate"));
|
||||
}
|
||||
map.put("chargeId", charge.get("chargeId"));
|
||||
return map;
|
||||
}
|
||||
|
||||
private Integer createSavings(Integer clientID) {
|
||||
final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE);
|
||||
Assert.assertNotNull(savingsProductID);
|
||||
|
||||
SavingsAccountHelper savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
|
||||
|
||||
final Integer savingsId = savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID, ACCOUNT_TYPE_INDIVIDUAL);
|
||||
Assert.assertNotNull(savingsProductID);
|
||||
|
||||
HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
|
||||
SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
|
||||
|
||||
savingsStatusHashMap = savingsAccountHelper.approveSavings(savingsId);
|
||||
SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
|
||||
|
||||
savingsStatusHashMap = savingsAccountHelper.activateSavings(savingsId);
|
||||
SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
|
||||
return savingsId;
|
||||
}
|
||||
|
||||
private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
|
||||
final String minOpenningBalance) {
|
||||
System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
|
||||
SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
|
||||
final String savingsProductJSON = savingsProductHelper //
|
||||
.withInterestCompoundingPeriodTypeAsDaily() //
|
||||
.withInterestPostingPeriodTypeAsMonthly() //
|
||||
.withInterestCalculationPeriodTypeAsDailyBalance() //
|
||||
.withMinimumOpenningBalance(minOpenningBalance).build();
|
||||
return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
|
||||
}
|
||||
|
||||
}
|
||||
+50
-16
@@ -29,10 +29,10 @@ public class ChargesHelper {
|
||||
private static final Integer CHARGE_OVERDUE_INSTALLMENT_FEE = 9;
|
||||
private static final Integer CHARGE_OVERDRAFT_FEE = 10;
|
||||
|
||||
private static final Integer CHARGE_CALCULATION_TYPE_FLAT = 1;
|
||||
private static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT = 2;
|
||||
private static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST = 3;
|
||||
private static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST = 4;
|
||||
public static final Integer CHARGE_CALCULATION_TYPE_FLAT = 1;
|
||||
public static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT = 2;
|
||||
public static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST = 3;
|
||||
public static final Integer CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST = 4;
|
||||
|
||||
private static final Integer CHARGE_PAYMENT_MODE_REGULAR = 0;
|
||||
private static final Integer CHARGE_PAYMENT_MODE_ACCOUNT_TRANSFER = 1;
|
||||
@@ -115,42 +115,76 @@ public class ChargesHelper {
|
||||
}
|
||||
|
||||
public static String getLoanDisbursementJSON() {
|
||||
return getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, ChargesHelper.amount);
|
||||
}
|
||||
|
||||
public static String getLoanDisbursementJSON(final Integer chargeCalculationType, final String amount) {
|
||||
final HashMap<String, Object> map = populateDefaultsForLoan();
|
||||
map.put("chargeTimeType", CHARGE_DISBURSEMENT_FEE);
|
||||
map.put("chargePaymentMode", ChargesHelper.CHARGE_PAYMENT_MODE_REGULAR);
|
||||
map.put("amount", amount);
|
||||
map.put("chargeCalculationType", chargeCalculationType);
|
||||
String chargesCreateJson = new Gson().toJson(map);
|
||||
System.out.println(chargesCreateJson);
|
||||
return chargesCreateJson;
|
||||
}
|
||||
|
||||
public static String getLoanSpecifiedDueDateJSON() {
|
||||
return getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, ChargesHelper.amount, ChargesHelper.penalty);
|
||||
}
|
||||
|
||||
public static String getLoanSpecifiedDueDateJSON(final Integer chargeCalculationType, final String amount, boolean penalty) {
|
||||
return getLoanSpecifiedDueDateJSON(chargeCalculationType, amount, penalty, ChargesHelper.CHARGE_PAYMENT_MODE_REGULAR);
|
||||
}
|
||||
|
||||
public static String getLoanSpecifiedDueDateJSON(final Integer chargeCalculationType, final String amount, final boolean penalty,
|
||||
final Integer paymentMode) {
|
||||
final HashMap<String, Object> map = populateDefaultsForLoan();
|
||||
map.put("chargeTimeType", CHARGE_SPECIFIED_DUE_DATE);
|
||||
map.put("chargePaymentMode", ChargesHelper.CHARGE_PAYMENT_MODE_REGULAR);
|
||||
map.put("penalty", ChargesHelper.penalty);
|
||||
map.put("chargePaymentMode", paymentMode);
|
||||
map.put("penalty", penalty);
|
||||
map.put("amount", amount);
|
||||
map.put("chargeCalculationType", chargeCalculationType);
|
||||
|
||||
String chargesCreateJson = new Gson().toJson(map);
|
||||
System.out.println(chargesCreateJson);
|
||||
return chargesCreateJson;
|
||||
}
|
||||
|
||||
public static String getLoanSpecifiedDueDateWithAccountTransferJSON(final Integer chargeCalculationType, final String amount,
|
||||
boolean penalty) {
|
||||
return getLoanSpecifiedDueDateJSON(chargeCalculationType, amount, penalty, ChargesHelper.CHARGE_PAYMENT_MODE_ACCOUNT_TRANSFER);
|
||||
}
|
||||
|
||||
public static String getLoanSpecifiedDueDateWithAccountTransferJSON() {
|
||||
return getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, ChargesHelper.amount, ChargesHelper.penalty,
|
||||
ChargesHelper.CHARGE_PAYMENT_MODE_ACCOUNT_TRANSFER);
|
||||
}
|
||||
|
||||
public static String getLoanInstallmentJSON(final Integer chargeCalculationType, final String amount, boolean penalty) {
|
||||
return getLoanInstallmentJSON(chargeCalculationType, amount, penalty, ChargesHelper.CHARGE_PAYMENT_MODE_REGULAR);
|
||||
}
|
||||
|
||||
public static String getLoanInstallmentJSON(final Integer chargeCalculationType, final String amount, final boolean penalty,
|
||||
final Integer paymentMode) {
|
||||
final HashMap<String, Object> map = populateDefaultsForLoan();
|
||||
map.put("chargeTimeType", CHARGE_SPECIFIED_DUE_DATE);
|
||||
map.put("penalty", ChargesHelper.penalty);
|
||||
map.put("chargePaymentMode", ChargesHelper.CHARGE_PAYMENT_MODE_ACCOUNT_TRANSFER);
|
||||
map.put("chargeTimeType", CHARGE_INSTALLMENT_FEE);
|
||||
map.put("chargePaymentMode", paymentMode);
|
||||
map.put("penalty", penalty);
|
||||
map.put("amount", amount);
|
||||
map.put("chargeCalculationType", chargeCalculationType);
|
||||
|
||||
String chargesCreateJson = new Gson().toJson(map);
|
||||
System.out.println(chargesCreateJson);
|
||||
return chargesCreateJson;
|
||||
}
|
||||
|
||||
public static String getLoanInstallmentWithAccountTransferJSON(final Integer chargeCalculationType, final String amount, boolean penalty) {
|
||||
return getLoanInstallmentJSON(chargeCalculationType, amount, penalty, ChargesHelper.CHARGE_PAYMENT_MODE_ACCOUNT_TRANSFER);
|
||||
}
|
||||
|
||||
public static String getLoanInstallmentFeeJSON() {
|
||||
final HashMap<String, Object> map = populateDefaultsForLoan();
|
||||
map.put("chargeTimeType", CHARGE_INSTALLMENT_FEE);
|
||||
map.put("chargePaymentMode", ChargesHelper.CHARGE_PAYMENT_MODE_REGULAR);
|
||||
map.put("penalty", ChargesHelper.penalty);
|
||||
String chargesCreateJson = new Gson().toJson(map);
|
||||
System.out.println(chargesCreateJson);
|
||||
return chargesCreateJson;
|
||||
return getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, ChargesHelper.amount, ChargesHelper.penalty);
|
||||
}
|
||||
|
||||
public static String getLoanOverdueFeeJSON() {
|
||||
|
||||
+13
-1
@@ -1,6 +1,9 @@
|
||||
package org.mifosplatform.integrationtests.common.loans;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
@@ -32,10 +35,11 @@ public class LoanApplicationTestBuilder {
|
||||
private String expectedDisbursmentDate = "";
|
||||
private String submittedOnDate = "";
|
||||
private String loanType = "individual";
|
||||
private List<HashMap> charges = new ArrayList<HashMap>();
|
||||
|
||||
public String build(final String ID, final String loanProductId, final String savingsID) {
|
||||
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
final HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("locale", "en_GB");
|
||||
if (this.loanType == "group") {
|
||||
@@ -58,6 +62,9 @@ public class LoanApplicationTestBuilder {
|
||||
map.put("expectedDisbursementDate", this.expectedDisbursmentDate);
|
||||
map.put("submittedOnDate", this.submittedOnDate);
|
||||
map.put("loanType", this.loanType);
|
||||
if (charges != null) {
|
||||
map.put("charges", charges);
|
||||
}
|
||||
if (savingsID != null) {
|
||||
map.put("linkAccountId", savingsID);
|
||||
}
|
||||
@@ -164,6 +171,11 @@ public class LoanApplicationTestBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
public LoanApplicationTestBuilder withCharges(final List<HashMap> charges) {
|
||||
this.charges = charges;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LoanApplicationTestBuilder withLoanType(final String loanType) {
|
||||
this.loanType = loanType;
|
||||
return this;
|
||||
|
||||
+92
-4
@@ -41,6 +41,11 @@ public class LoanTransactionHelper {
|
||||
return Utils.performServerPost(this.requestSpec, this.responseSpec, APPLY_LOAN_URL, loanApplicationJSON, "loanId");
|
||||
}
|
||||
|
||||
public Integer updateLoan(final Integer id, final String loanApplicationJSON) {
|
||||
return Utils.performServerPut(this.requestSpec, this.responseSpec, "/mifosng-provider/api/v1/loans/" + id
|
||||
+ "?tenantIdentifier=default", loanApplicationJSON, "loanId");
|
||||
}
|
||||
|
||||
public ArrayList getLoanRepaymentSchedule(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
|
||||
final Integer loanID) {
|
||||
final String URL = "/mifosng-provider/api/v1/loans/" + loanID + "?associations=repaymentSchedule&tenantIdentifier=default";
|
||||
@@ -106,11 +111,43 @@ public class LoanTransactionHelper {
|
||||
|
||||
public Integer addChargesForLoan(final Integer loanId, final String request) {
|
||||
System.out.println("--------------------------------- ADD CHARGES FOR LOAN --------------------------------");
|
||||
final String ADD_CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges";
|
||||
final String ADD_CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges?tenantIdentifier=default";
|
||||
final HashMap response = Utils.performServerPost(requestSpec, responseSpec, ADD_CHARGES_URL, request, "");
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public Integer updateChargesForLoan(final Integer loanId, final Integer loanchargeId, final String request) {
|
||||
System.out.println("--------------------------------- ADD CHARGES FOR LOAN --------------------------------");
|
||||
final String UPDATE_CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId
|
||||
+ "?tenantIdentifier=default";
|
||||
final HashMap response = Utils.performServerPut(requestSpec, responseSpec, UPDATE_CHARGES_URL, request, "");
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public Integer deleteChargesForLoan(final Integer loanId, final Integer loanchargeId) {
|
||||
System.out.println("--------------------------------- DELETE CHARGES FOR LOAN --------------------------------");
|
||||
final String DELETE_CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId
|
||||
+ "?tenantIdentifier=default";
|
||||
final HashMap response = Utils.performServerDelete(requestSpec, responseSpec, DELETE_CHARGES_URL, "");
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public Integer waiveChargesForLoan(final Integer loanId, final Integer loanchargeId, final String json) {
|
||||
System.out.println("--------------------------------- WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId
|
||||
+ "?command=waive&tenantIdentifier=default";
|
||||
final HashMap response = Utils.performServerPost(requestSpec, responseSpec, CHARGES_URL, json, "");
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
public Integer payChargesForLoan(final Integer loanId, final Integer loanchargeId, final String json) {
|
||||
System.out.println("--------------------------------- WAIVE CHARGES FOR LOAN --------------------------------");
|
||||
final String CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges/" + loanchargeId
|
||||
+ "?command=pay&tenantIdentifier=default";
|
||||
final HashMap response = Utils.performServerPost(requestSpec, responseSpec, CHARGES_URL, json, "");
|
||||
return (Integer) response.get("resourceId");
|
||||
}
|
||||
|
||||
private String getDisburseLoanAsJSON(final String actualDisbursementDate) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en");
|
||||
@@ -169,11 +206,15 @@ public class LoanTransactionHelper {
|
||||
}
|
||||
|
||||
public static String getSpecifiedDueDateChargesForLoanAsJSON(final String chargeId) {
|
||||
return getSpecifiedDueDateChargesForLoanAsJSON(chargeId, "12 January 2013", "100");
|
||||
}
|
||||
|
||||
public static String getSpecifiedDueDateChargesForLoanAsJSON(final String chargeId, final String dueDate, final String amount) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("amount", "100");
|
||||
map.put("dueDate", "12 January 2013");
|
||||
map.put("amount", amount);
|
||||
map.put("dueDate", dueDate);
|
||||
map.put("chargeId", chargeId);
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
@@ -181,16 +222,63 @@ public class LoanTransactionHelper {
|
||||
}
|
||||
|
||||
public static String getDisbursementChargesForLoanAsJSON(final String chargeId) {
|
||||
return getDisbursementChargesForLoanAsJSON(chargeId, "100");
|
||||
}
|
||||
|
||||
public static String getDisbursementChargesForLoanAsJSON(final String chargeId, String amount) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("amount", "100");
|
||||
map.put("amount", amount);
|
||||
map.put("chargeId", chargeId);
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
return json;
|
||||
}
|
||||
|
||||
public static String getInstallmentChargesForLoanAsJSON(final String chargeId, final String amount) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("amount", amount);
|
||||
map.put("chargeId", chargeId);
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
return json;
|
||||
}
|
||||
|
||||
public static String getUpdateChargesForLoanAsJSON(String amount) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("amount", amount);
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
return json;
|
||||
}
|
||||
|
||||
public static String getPayChargeJSON(final String date, final String installmentNumber) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
map.put("transactionDate", date);
|
||||
if (installmentNumber != null) {
|
||||
map.put("installmentNumber", installmentNumber);
|
||||
}
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
return json;
|
||||
}
|
||||
|
||||
public static String getWaiveChargeJSON(final String installmentNumber) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", "en_GB");
|
||||
map.put("installmentNumber", installmentNumber);
|
||||
String json = new Gson().toJson(map);
|
||||
System.out.println(json);
|
||||
return json;
|
||||
}
|
||||
|
||||
public String getLoanCalculationBodyAsJSON(final String productID) {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("dateFormat", "dd MMMM yyyy");
|
||||
|
||||
+1
-1
@@ -215,7 +215,7 @@ public class SavingsAccountHelper {
|
||||
final HashMap<String, String> map = new HashMap<String, String>();
|
||||
map.put("locale", CommonConstants.locale);
|
||||
map.put("dateFormat", CommonConstants.dateFormat);
|
||||
map.put("activatedOnDate", "01 March 2013");
|
||||
map.put("activatedOnDate", TRANSACTION_DATE);
|
||||
String savingsAccountActivateJson = new Gson().toJson(map);
|
||||
System.out.println(savingsAccountActivateJson);
|
||||
return savingsAccountActivateJson;
|
||||
|
||||
Reference in New Issue
Block a user