From f89a5737a7aab2578054360324df8c8fe4fd718c Mon Sep 17 00:00:00 2001 From: Vishwa1311 Date: Fri, 21 Mar 2014 19:07:17 +0530 Subject: [PATCH 1/2] [MIFOSX-1012] JUnit Test Cases for Savings Account Transfer JUnit Test Cases for Savings Account Transfer --- .../ClientSavingsIntegrationTest.java | 4 +- .../GroupSavingsIntegrationTest.java | 4 +- .../SavingsAccountTransfer.java | 206 ++++++++++++++++++ .../common/loans/LoanTransactionHelper.java | 7 + .../common/savings/SavingsAccountHelper.java | 41 ++-- .../SavingsAccountTransferTestBuilder.java | 50 +++++ 6 files changed, 295 insertions(+), 17 deletions(-) create mode 100644 mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java create mode 100644 mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientSavingsIntegrationTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientSavingsIntegrationTest.java index 7e97db0f9..2c1093252 100755 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientSavingsIntegrationTest.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientSavingsIntegrationTest.java @@ -377,7 +377,7 @@ public class ClientSavingsIntegrationTest { this.savingsAccountHelper.payCharge((Integer) savingsChargeForPay.get("id"), savingsId, ((Float) savingsChargeForPay.get("amount")).toString(), sdf.format(cal.getTime())); - HashMap paidCharge = this.savingsAccountHelper.getSavingsChanrge(savingsId, (Integer) savingsChargeForPay.get("id")); + HashMap paidCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForPay.get("id")); assertEquals(savingsChargeForPay.get("amount"), paidCharge.get("amountPaid")); final Integer monthlyFeechargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, @@ -390,7 +390,7 @@ public class ClientSavingsIntegrationTest { HashMap savingsChargeForWaive = charges.get(1); this.savingsAccountHelper.waiveCharge((Integer) savingsChargeForWaive.get("id"), savingsId); - HashMap waiveCharge = this.savingsAccountHelper.getSavingsChanrge(savingsId, (Integer) savingsChargeForWaive.get("id")); + HashMap waiveCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForWaive.get("id")); assertEquals(savingsChargeForWaive.get("amount"), waiveCharge.get("amountWaived")); } diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/GroupSavingsIntegrationTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/GroupSavingsIntegrationTest.java index bb2e6488a..0bb56215b 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/GroupSavingsIntegrationTest.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/GroupSavingsIntegrationTest.java @@ -416,7 +416,7 @@ public class GroupSavingsIntegrationTest { this.savingsAccountHelper.payCharge((Integer) savingsChargeForPay.get("id"), savingsId, ((Float) savingsChargeForPay.get("amount")).toString(), sdf.format(cal.getTime())); - HashMap paidCharge = this.savingsAccountHelper.getSavingsChanrge(savingsId, (Integer) savingsChargeForPay.get("id")); + HashMap paidCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForPay.get("id")); assertEquals(savingsChargeForPay.get("amount"), paidCharge.get("amountPaid")); final Integer monthlyFeechargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec, @@ -429,7 +429,7 @@ public class GroupSavingsIntegrationTest { HashMap savingsChargeForWaive = charges.get(1); this.savingsAccountHelper.waiveCharge((Integer) savingsChargeForWaive.get("id"), savingsId); - HashMap waiveCharge = this.savingsAccountHelper.getSavingsChanrge(savingsId, (Integer) savingsChargeForWaive.get("id")); + HashMap waiveCharge = this.savingsAccountHelper.getSavingsCharge(savingsId, (Integer) savingsChargeForWaive.get("id")); assertEquals(savingsChargeForWaive.get("amount"), waiveCharge.get("amountWaived")); } diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java new file mode 100644 index 000000000..d23e513ab --- /dev/null +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java @@ -0,0 +1,206 @@ +package org.mifosplatform.integrationtests; + +import static org.junit.Assert.assertEquals; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +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.CommonConstants; +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.SavingsAccountTransferTestBuilder; +import org.mifosplatform.integrationtests.common.savings.SavingsAccountTransferTestBuilder; +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; +import com.jayway.restassured.http.ContentType; +import com.jayway.restassured.specification.RequestSpecification; +import com.jayway.restassured.specification.ResponseSpecification; + +/** + * JUnit Test Cases for Account Transfer for. + */ +@SuppressWarnings({ "rawtypes", "unused", "static-access" }) +public class SavingsAccountTransfer { + + public static final String MINIMUM_OPENING_BALANCE = "10000.0"; + public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL"; + public static final String TO_LOAN_ACCOUNT_TYPE = "1"; + public static final String TO_SAVINGS_ACCOUNT_TYPE = "2"; + + private final String LOAN_APPROVAL_DATE = "01 March 2013"; + private final String LOAN_DISBURSAL_DATE = "01 March 2013"; + + private ResponseSpecification responseSpec; + private RequestSpecification requestSpec; + private SavingsAccountHelper savingsAccountHelper; + private SavingsAccountTransferTestBuilder savingsAccountTransferTestBuilder; + private LoanTransactionHelper loanTransactionHelper; + + Float TRANSFER_AMOUNT = new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); + + @Before + public void setup() { + Utils.initializeRESTAssured(); + this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build(); + this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); + this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build(); + } + + @Test + public void testFundTransferToSavingsAccount() { + this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); + + this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); + + // Creating Loan Account to which Fund to be Transferred. + final Integer toClientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(toClientId); + + final Integer toLoanProductID = createLoanProduct(); + Assert.assertNotNull(toLoanProductID); + + final Integer toLoanID = applyForLoanApplication(toClientId, toLoanProductID); + Assert.assertNotNull(toLoanID); + + HashMap toLoanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, toLoanID); + LoanStatusChecker.verifyLoanIsPending(toLoanStatusHashMap); + + toLoanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, toLoanID); + LoanStatusChecker.verifyLoanIsApproved(toLoanStatusHashMap); + + toLoanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, toLoanID); + LoanStatusChecker.verifyLoanIsActive(toLoanStatusHashMap); + + // Creating Savings Account to which fund to be Transferred + final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(toClientID); + + final Integer toSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE); + Assert.assertNotNull(toSavingsProductID); + + final Integer toSavingsID = this.savingsAccountHelper.applyForSavingsApplication(toClientID, toSavingsProductID, + ACCOUNT_TYPE_INDIVIDUAL); + Assert.assertNotNull(toSavingsProductID); + + HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, toSavingsID); + SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap); + + toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsID); + SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap); + + toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsID); + SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap); + + final HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsID); + + // Creating Savings Account from which the Fund has to be Transferred + final Integer fromClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(fromClientID); + + final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE); + Assert.assertNotNull(fromSavingsProductID); + + final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientID, fromSavingsProductID, + ACCOUNT_TYPE_INDIVIDUAL); + Assert.assertNotNull(fromSavingsID); + + HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID); + SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap); + + final HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + + Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); + Float toSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); + + this.savingsAccountHelper.toSavingsAccountTransfer(fromClientID, fromSavingsID, toClientID, toSavingsID, TO_SAVINGS_ACCOUNT_TYPE); + + fromSavingsBalance -= new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); + toSavingsBalance += new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); + + HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance, + fromSavingsSummaryAfter.get("accountBalance")); + + HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsID); + assertEquals("Verifying To Savings Account Balance after Account Transfer", toSavingsBalance, + toSavingsSummaryAfter.get("accountBalance")); + + this.savingsAccountHelper.toSavingsAccountTransfer(fromClientID, fromSavingsID, toClientId, toLoanID, TO_LOAN_ACCOUNT_TYPE); + + fromSavingsBalance -= TRANSFER_AMOUNT; + + fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance, + fromSavingsSummaryAfter.get("accountBalance")); + + HashMap toLoanSummaryAfter = this.loanTransactionHelper.getLoanSummary(requestSpec, responseSpec, toLoanID); + assertEquals("Verifying To Loan Repayment Amount after Account Transfer", TRANSFER_AMOUNT, toLoanSummaryAfter.get("totalRepayment")); + } + + 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); + } + + private Integer createLoanProduct() { + System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); + final String loanProductJSON = new LoanProductTestBuilder() // + .withPrincipal("12,000.00") // + .withNumberOfRepayments("4") // + .withRepaymentAfterEvery("1") // + .withRepaymentTypeAsMonth() // + .withinterestRatePerPeriod("1") // + .withInterestRateFrequencyTypeAsMonths() // + .withAmortizationTypeAsEqualInstallments() // + .withInterestTypeAsDecliningBalance() // + .build(); + return this.loanTransactionHelper.getLoanProductId(loanProductJSON); + } + + private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) { + System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); + final String loanApplicationJSON = new LoanApplicationTestBuilder() // + .withPrincipal("15,000.00") // + .withLoanTermFrequency("4") // + .withLoanTermFrequencyAsMonths() // + .withNumberOfRepayments("4") // + .withRepaymentEveryAfter("1") // + .withRepaymentFrequencyTypeAsMonths() // + .withInterestRatePerPeriod("2") // + .withAmortizationTypeAsEqualInstallments() // + .withInterestTypeAsDecliningBalance() // + .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() // + .withExpectedDisbursementDate("10 January 2013") // + .withSubmittedOnDate("10 January 2013") // + .build(clientID.toString(), loanProductID.toString()); + return this.loanTransactionHelper.getLoanId(loanApplicationJSON); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/loans/LoanTransactionHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/loans/LoanTransactionHelper.java index a6d06184e..d778636e7 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/loans/LoanTransactionHelper.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/loans/LoanTransactionHelper.java @@ -47,6 +47,13 @@ public class LoanTransactionHelper { final HashMap response = Utils.performServerGet(requestSpec, responseSpec, URL, "repaymentSchedule"); return (ArrayList) response.get("periods"); } + + public HashMap getLoanSummary(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, + final Integer loanID) { + final String URL = "/mifosng-provider/api/v1/loans/" + loanID + "?associations=all&tenantIdentifier=default"; + final HashMap response = Utils.performServerGet(requestSpec, responseSpec, URL, "summary"); + return response; + } public HashMap approveLoan(final String approvalDate, final Integer loanID) { return performLoanTransaction(createLoanOperationURL(APPROVE_LOAN_COMMAND, loanID), getApproveLoanAsJSON(approvalDate)); diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java index 31872062a..eb584e70a 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java @@ -20,6 +20,7 @@ public class SavingsAccountHelper { private final ResponseSpecification responseSpec; private static final String SAVINGS_ACCOUNT_URL = "/mifosng-provider/api/v1/savingsaccounts"; + private static final String ACCOUNT_TRANSFER_URL = "/mifosng-provider/api/v1/accounttransfers"; private static final String APPROVE_SAVINGS_COMMAND = "approve"; private static final String UNDO_APPROVAL_SAVINGS_COMMAND = "undoApproval"; private static final String ACTIVATE_SAVINGS_COMMAND = "activate"; @@ -39,16 +40,19 @@ public class SavingsAccountHelper { public static final String CREATED_DATE_MINUS_ONE = "07 January 2013"; public static final String TRANSACTION_DATE = "10 January 2013"; public static final String LAST_TRANSACTION_DATE = "11 January 2013"; + public static final String ACCOUNT_TRANSFER_DATE = "01 March 2013"; + + public static final String ACCOUNT_TRANSFER_AMOUNT = "3200"; public SavingsAccountHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { this.requestSpec = requestSpec; this.responseSpec = responseSpec; } - - public static String getFutureDate(){ + + public static String getFutureDate() { SimpleDateFormat sdf = new SimpleDateFormat(CommonConstants.dateFormat); Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)+1); + calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1); return sdf.format(calendar.getTime()); } @@ -83,12 +87,14 @@ public class SavingsAccountHelper { public HashMap rejectApplication(final Integer savingsID) { System.out.println("--------------------------------- REJECT SAVINGS APPLICATION -------------------------------"); - return performSavingApplicationActions(createSavingsOperationURL(REJECT_SAVINGS_COMMAND, savingsID), getRejectedSavingsAsJSON(CREATED_DATE_PLUS_ONE)); + return performSavingApplicationActions(createSavingsOperationURL(REJECT_SAVINGS_COMMAND, savingsID), + getRejectedSavingsAsJSON(CREATED_DATE_PLUS_ONE)); } - - public List rejectApplicationWithErrorCode(final Integer savingsId,final String date){ + + public List rejectApplicationWithErrorCode(final Integer savingsId, final String date) { System.out.println("--------------------------------- REJECT SAVINGS APPLICATION -------------------------------"); - return (List)performSavingActions(createSavingsOperationURL(REJECT_SAVINGS_COMMAND, savingsId), getRejectedSavingsAsJSON(date), CommonConstants.RESPONSE_ERROR); + return (List) performSavingActions(createSavingsOperationURL(REJECT_SAVINGS_COMMAND, savingsId), getRejectedSavingsAsJSON(date), + CommonConstants.RESPONSE_ERROR); } public HashMap withdrawApplication(final Integer savingsID) { @@ -107,7 +113,7 @@ public class SavingsAccountHelper { return performSavingApplicationActions(createSavingsOperationURL(CLOSE_SAVINGS_COMMAND, savingsID), getCloseAccountJSON()); } - public Object deleteSavingsApplication(final Integer savingsId,final String jsonAttributeToGetBack) { + public Object deleteSavingsApplication(final Integer savingsId, final String jsonAttributeToGetBack) { System.out.println("---------------------------------- DELETE SAVINGS APPLICATION ----------------------------------"); return Utils.performServerDelete(this.requestSpec, this.responseSpec, SAVINGS_ACCOUNT_URL + "/" + savingsId + "?" + Utils.TENANT_IDENTIFIER, jsonAttributeToGetBack); @@ -116,17 +122,16 @@ public class SavingsAccountHelper { public Object depositToSavingsAccount(final Integer savingsID, final String amount, String date, String jsonAttributeToGetback) { System.out.println("--------------------------------- SAVINGS TRANSACTION DEPOSIT --------------------------------"); - return performSavingActions(createSavingsTransactionURL(DEPOSIT_SAVINGS_COMMAND, savingsID), + return performSavingActions(createSavingsTransactionURL(DEPOSIT_SAVINGS_COMMAND, savingsID), getSavingsTransactionJSON(amount, date), jsonAttributeToGetback); } public Object withdrawalFromSavingsAccount(final Integer savingsId, final String amount, String date, String jsonAttributeToGetback) { System.out.println("\n--------------------------------- SAVINGS TRANSACTION WITHDRAWAL --------------------------------"); - return performSavingActions(createSavingsTransactionURL(WITHDRAW_SAVINGS_COMMAND, savingsId), + return performSavingActions(createSavingsTransactionURL(WITHDRAW_SAVINGS_COMMAND, savingsId), getSavingsTransactionJSON(amount, date), jsonAttributeToGetback); } - public Integer updateSavingsAccountTransaction(final Integer savingsId, final Integer transactionId, final String amount) { System.out.println("\n--------------------------------- MODIFY SAVINGS TRANSACTION --------------------------------"); return (Integer) performSavingActions(createAdjustTransactionURL(MODIFY_TRASACTION_COMMAND, savingsId, transactionId), @@ -177,6 +182,16 @@ public class SavingsAccountHelper { + chargeId + "?" + Utils.TENANT_IDENTIFIER, CommonConstants.RESPONSE_RESOURCE_ID); } + public Integer toSavingsAccountTransfer(final Integer fromClientId, final Integer fromAccountId, final Integer toClientId, final Integer toAccountId, final String toAccountType) { + System.out.println("--------------------------------ACCOUNT TRANSFER--------------------------------"); + final String savingsAccountTransferJSON = new SavingsAccountTransferTestBuilder() // + .withTransferOnDate(ACCOUNT_TRANSFER_DATE) // + .withTransferAmount(ACCOUNT_TRANSFER_AMOUNT) // + .build(fromAccountId.toString(), fromClientId.toString(), toAccountId.toString(), toClientId.toString(), toAccountType); + return Utils.performServerPost(this.requestSpec, this.responseSpec, ACCOUNT_TRANSFER_URL + "?" + Utils.TENANT_IDENTIFIER, + savingsAccountTransferJSON, "savingsId"); + } + private String getApproveSavingsAsJSON() { final HashMap map = new HashMap(); map.put("locale", CommonConstants.locale); @@ -187,7 +202,7 @@ public class SavingsAccountHelper { System.out.println(savingsAccountApproveJson); return savingsAccountApproveJson; } - + private String getRejectedSavingsAsJSON(final String rejectedOnDate) { final HashMap map = new HashMap(); map.put("locale", CommonConstants.locale); @@ -307,7 +322,7 @@ public class SavingsAccountHelper { return Utils.performServerGet(requestSpec, responseSpec, URL, ""); } - public HashMap getSavingsChanrge(final Integer savingsID, final Integer savingsChargeId) { + public HashMap getSavingsCharge(final Integer savingsID, final Integer savingsChargeId) { final String URL = SAVINGS_ACCOUNT_URL + "/" + savingsID + "/charges/" + savingsChargeId + "?" + Utils.TENANT_IDENTIFIER; return Utils.performServerGet(requestSpec, responseSpec, URL, ""); } diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java new file mode 100644 index 000000000..db7cbf1f5 --- /dev/null +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java @@ -0,0 +1,50 @@ +package org.mifosplatform.integrationtests.common.savings; + +import java.util.HashMap; + +import com.google.gson.Gson; + +public class SavingsAccountTransferTestBuilder { + + private static final String LOCALE = "en_GB"; + private static final String OFFICE_ID = "1"; + private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2"; + private static final String TRANSFER_DESCRIPTION = "Transfer"; + + private String transferDate = ""; + private String transferAmount = ""; + private String fromAccountType = FROM_ACCOUNT_TYPE_SAVINGS; + private String officeId = OFFICE_ID; + private String transferDescription = TRANSFER_DESCRIPTION; + + public String build(final String fromAccountId, final String fromClientId, final String toAccountId, final String toClientId, final String toAccountType) { + + final HashMap map = new HashMap(); + map.put("dateFormat", "dd MMMM yyyy"); + map.put("locale", LOCALE); + map.put("fromClientId", fromClientId); + map.put("fromAccountId", fromAccountId); + map.put("fromAccountType", this.fromAccountType); + map.put("fromOfficeId", this.officeId); + map.put("toClientId", toClientId); + map.put("toAccountId", toAccountId); + map.put("toAccountType", toAccountType); + map.put("toOfficeId", this.officeId); + map.put("transferDate", this.transferDate); + map.put("transferAmount", this.transferAmount); + map.put("transferDescription", this.transferDescription); + String savingsApplicationJSON = new Gson().toJson(map); + System.out.println(savingsApplicationJSON); + return savingsApplicationJSON; + } + + public SavingsAccountTransferTestBuilder withTransferOnDate(final String savingsAccountTransferDate) { + this.transferDate = savingsAccountTransferDate; + return this; + } + + public SavingsAccountTransferTestBuilder withTransferAmount(final String savingsAccountTransferAmount) { + this.transferAmount = savingsAccountTransferAmount; + return this; + } +} \ No newline at end of file From d26b14b85ab54665aae12189c1d7f38b6edc31fa Mon Sep 17 00:00:00 2001 From: Vishwa1311 Date: Tue, 25 Mar 2014 16:48:43 +0530 Subject: [PATCH 2/2] [MIFOSX-1012] JUnit Test Cases for Account Transfer --- ...Transfer.java => AccountTransferTest.java} | 206 ++++++++++++++---- .../common/savings/AccountTransferHelper.java | 68 ++++++ .../common/savings/SavingsAccountHelper.java | 16 +- .../SavingsAccountTransferTestBuilder.java | 50 ----- 4 files changed, 237 insertions(+), 103 deletions(-) rename mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/{SavingsAccountTransfer.java => AccountTransferTest.java} (53%) create mode 100644 mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/AccountTransferHelper.java delete mode 100644 mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java similarity index 53% rename from mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java rename to mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java index d23e513ab..2a0da760a 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/SavingsAccountTransfer.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountTransferTest.java @@ -19,9 +19,8 @@ import org.mifosplatform.integrationtests.common.loans.LoanApplicationTestBuilde 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.AccountTransferHelper; import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper; -import org.mifosplatform.integrationtests.common.savings.SavingsAccountTransferTestBuilder; -import org.mifosplatform.integrationtests.common.savings.SavingsAccountTransferTestBuilder; import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper; import org.mifosplatform.integrationtests.common.savings.SavingsStatusChecker; @@ -34,11 +33,15 @@ import com.jayway.restassured.specification.ResponseSpecification; /** * JUnit Test Cases for Account Transfer for. */ -@SuppressWarnings({ "rawtypes", "unused", "static-access" }) -public class SavingsAccountTransfer { +@SuppressWarnings({ "rawtypes", "unused" }) +public class AccountTransferTest { - public static final String MINIMUM_OPENING_BALANCE = "10000.0"; + public static final String MINIMUM_OPENING_BALANCE = "30000.0"; public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL"; + public static final String ACCOUNT_TRANSFER_AMOUNT = "15000.0"; + public static final String ACCOUNT_TRANSFER_AMOUNT_ADJUST = "3000.0"; + public static final String FROM_LOAN_ACCOUNT_TYPE = "1"; + public static final String FROM_SAVINGS_ACCOUNT_TYPE = "2"; public static final String TO_LOAN_ACCOUNT_TYPE = "1"; public static final String TO_SAVINGS_ACCOUNT_TYPE = "2"; @@ -48,10 +51,11 @@ public class SavingsAccountTransfer { private ResponseSpecification responseSpec; private RequestSpecification requestSpec; private SavingsAccountHelper savingsAccountHelper; - private SavingsAccountTransferTestBuilder savingsAccountTransferTestBuilder; + private AccountTransferHelper accountTransferHelper; private LoanTransactionHelper loanTransactionHelper; - Float TRANSFER_AMOUNT = new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); + Float TRANSFER_AMOUNT = new Float(ACCOUNT_TRANSFER_AMOUNT); + Float TRANSFER_AMOUNT_ADJUST = new Float(ACCOUNT_TRANSFER_AMOUNT_ADJUST); @Before public void setup() { @@ -62,29 +66,9 @@ public class SavingsAccountTransfer { } @Test - public void testFundTransferToSavingsAccount() { + public void testFromSavingsToSavingsAccountTransfer() { this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); - - this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); - - // Creating Loan Account to which Fund to be Transferred. - final Integer toClientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); - Assert.assertNotNull(toClientId); - - final Integer toLoanProductID = createLoanProduct(); - Assert.assertNotNull(toLoanProductID); - - final Integer toLoanID = applyForLoanApplication(toClientId, toLoanProductID); - Assert.assertNotNull(toLoanID); - - HashMap toLoanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, toLoanID); - LoanStatusChecker.verifyLoanIsPending(toLoanStatusHashMap); - - toLoanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, toLoanID); - LoanStatusChecker.verifyLoanIsApproved(toLoanStatusHashMap); - - toLoanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, toLoanID); - LoanStatusChecker.verifyLoanIsActive(toLoanStatusHashMap); + this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec); // Creating Savings Account to which fund to be Transferred final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); @@ -133,10 +117,11 @@ public class SavingsAccountTransfer { Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); Float toSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); - this.savingsAccountHelper.toSavingsAccountTransfer(fromClientID, fromSavingsID, toClientID, toSavingsID, TO_SAVINGS_ACCOUNT_TYPE); + this.accountTransferHelper.accountTransfer(fromClientID, fromSavingsID, toClientID, toSavingsID, FROM_SAVINGS_ACCOUNT_TYPE, + TO_SAVINGS_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT); - fromSavingsBalance -= new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); - toSavingsBalance += new Float(savingsAccountHelper.ACCOUNT_TRANSFER_AMOUNT); + fromSavingsBalance -= new Float(ACCOUNT_TRANSFER_AMOUNT); + toSavingsBalance += new Float(ACCOUNT_TRANSFER_AMOUNT); HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance, @@ -145,17 +130,162 @@ public class SavingsAccountTransfer { HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsID); assertEquals("Verifying To Savings Account Balance after Account Transfer", toSavingsBalance, toSavingsSummaryAfter.get("accountBalance")); + } - this.savingsAccountHelper.toSavingsAccountTransfer(fromClientID, fromSavingsID, toClientId, toLoanID, TO_LOAN_ACCOUNT_TYPE); + @Test + public void testFromSavingsToLoanAccountTransfer() { + this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); + this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); + this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec); - fromSavingsBalance -= TRANSFER_AMOUNT; + // Creating Loan Account to which Fund to be Transferred. + final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(toClientID); - fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + final Integer toLoanProductID = createLoanProduct(); + Assert.assertNotNull(toLoanProductID); + + final Integer toLoanID = applyForLoanApplication(toClientID, toLoanProductID); + Assert.assertNotNull(toLoanID); + + HashMap toLoanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, toLoanID); + LoanStatusChecker.verifyLoanIsPending(toLoanStatusHashMap); + + toLoanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, toLoanID); + LoanStatusChecker.verifyLoanIsApproved(toLoanStatusHashMap); + + toLoanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, toLoanID); + LoanStatusChecker.verifyLoanIsActive(toLoanStatusHashMap); + + // Creating Savings Account from which Fund to be Transferred + final Integer fromClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(fromClientID); + + final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE); + Assert.assertNotNull(fromSavingsProductID); + + final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientID, fromSavingsProductID, + ACCOUNT_TYPE_INDIVIDUAL); + Assert.assertNotNull(fromSavingsID); + + HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID); + SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap); + + final HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + + Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); + + this.accountTransferHelper.accountTransfer(fromClientID, fromSavingsID, toClientID, toLoanID, FROM_SAVINGS_ACCOUNT_TYPE, + TO_LOAN_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT_ADJUST); + + fromSavingsBalance -= TRANSFER_AMOUNT_ADJUST; + + HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance, fromSavingsSummaryAfter.get("accountBalance")); HashMap toLoanSummaryAfter = this.loanTransactionHelper.getLoanSummary(requestSpec, responseSpec, toLoanID); - assertEquals("Verifying To Loan Repayment Amount after Account Transfer", TRANSFER_AMOUNT, toLoanSummaryAfter.get("totalRepayment")); + assertEquals("Verifying To Loan Repayment Amount after Account Transfer", TRANSFER_AMOUNT_ADJUST, toLoanSummaryAfter.get("totalRepayment")); + } + + @Test + public void testFromLoanToSavingsAccountTransfer() { + this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec); + this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec); + this.accountTransferHelper = new AccountTransferHelper(this.requestSpec, this.responseSpec); + + // Creating Savings Account to which Fund to be Transferred + final Integer toClientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(toClientID); + + final Integer toSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE); + Assert.assertNotNull(toSavingsProductID); + + final Integer toSavingsID = this.savingsAccountHelper.applyForSavingsApplication(toClientID, toSavingsProductID, + ACCOUNT_TYPE_INDIVIDUAL); + Assert.assertNotNull(toSavingsID); + + HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, toSavingsID); + SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap); + + toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsID); + SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap); + + toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsID); + SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap); + + // Creating Loan Account to or from which Fund to be Transferred. + final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(clientID); + + final Integer loanProductID = createLoanProduct(); + Assert.assertNotNull(loanProductID); + + final Integer loanID = applyForLoanApplication(clientID, loanProductID); + Assert.assertNotNull(loanID); + + HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID); + LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap); + + loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_APPROVAL_DATE, loanID); + LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap); + + loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSAL_DATE, loanID); + LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap); + + // Creating Savings Account from which Fund to be Transferred + final Integer fromClientId = ClientHelper.createClient(this.requestSpec, this.responseSpec); + Assert.assertNotNull(fromClientId); + + final Integer fromSavingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE); + Assert.assertNotNull(fromSavingsProductID); + + final Integer fromSavingsID = this.savingsAccountHelper.applyForSavingsApplication(fromClientId, fromSavingsProductID, + ACCOUNT_TYPE_INDIVIDUAL); + Assert.assertNotNull(fromSavingsID); + + HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsID); + SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap); + + fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsID); + SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap); + + final HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsID); + + Float fromSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); + + this.accountTransferHelper.accountTransfer(fromClientId, fromSavingsID, clientID, loanID, FROM_SAVINGS_ACCOUNT_TYPE, + TO_LOAN_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT); + + fromSavingsBalance -= TRANSFER_AMOUNT; + + HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsID); + + // Verifying fromSavings Account Balance after Account Transfer + assertEquals("Verifying From Savings Account Balance after Account Transfer", fromSavingsBalance, + fromSavingsSummaryAfter.get("accountBalance")); + + Float toSavingsBalance = new Float(MINIMUM_OPENING_BALANCE); + + this.accountTransferHelper.accountTransfer(clientID, loanID, toClientID, toSavingsID, FROM_LOAN_ACCOUNT_TYPE, + TO_SAVINGS_ACCOUNT_TYPE, ACCOUNT_TRANSFER_AMOUNT_ADJUST); + + toSavingsBalance += TRANSFER_AMOUNT_ADJUST; + + HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsID); + + // Verifying toSavings Account Balance after Account Transfer + assertEquals("Verifying From Savings Account Balance after Account Transfer", toSavingsBalance, + toSavingsSummaryAfter.get("accountBalance")); } private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, @@ -173,7 +303,7 @@ public class SavingsAccountTransfer { private Integer createLoanProduct() { System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------"); final String loanProductJSON = new LoanProductTestBuilder() // - .withPrincipal("12,000.00") // + .withPrincipal("8,000.00") // .withNumberOfRepayments("4") // .withRepaymentAfterEvery("1") // .withRepaymentTypeAsMonth() // @@ -188,7 +318,7 @@ public class SavingsAccountTransfer { private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) { System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------"); final String loanApplicationJSON = new LoanApplicationTestBuilder() // - .withPrincipal("15,000.00") // + .withPrincipal("8,000.00") // .withLoanTermFrequency("4") // .withLoanTermFrequencyAsMonths() // .withNumberOfRepayments("4") // diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/AccountTransferHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/AccountTransferHelper.java new file mode 100644 index 000000000..248bafe5a --- /dev/null +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/AccountTransferHelper.java @@ -0,0 +1,68 @@ +package org.mifosplatform.integrationtests.common.savings; + +import java.util.HashMap; + +import org.mifosplatform.integrationtests.common.Utils; + +import com.google.gson.Gson; +import com.jayway.restassured.specification.RequestSpecification; +import com.jayway.restassured.specification.ResponseSpecification; + +public class AccountTransferHelper { + + private static final String ACCOUNT_TRANSFER_URL = "/mifosng-provider/api/v1/accounttransfers"; + private static final String LOCALE = "en_GB"; + private static final String OFFICE_ID = "1"; + private static final String TRANSFER_DESCRIPTION = "Transfer"; + private static final String ACCOUNT_TRANSFER_DATE = "01 March 2013"; + + private String transferDate = ""; + private String officeId = OFFICE_ID; + private String transferDescription = TRANSFER_DESCRIPTION; + + private RequestSpecification requestSpec; + private ResponseSpecification responseSpec; + + public AccountTransferHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { + this.requestSpec = requestSpec; + this.responseSpec = responseSpec; + } + + public String build(final String fromAccountId, final String fromClientId, final String toAccountId, final String toClientId, + final String fromAccountType, final String toAccountType, final String transferAmount) { + + final HashMap map = new HashMap(); + map.put("dateFormat", "dd MMMM yyyy"); + map.put("locale", LOCALE); + map.put("fromClientId", fromClientId); + map.put("fromAccountId", fromAccountId); + map.put("fromAccountType", fromAccountType); + map.put("fromOfficeId", this.officeId); + map.put("toClientId", toClientId); + map.put("toAccountId", toAccountId); + map.put("toAccountType", toAccountType); + map.put("toOfficeId", this.officeId); + map.put("transferDate", this.transferDate); + map.put("transferAmount", transferAmount); + map.put("transferDescription", this.transferDescription); + String savingsApplicationJSON = new Gson().toJson(map); + System.out.println(savingsApplicationJSON); + return savingsApplicationJSON; + } + + public AccountTransferHelper withTransferOnDate(final String savingsAccountTransferDate) { + this.transferDate = savingsAccountTransferDate; + return this; + } + + public Integer accountTransfer(final Integer fromClientId, final Integer fromAccountId, final Integer toClientId, + final Integer toAccountId, final String fromAccountType, final String toAccountType, final String transferAmount) { + System.out.println("--------------------------------ACCOUNT TRANSFER--------------------------------"); + final String accountTransferJSON = new AccountTransferHelper(this.requestSpec, this.responseSpec) // + .withTransferOnDate(ACCOUNT_TRANSFER_DATE) // + .build(fromAccountId.toString(), fromClientId.toString(), toAccountId.toString(), toClientId.toString(), fromAccountType, + toAccountType, transferAmount); + return Utils.performServerPost(this.requestSpec, this.responseSpec, ACCOUNT_TRANSFER_URL + "?" + Utils.TENANT_IDENTIFIER, + accountTransferJSON, "savingsId"); + } +} \ No newline at end of file diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java index eb584e70a..665514157 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountHelper.java @@ -20,7 +20,6 @@ public class SavingsAccountHelper { private final ResponseSpecification responseSpec; private static final String SAVINGS_ACCOUNT_URL = "/mifosng-provider/api/v1/savingsaccounts"; - private static final String ACCOUNT_TRANSFER_URL = "/mifosng-provider/api/v1/accounttransfers"; private static final String APPROVE_SAVINGS_COMMAND = "approve"; private static final String UNDO_APPROVAL_SAVINGS_COMMAND = "undoApproval"; private static final String ACTIVATE_SAVINGS_COMMAND = "activate"; @@ -40,9 +39,6 @@ public class SavingsAccountHelper { public static final String CREATED_DATE_MINUS_ONE = "07 January 2013"; public static final String TRANSACTION_DATE = "10 January 2013"; public static final String LAST_TRANSACTION_DATE = "11 January 2013"; - public static final String ACCOUNT_TRANSFER_DATE = "01 March 2013"; - - public static final String ACCOUNT_TRANSFER_AMOUNT = "3200"; public SavingsAccountHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { this.requestSpec = requestSpec; @@ -182,16 +178,6 @@ public class SavingsAccountHelper { + chargeId + "?" + Utils.TENANT_IDENTIFIER, CommonConstants.RESPONSE_RESOURCE_ID); } - public Integer toSavingsAccountTransfer(final Integer fromClientId, final Integer fromAccountId, final Integer toClientId, final Integer toAccountId, final String toAccountType) { - System.out.println("--------------------------------ACCOUNT TRANSFER--------------------------------"); - final String savingsAccountTransferJSON = new SavingsAccountTransferTestBuilder() // - .withTransferOnDate(ACCOUNT_TRANSFER_DATE) // - .withTransferAmount(ACCOUNT_TRANSFER_AMOUNT) // - .build(fromAccountId.toString(), fromClientId.toString(), toAccountId.toString(), toClientId.toString(), toAccountType); - return Utils.performServerPost(this.requestSpec, this.responseSpec, ACCOUNT_TRANSFER_URL + "?" + Utils.TENANT_IDENTIFIER, - savingsAccountTransferJSON, "savingsId"); - } - private String getApproveSavingsAsJSON() { final HashMap map = new HashMap(); map.put("locale", CommonConstants.locale); @@ -229,7 +215,7 @@ public class SavingsAccountHelper { final HashMap map = new HashMap(); map.put("locale", CommonConstants.locale); map.put("dateFormat", CommonConstants.dateFormat); - map.put("activatedOnDate", "10 January 2013"); + map.put("activatedOnDate", "01 March 2013"); String savingsAccountActivateJson = new Gson().toJson(map); System.out.println(savingsAccountActivateJson); return savingsAccountActivateJson; diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java deleted file mode 100644 index db7cbf1f5..000000000 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/savings/SavingsAccountTransferTestBuilder.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.mifosplatform.integrationtests.common.savings; - -import java.util.HashMap; - -import com.google.gson.Gson; - -public class SavingsAccountTransferTestBuilder { - - private static final String LOCALE = "en_GB"; - private static final String OFFICE_ID = "1"; - private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2"; - private static final String TRANSFER_DESCRIPTION = "Transfer"; - - private String transferDate = ""; - private String transferAmount = ""; - private String fromAccountType = FROM_ACCOUNT_TYPE_SAVINGS; - private String officeId = OFFICE_ID; - private String transferDescription = TRANSFER_DESCRIPTION; - - public String build(final String fromAccountId, final String fromClientId, final String toAccountId, final String toClientId, final String toAccountType) { - - final HashMap map = new HashMap(); - map.put("dateFormat", "dd MMMM yyyy"); - map.put("locale", LOCALE); - map.put("fromClientId", fromClientId); - map.put("fromAccountId", fromAccountId); - map.put("fromAccountType", this.fromAccountType); - map.put("fromOfficeId", this.officeId); - map.put("toClientId", toClientId); - map.put("toAccountId", toAccountId); - map.put("toAccountType", toAccountType); - map.put("toOfficeId", this.officeId); - map.put("transferDate", this.transferDate); - map.put("transferAmount", this.transferAmount); - map.put("transferDescription", this.transferDescription); - String savingsApplicationJSON = new Gson().toJson(map); - System.out.println(savingsApplicationJSON); - return savingsApplicationJSON; - } - - public SavingsAccountTransferTestBuilder withTransferOnDate(final String savingsAccountTransferDate) { - this.transferDate = savingsAccountTransferDate; - return this; - } - - public SavingsAccountTransferTestBuilder withTransferAmount(final String savingsAccountTransferAmount) { - this.transferAmount = savingsAccountTransferAmount; - return this; - } -} \ No newline at end of file