Refactoring

This commit is contained in:
Priti
2013-03-30 11:08:16 +05:30
parent ed95612b3f
commit 5d4bbf191e
2 changed files with 97 additions and 232 deletions
@@ -19,6 +19,9 @@ import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.path.json.JsonPath;
import com.jayway.restassured.specification.RequestSpecification;
import com.jayway.restassured.specification.ResponseSpecification;
import org.mifosplatform.integrationtests.testbuilder.LoanApplicationTestBuilder;
import org.mifosplatform.integrationtests.testbuilder.LoanProductTestBuilder;
import org.mifosplatform.integrationtests.testbuilder.Utils;
/**
* Client Loan Integration Test for checking Loan Application Repayment Schedule.
@@ -43,12 +46,9 @@ public class ClientLoanIntegrationTest {
public void checkClientLoanCreateAndDisburseFlow(){
Integer clientID = createClient();
System.out.println("------------------------GENERATED CLIENT ID: "+clientID+"---------------------------\n");
checkClientCreatedOnServer(clientID);
Integer loanProductID = createLoanProduct();
System.out.println("-----------------------GENERATED LOAN PRODUCT ID : "+loanProductID+"---------------------------\n");
applyForLoanApplication(clientID, loanProductID);
ArrayList <HashMap> loanSchedule = getLoanRepaymentSchedule(loanProductID);
@@ -64,7 +64,7 @@ public class ClientLoanIntegrationTest {
private Integer createClient() {
System.out.println("---------------------------------CREATING A CLIENT---------------------------------------------");
String json = given().spec(requestSpec).body(getTestClientAsJSON())
String json = given().spec(requestSpec).body(Utils.getTestClientAsJSON("4 March 2009"))
.expect().spec(responseSpec)
.when().post("/mifosng-provider/api/v1/clients?tenantIdentifier=default")
.andReturn().asString();
@@ -81,7 +81,18 @@ public class ClientLoanIntegrationTest {
private Integer createLoanProduct() {
System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
String json = given().spec(requestSpec).body(getTestLoanProductAsJSON())
String loanProductJSON = new LoanProductTestBuilder()
.withPrincipal("12,000.00")
.withNumberOfRepayments("4")
.withRepaymentAfterEvery("1")
.withRepaymentTypeAsMonth()
.withinterestRatePerPeriod("2")
.withInterestRateFrequencyTypeAsMonths()
.withAmortizationTypeAsEqualInstallments()
.withInterestTypeAsDecliningBalance()
.withinterestRatePerPeriod("1")
.build();
String json = given().spec(requestSpec).body(loanProductJSON)
.expect().spec(responseSpec)
.when().post("/mifosng-provider/api/v1/loanproducts?tenantIdentifier=default")
.andReturn().asString();
@@ -90,7 +101,22 @@ public class ClientLoanIntegrationTest {
private void applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
given().spec(requestSpec).body(getLoanApplicationBodyAsJSON(clientID.toString(), loanProductID.toString()))
String loanApplicationJSON = new LoanApplicationTestBuilder()
.withPrincipal("12,000.00")
.withLoanTermFrequency("4")
.withLoanTermFrequencyAsMonths()
.withNumberOfRepayments("4")
.withRepaymentEveryAfter("1")
.withRepaymentFrequencyTypeAsMonths()
.withInterestRatePerPeriod("2")
.withInterestRateFrequencyTypeAsMonths()
.withAmortizationTypeAsEqualInstallments()
.withInterestTypeAsDecliningBalance()
.withInterestCalculationPeriodTypeSameAsRepaymentPeriod()
.withExpectedDisbursementDate("20 September 2011")
.withSubmittedOnDate("20 September 2011")
.Build(clientID.toString(),loanProductID.toString());
given().spec(requestSpec).body(loanApplicationJSON)
.expect().spec(responseSpec)
.when().post("/mifosng-provider/api/v1/loans?tenantIdentifier=default");
}
@@ -125,61 +151,7 @@ public class ClientLoanIntegrationTest {
}
private String getTestClientAsJSON() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("officeId", "1");
map.put("firstname", randomNameGenerator("Client_FirstName_", 5));
map.put("lastname", randomNameGenerator("Client_LastName_", 4));
map.put("externalId", randomIDGenerator("ID_", 7));
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en");
map.put("joinedDate", "04 March 2009");
return new Gson().toJson(map);
}
private String getTestLoanProductAsJSON(){
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", randomNameGenerator("LOAN_PRODUCT_", 6));
map.put("currencyCode", "INR");
map.put("locale", "en_GB");
map.put("digitsAfterDecimal", "2");
map.put("principal", "12,000.00");
map.put("numberOfRepayments", "4");
map.put("repaymentEvery", "1");
map.put("repaymentFrequencyType", "2");
map.put("interestRatePerPeriod", "2");
map.put("interestRateFrequencyType", "2");
map.put("amortizationType", "1");
map.put("interestType", "0");
map.put("interestCalculationPeriodType", "1");
map.put("inArrearsTolerance", "0");
map.put("transactionProcessingStrategyId", "1");
map.put("accountingRule", "1") ;
return new Gson().toJson(map);
}
private String getLoanApplicationBodyAsJSON(final String clientID,final String productID){
HashMap<String, String> map = new HashMap<String, String>();
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en_GB");
map.put("clientId", clientID);
map.put("productId", productID);
map.put("principal", "12,000.00");
map.put("loanTermFrequency", "4");
map.put("loanTermFrequencyType", "2");
map.put("numberOfRepayments", "4");
map.put("repaymentEvery", "1");
map.put("repaymentFrequencyType", "2");
map.put("interestRateFrequencyType", "2");
map.put("interestRatePerPeriod", "2");
map.put("amortizationType", "1");
map.put("interestType", "0");
map.put("interestCalculationPeriodType", "1");
map.put("transactionProcessingStrategyId", "1");
map.put("expectedDisbursementDate", "20 September 2011");
map.put("submittedOnDate", "20 September 2011");
return new Gson().toJson(map);
}
private String getLoanCalculationBodyAsJSON(final String productID){
HashMap<String, String> map = new HashMap<String, String>();
@@ -8,33 +8,43 @@ import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.HashMap;
import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
import com.google.gson.Gson;
import com.jayway.restassured.builder.RequestSpecBuilder;
import com.jayway.restassured.builder.ResponseSpecBuilder;
import com.jayway.restassured.http.ContentType;
import com.jayway.restassured.path.json.JsonPath;
import com.jayway.restassured.specification.RequestSpecification;
import com.jayway.restassured.specification.ResponseSpecification;
import org.mifosplatform.integrationtests.testbuilder.LoanApplicationTestBuilder;
import org.mifosplatform.integrationtests.testbuilder.LoanProductTestBuilder;
import org.mifosplatform.integrationtests.testbuilder.LoanStatusChecker;
import org.mifosplatform.integrationtests.testbuilder.Utils;
/**
* Client Loan Integration Test for checking Loan Disburstment with Waive Interest and Write-Off.
* Client Loan Integration Test for checking Loan Disbursement with Waive Interest and Write-Off.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public class LoanWithWaiveInterestAndWriteOff {
ResponseSpecification responseSpec;
RequestSpecification requestSpec;
final String PRINCIPAL="4,500.00",
final String
LP_PRINCIPAL = "12,000.00",
LP_REPAYMENTS ="2",
LP_REPAYMENT_PERIOD="6",
LP_INTEREST_RATE="1",
PRINCIPAL="4,500.00",
LOAN_TERM_FREQUENCY="18",
NUMBER_OF_REPAYMENTS="9",
REPAYMENT_PERIOD="2",
DISBURSEMENT_DATE="30 October 2010",
LOAN_APPLICATION_SUBMISSION_DATE="23 September 2010",
EXPECTED_DISBURSAL_DATE="28 October 2010",
RATE_OF_INTEREST_PER_PERIOD="2",
DATE_OF_JOINING = "04 March 2009",
INTEREST_VALUE_AMOUNT = "40.00";
@Before
@@ -50,7 +60,7 @@ public class LoanWithWaiveInterestAndWriteOff {
@Test
public void checkClientLoanCreateAndDisburseFlow(){
//CREATE CLIENT
Integer clientID = createClient();
Integer clientID = createClient(DATE_OF_JOINING);
verifyClientCreatedOnServer(clientID);
//CREATE LOAN PRODUCT
@@ -58,31 +68,30 @@ public class LoanWithWaiveInterestAndWriteOff {
//APPLY FOR LOAN
Integer loanID = applyForLoanApplication(clientID, loanProductID);
HashMap loanStatusHashMap = getStatusOfLoan(loanID);
verifyLoanStatusIsPending(loanStatusHashMap);
LoanStatusChecker.verifyLoanStatusIsPending(loanStatusHashMap);
//APPROVE LOAN
loanStatusHashMap = approveLoan("28 September 2010", loanID);
System.out.println("********************HASHMAP **************"+loanStatusHashMap);
verifyLoanIsApproved(loanStatusHashMap);
verifyLoanStatusIsWaitingForDisbursal(loanStatusHashMap);
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
LoanStatusChecker.verifyLoanStatusIsWaitingForDisbursal(loanStatusHashMap);
//UNDO APPROVAL
loanStatusHashMap = undoApproval(loanID);
verifyLoanNeedsApproval(loanStatusHashMap);
LoanStatusChecker.verifyLoanStatusIsPending(loanStatusHashMap);
//RE-APPROVE LOAN ON 1 OCTOBER 2010
loanStatusHashMap = approveLoan("1 October 2010", loanID);
verifyLoanIsApproved(loanStatusHashMap);
verifyLoanStatusIsWaitingForDisbursal(loanStatusHashMap);
LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
LoanStatusChecker.verifyLoanStatusIsWaitingForDisbursal(loanStatusHashMap);
//DISBURSE
loanStatusHashMap = disburseLoan(loanID);
verifyLoanStatusIsActive(loanStatusHashMap);
System.out.println("DISBURSE "+loanStatusHashMap);
LoanStatusChecker.verifyLoanStatusIsActive(loanStatusHashMap);
//PERFORM REPAYMENTS AND CHECK LOAN STATUS
//-----------------------------------------
// verifyRepaymentScheduleEntryFor(1, 4000.0F, 200.0F, loanID);
verifyRepaymentScheduleEntryFor(1, 4000.0F,loanID);
makeRepayment(540.0f, "1 January 2011", loanID);
makeRepayment(540.0f, "1 March 2011", loanID);
waiveInterest("1 May 2011", loanID);
@@ -93,43 +102,22 @@ public class LoanWithWaiveInterestAndWriteOff {
makeRepayment(540.0f, "1 November 2011", loanID);
waiveInterest("1 January 2012", loanID);
makeRepayment(500.0f, "1 January 2012", loanID);
// verifyRepaymentScheduleEntryFor(7, 1000.0F, 200.0F, loanID);
verifyRepaymentScheduleEntryFor(7,1000.0f,loanID);
//WRITE OFF LOAN AND CHECK ACCOUNT IS CLOSED
verifyLoanAccountIsClosed(writeOffLoan("1 March 2012", loanID));
LoanStatusChecker.verifyLoanAccountIsClosed(writeOffLoan("1 March 2012", loanID));
}
private void verifyLoanNeedsApproval(HashMap loanStatusHashMap) {
assertTrue(getStatus(loanStatusHashMap, "pendingApproval"));
}
private void verifyLoanIsApproved(HashMap loanStatusHashMap) {
assertFalse(getStatus(loanStatusHashMap, "pendingApproval"));
}
private void verifyLoanStatusIsWaitingForDisbursal(HashMap loanStatusHashMap) {
assertTrue(getStatus(loanStatusHashMap, "waitingForDisbursal"));
}
private void verifyLoanStatusIsPending(HashMap loanStatusHashMap) {
assertTrue(getStatus(loanStatusHashMap, "pendingApproval"));
}
private void verifyLoanStatusIsActive(HashMap loanStatusHashMap) {
assertTrue(getStatus(loanStatusHashMap, "active"));
}
private void verifyRepaymentScheduleEntryFor(int repaymentNumber, float expectedPrincipal, Float expectedInterest, Integer loanID) {
private void verifyRepaymentScheduleEntryFor(int repaymentNumber, float expectedPrincipalOutstanding ,Integer loanID) {
ArrayList<HashMap> repaymentPeriods = getLoanRepaymentSchedule(loanID);
assertEquals(repaymentPeriods.get(repaymentNumber).get("principalLoanBalanceOutstanding"), expectedPrincipal);
assertEquals(repaymentPeriods.get(repaymentNumber).get("interestLoanBalanceOutstanding"), expectedInterest);
assertEquals(repaymentPeriods.get(repaymentNumber).get("principalLoanBalanceOutstanding"), expectedPrincipalOutstanding);
}
private HashMap writeOffLoan(String transactionDate, Integer loanID){
System.out.println("--------------------LOAN WRITTEN OFF ON "+transactionDate+"-------------------------------\n");
String json = given().spec(requestSpec).body(getWriteOffBodyAsJSON(transactionDate))
String json = given().spec(requestSpec).body(Utils.getWriteOffBodyAsJSON(transactionDate))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans/" + loanID + "/transactions?command=writeoff&tenantIdentifier=default")
.andReturn().asString();
@@ -139,14 +127,14 @@ public class LoanWithWaiveInterestAndWriteOff {
private void waiveInterest(String transactionDate, Integer loanID){
System.out.println("--------------------Waive INTEREST On "+transactionDate+"-------------------------------\n");
given().spec(requestSpec).body(getWaiveBodyAsJSON(transactionDate))
given().spec(requestSpec).body(Utils.getWaiveBodyAsJSON(transactionDate, INTEREST_VALUE_AMOUNT))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans/" + loanID + "/transactions?command=waiveinterest&tenantIdentifier=default");
}
private void makeRepayment(Float transactionAmount, String transactionDate, Integer loanID){
System.out.print("------------------------MADE REPAYMENT ON "+transactionDate+"---------------------------------\n");
given().spec(requestSpec).body(getRepaymentBodyAsJSON(transactionDate,transactionAmount))
System.out.print("------------------------MADE REPAYMENT ON " + transactionDate + "---------------------------------\n");
given().spec(requestSpec).body(Utils.getRepaymentBodyAsJSON(transactionDate, transactionAmount))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans/" + loanID + "/transactions?command=repayment&tenantIdentifier=default");
}
@@ -161,14 +149,6 @@ public class LoanWithWaiveInterestAndWriteOff {
return (ArrayList)repaymentSchedule.get("periods");
}
private boolean getStatus(HashMap loanStatusMap,String nameOfLoanStatusString){
return (Boolean)loanStatusMap.get(nameOfLoanStatusString);
}
private void verifyLoanAccountIsClosed(HashMap loanStatusHashMap){
Assert.assertTrue(getStatus(loanStatusHashMap, "closed"));
}
private HashMap getStatusOfLoan(Integer loanID){
String json= given().spec(requestSpec)
.expect().spec(responseSpec).log().ifError()
@@ -188,7 +168,7 @@ public class LoanWithWaiveInterestAndWriteOff {
}
private HashMap disburseLoan(Integer loanID){
System.out.println("-----------------------------------DISBURSE LOAN-----------------------------------------");
String json = given().spec(requestSpec).body(getDisburseLoanAsJSON())
String json = given().spec(requestSpec).body(Utils.getDisburseLoanAsJSON(DISBURSEMENT_DATE))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans/" + loanID + "?command=disburse&tenantIdentifier=default")
.andReturn().asString();
@@ -198,11 +178,10 @@ public class LoanWithWaiveInterestAndWriteOff {
private HashMap approveLoan(String approvalDate, Integer loanID){
System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
String json =given().spec(requestSpec).body(getApproveLoanAsJSON(approvalDate))
String json =given().spec(requestSpec).body(Utils.getApproveLoanAsJSON(approvalDate))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans/"+ loanID +"?command=approve&tenantIdentifier=default")
.andReturn().asString();
System.out.println("**************CHANGES :"+from(json).get("changes"));
HashMap response = from(json).get("changes");
return (HashMap)response.get("status");
}
@@ -214,9 +193,9 @@ public class LoanWithWaiveInterestAndWriteOff {
return JsonPath.with(json).get("base64EncodedAuthenticationKey");
}
private Integer createClient() {
private Integer createClient(String dateOfJoining) {
System.out.println("---------------------------------CREATING A CLIENT---------------------------------------------");
String json = given().spec(requestSpec).body(getTestClientAsJSON())
String json = given().spec(requestSpec).body(Utils.getTestClientAsJSON(dateOfJoining))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/clients?tenantIdentifier=default")
.andReturn().asString();
@@ -234,10 +213,15 @@ public class LoanWithWaiveInterestAndWriteOff {
private Integer createLoanProduct() {
System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
String loanProductJSON = new LoanProductTestBuilder()
.withPrincipal(PRINCIPAL)
.withPrincipal(LP_PRINCIPAL)
.withRepaymentTypeAsMonth()
.withRepaymentAfterEvery(REPAYMENT_PERIOD)
.withNumberOfRepayments(NUMBER_OF_REPAYMENTS)
.withRepaymentAfterEvery(LP_REPAYMENT_PERIOD)
.withNumberOfRepayments(LP_REPAYMENTS)
.withRepaymentTypeAsMonth()
.withinterestRatePerPeriod(LP_INTEREST_RATE)
.withInterestRateFrequencyTypeAsMonths()
.withAmortizationTypeAsEqualPrinciplePayment()
.withInterestTypeAsFlat()
.build();
String json = given().spec(requestSpec).body(loanProductJSON)
.expect().spec(responseSpec).log().ifError()
@@ -248,118 +232,27 @@ public class LoanWithWaiveInterestAndWriteOff {
private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
String json = given().spec(requestSpec).body(getLoanApplicationBodyAsJSON(clientID.toString(), loanProductID.toString()))
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans?tenantIdentifier=default")
.andReturn().asString();
String loanApplicationJSON = new LoanApplicationTestBuilder()
.withPrincipal(PRINCIPAL)
.withLoanTermFrequency(LOAN_TERM_FREQUENCY)
.withLoanTermFrequencyAsMonths()
.withNumberOfRepayments(NUMBER_OF_REPAYMENTS)
.withRepaymentEveryAfter(REPAYMENT_PERIOD)
.withRepaymentFrequencyTypeAsMonths()
.withInterestRateFrequencyTypeAsMonths()
.withInterestRatePerPeriod(RATE_OF_INTEREST_PER_PERIOD)
.withInterestTypeAsFlatBalance()
.withAmortizationTypeAsEqualInstallments()
.withInterestCalculationPeriodTypeSameAsRepaymentPeriod()
.withExpectedDisbursementDate(EXPECTED_DISBURSAL_DATE)
.withSubmittedOnDate(LOAN_APPLICATION_SUBMISSION_DATE)
.Build(clientID.toString(), loanProductID.toString());
String json = given().spec(requestSpec).body(loanApplicationJSON)
.expect().spec(responseSpec).log().ifError()
.when().post("/mifosng-provider/api/v1/loans?tenantIdentifier=default")
.andReturn().asString();
return from(json).get("loanId");
}
private String getWriteOffBodyAsJSON(String transactionDate){
HashMap<String,String> map = new HashMap<String, String>();
map.put("dateFormat","dd MMMM yyyy");
map.put("locale","en");
map.put("note", " LOAN WRITE OFF!!!");
map.put("transactionDate",transactionDate);
return new Gson().toJson(map);
}
private String getWaiveBodyAsJSON(String transactionDate){
HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en");
map.put("dateFormat","dd MMMM yyyy");
map.put("transactionDate",transactionDate);
map.put("transactionAmount",INTEREST_VALUE_AMOUNT);
map.put("note", " Interest Waived!!!");
return new Gson().toJson(map);
}
private String getRepaymentBodyAsJSON(String transactionDate,Float transactionAmount){
HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en");
map.put("dateFormat","dd MMMM yyyy");
map.put("transactionDate",transactionDate);
map.put("transactionAmount",transactionAmount.toString());
map.put("note", "Repayment Made!!!");
return new Gson().toJson(map);
}
private String getApproveLoanAsJSON(String approvalDate){
HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en");
map.put("dateFormat","dd MMMM yyyy");
map.put("approvedOnDate",approvalDate);
map.put("note", "Approval NOTE");
System.out.println("***************JSON ***"+new Gson().toJson(map));
return new Gson().toJson(map);
}
private String getDisburseLoanAsJSON(){
HashMap<String,String> map = new HashMap<String, String>();
map.put("locale","en");
map.put("dateFormat","dd MMMM yyyy");
map.put("actualDisbursementDate",DISBURSEMENT_DATE);
map.put("note", "DISBURSE NOTE");
return new Gson().toJson(map);
}
private String getTestClientAsJSON() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("officeId", "1");
map.put("firstname", Utils.randomNameGenerator("Client_FirstName_", 5));
map.put("lastname", Utils.randomNameGenerator("Client_LastName_", 4));
map.put("externalId", Utils.randomIDGenerator("ID_", 7));
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en");
map.put("joinedDate", "04 March 2009");
System.out.println("map : "+map);
return new Gson().toJson(map);
}
private String getLoanApplicationBodyAsJSON(final String clientID,final String productID){
HashMap<String, String> map = new HashMap<String, String>();
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en_GB");
map.put("clientId", clientID);
map.put("productId", productID);
map.put("principal", PRINCIPAL);
map.put("loanTermFrequency", "4");
map.put("loanTermFrequencyType", "2");
map.put("numberOfRepayments", NUMBER_OF_REPAYMENTS);
map.put("repaymentEvery", REPAYMENT_PERIOD);
map.put("repaymentFrequencyType", "2");
map.put("interestRateFrequencyType", "2");
map.put("interestRatePerPeriod", "2");
map.put("amortizationType", "1");
map.put("interestType", "1");
map.put("interestCalculationPeriodType", "1");
map.put("transactionProcessingStrategyId", "1");
map.put("expectedDisbursementDate", DISBURSEMENT_DATE);
map.put("submittedOnDate", LOAN_APPLICATION_SUBMISSION_DATE);
return new Gson().toJson(map);
}
private String getLoanCalculationBodyAsJSON(String productID){
HashMap<String, String> map = new HashMap<String, String>();
map.put("dateFormat", "dd MMMM yyyy");
map.put("locale", "en_GB");
map.put("productId", productID);
map.put("principal", PRINCIPAL);
map.put("loanTermFrequency", "4");
map.put("loanTermFrequencyType", "2");
map.put("numberOfRepayments", NUMBER_OF_REPAYMENTS);
map.put("repaymentEvery", REPAYMENT_PERIOD);
map.put("repaymentFrequencyType", "2");
map.put("interestRateFrequencyType", "2");
map.put("interestRatePerPeriod", "2");
map.put("amortizationType", "1");
map.put("interestType", "1");
map.put("interestCalculationPeriodType", "1");
map.put("expectedDisbursementDate", DISBURSEMENT_DATE);
map.put("transactionProcessingStrategyId", "1");
return new Gson().toJson(map);
}
}