You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ma...@apache.org on 2016/02/01 10:24:45 UTC

[09/51] [partial] incubator-fineract git commit: deleted initial code

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
deleted file mode 100644
index 5013a40..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import org.junit.Assert;
-
-import static org.junit.Assert.fail;
-
-import java.util.concurrent.TimeUnit;
-
-import org.apache.fineract.integrationtests.common.HookHelper;
-import org.apache.fineract.integrationtests.common.OfficeHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.http.conn.HttpHostConnectException;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.jayway.restassured.RestAssured;
-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;
-
-public class HookIntegrationTest {
-
-    private RequestSpecification requestSpec;
-    private ResponseSpecification responseSpec;
-
-    private HookHelper hookHelper;
-    private OfficeHelper officeHelper;
-
-    @Before
-    public void setUp() throws Exception {
-        Utils.initializeRESTAssured();
-        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.hookHelper = new HookHelper(this.requestSpec, this.responseSpec);
-        this.officeHelper = new OfficeHelper(this.requestSpec, this.responseSpec);
-    }
-
-    @Test
-    public void shouldSendOfficeCreationNotification() {
-        // Subject to https://echo-webhook.herokuapp.com being up
-        // See
-        // http://www.jamesward.com/2014/06/11/testing-webhooks-was-a-pain-so-i-fixed-the-glitch
-        final String payloadURL = "http://echo-webhook.herokuapp.com:80/Z7RXoCBdLSFMDrpn?";
-        this.hookHelper.createHook(payloadURL);
-        final Integer createdOfficeID = this.officeHelper.createOffice("01 January 2012");
-        try {
-
-            /**
-             * sleep for a three seconds after each failure to increase the
-             * likelihood of the previous request for creating office completing
-             **/
-
-            for (int i = 0; i < 6; i++) {
-                try {
-                    final String json = RestAssured.get(payloadURL.replace("?", "")).asString();
-                    final Integer notificationOfficeId = JsonPath.with(json).get("officeId");
-                    Assert.assertEquals("Equality check for created officeId and hook received payload officeId", createdOfficeID,
-                            notificationOfficeId);
-                    System.out.println("Notification Office Id - " + notificationOfficeId);
-                    i = 6;
-                } catch (Exception e) {
-                    TimeUnit.SECONDS.sleep(3);
-                    i++;
-                }
-            }
-
-        } catch (final Exception e) {
-            if (e instanceof HttpHostConnectException) {
-                fail("Failed to connect to https://echo-webhook.herokuapp.com platform");
-            }
-            throw new RuntimeException(e);
-        }
-
-    }
-    
-    @Test
-    public void createUpdateAndDeleteHook(){
-    	final String payloadURL = "http://echo-webhook.herokuapp.com:80/Z7RXoCBdLSFMDrpn?";
-    	final String updateURL = "http://localhost";
-
-        Long hookId = this.hookHelper.createHook(payloadURL).longValue();
-        Assert.assertNotNull(hookId);
-        this.hookHelper.verifyHookCreatedOnServer(hookId);
-    	System.out.println("---------------------SUCCESSFULLY CREATED AND VERIFIED HOOK-------------------------"+hookId);
-    	this.hookHelper.updateHook(updateURL, hookId);
-    	this.hookHelper.verifyUpdateHook(updateURL, hookId);
-    	System.out.println("---------------------SUCCESSFULLY UPDATED AND VERIFIED HOOK-------------------------"+hookId);
-    	this.hookHelper.deleteHook(hookId);
-    	this.hookHelper.verifyDeleteHook(hookId);
-    	System.out.println("---------------------SUCCESSFULLY DELETED AND VERIFIED HOOK-------------------------"+hookId);
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
deleted file mode 100644
index 1ef1a20..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.CommonConstants;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.junit.Before;
-import org.junit.Test;
-
-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;
-
-@SuppressWarnings("rawtypes")
-public class LoanApplicationApprovalTest {
-
-    private ResponseSpecification responseSpec;
-    private ResponseSpecification responseSpecForStatusCode403;
-    private ResponseSpecification responseSpecForStatusCode400;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-
-    @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();
-        this.responseSpecForStatusCode403 = new ResponseSpecBuilder().expectStatusCode(403).build();
-        this.responseSpecForStatusCode400 = new ResponseSpecBuilder().expectStatusCode(400).build();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-    }
-
-    /*
-     * Positive test case: Approved amount non zero is less than proposed amount
-     */
-    @Test
-    public void loanApplicationApprovedAmountLessThanProposedAmount() {
-
-        final String proposedAmount = "8000";
-        final String approvalAmount = "5000";
-        final String approveDate = "20 September 2012";
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2012");
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder().build(null));
-        final Integer loanID = applyForLoanApplication(clientID, loanProductID, proposedAmount);
-
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        final String expectedDisbursementDate = null;
-        List<HashMap> approveTranches = null;
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
-                loanID, approveTranches);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-
-    }
-
-    /*
-     * Negative test case: Approved amount non zero is greater than proposed
-     * amount
-     */
-    @Test
-    public void loanApplicationApprovedAmountGreaterThanProposedAmount() {
-
-        final String proposedAmount = "5000";
-        final String approvalAmount = "9000";
-        final String approveDate = "20 September 2011";
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2012");
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder().build(null));
-        final Integer loanID = applyForLoanApplication(clientID, loanProductID, proposedAmount);
-
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode403);
-
-        @SuppressWarnings("unchecked")
-        List<HashMap> error = (List<HashMap>) this.loanTransactionHelper.approveLoan(approveDate, approvalAmount, loanID,
-                CommonConstants.RESPONSE_ERROR);
-
-        assertEquals("error.msg.loan.approval.amount.can't.be.greater.than.loan.amount.demanded",
-                error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
-    }
-
-    public HashMap createTrancheDetail(final String date, final String amount) {
-        HashMap<String, Object> detail = new HashMap<>();
-        detail.put("expectedDisbursementDate", date);
-        detail.put("principal", amount);
-
-        return detail;
-    }
-
-    @Test
-    public void loanApplicationApprovalAndValidationForMultiDisburseLoans() {
-
-        List<HashMap> createTranches = new ArrayList<>();
-        createTranches.add(createTrancheDetail("1 March 2014", "1000"));
-        createTranches.add(createTrancheDetail("23 March 2014", "4000"));
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
-
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
-                .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
-                .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
-
-        this.trancheLoansApprovedAmountLesserThanProposedAmount(clientID, loanProductID, createTranches);
-        this.trancheLoansApprovalValidation(clientID, loanProductID, createTranches);
-
-    }
-
-    private void trancheLoansApprovedAmountLesserThanProposedAmount(Integer clientID, Integer loanProductID, List<HashMap> createTranches) {
-        final String proposedAmount = "5000";
-        final String approvalAmount = "2000";
-        final String approveDate = "1 March 2014";
-        final String expectedDisbursementDate = "1 March 2014";
-
-        List<HashMap> approveTranches = new ArrayList<>();
-        approveTranches.add(createTrancheDetail("1 March 2014", "1000"));
-        approveTranches.add(createTrancheDetail("23 March 2014", "1000"));
-
-        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
-
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
-                loanID, approveTranches);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
-
-    }
-
-    private void trancheLoansApprovalValidation(Integer clientID, Integer loanProductID, List<HashMap> createTranches) {
-        final String proposedAmount = "5000";
-        final String approvalAmount1 = "10000";
-        final String approvalAmount2 = "3000";
-        final String approvalAmount3 = "400";
-        final String approvalAmount4 = "200";
-
-        final String approveDate = "1 March 2014";
-        final String expectedDisbursementDate = "1 March 2014";
-
-        List<HashMap> approveTranche1 = new ArrayList<>();
-        approveTranche1.add(createTrancheDetail("1 March 2014", "5000"));
-        approveTranche1.add(createTrancheDetail("23 March 2014", "5000"));
-
-        List<HashMap> approveTranche2 = new ArrayList<>();
-        approveTranche2.add(createTrancheDetail("1 March 2014", "1000"));
-        approveTranche2.add(createTrancheDetail("23 March 2014", "1000"));
-        approveTranche2.add(createTrancheDetail("23 March 2014", "1000"));
-
-        List<HashMap> approveTranche3 = new ArrayList<>();
-        approveTranche3.add(createTrancheDetail("1 March 2014", "100"));
-        approveTranche3.add(createTrancheDetail("23 March 2014", "100"));
-        approveTranche3.add(createTrancheDetail("24 March 2014", "100"));
-        approveTranche3.add(createTrancheDetail("25 March 2014", "100"));
-
-        List<HashMap> approveTranche4 = new ArrayList<>();
-        approveTranche4.add(createTrancheDetail("1 March 2014", "100"));
-        approveTranche4.add(createTrancheDetail("23 March 2014", "100"));
-        approveTranche4.add(createTrancheDetail("24 March 2014", "100"));
-
-        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
-
-        HashMap<String, Object> loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode400);
-
-        /* Tranches with same expected disbursement date */
-        List<HashMap<String, Object>> error = this.loanTransactionHelper.approveLoanForTranches(approveDate, expectedDisbursementDate,
-                approvalAmount2, loanID, approveTranche2, CommonConstants.RESPONSE_ERROR);
-        assertEquals("validation.msg.loan.expectedDisbursementDate.disbursement.date.must.be.unique.for.tranches",
-                error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
-        /* Sum of tranches is greater than approved amount */
-        error = this.loanTransactionHelper.approveLoanForTranches(approveDate, expectedDisbursementDate, approvalAmount4, loanID,
-                approveTranche4, CommonConstants.RESPONSE_ERROR);
-        assertEquals("validation.msg.loan.principal.sum.of.multi.disburse.amounts.must.be.equal.to.or.lesser.than.approved.principal",
-                error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode403);
-
-        /* Sum of tranches exceeds the proposed amount */
-        error = this.loanTransactionHelper.approveLoanForTranches(approveDate, expectedDisbursementDate, approvalAmount1, loanID,
-                approveTranche1, CommonConstants.RESPONSE_ERROR);
-        assertEquals("error.msg.loan.approval.amount.can't.be.greater.than.loan.amount.demanded",
-                error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
-        /* No. of tranches exceeds the max tranche count at product level */
-        error = this.loanTransactionHelper.approveLoanForTranches(approveDate, expectedDisbursementDate, approvalAmount3, loanID,
-                approveTranche3, CommonConstants.RESPONSE_ERROR);
-        assertEquals("error.msg.disbursementData.exceeding.max.tranche.count", error.get(0)
-                .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
-        /* If tranches are not specified for a multi-disburse loan */
-        /**
-         * error =
-         * this.loanTransactionHelper.approveLoanForTranches(approveDate,
-         * expectedDisbursementDate, approvalAmount5, loanID, approveTranche5,
-         * CommonConstants.RESPONSE_ERROR);
-         * assertEquals("error.msg.disbursementData.required",
-         * error.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-         **/
-    }
-
-    private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, final String proposedAmount) {
-        final String loanApplication = new LoanApplicationTestBuilder().withPrincipal(proposedAmount).withLoanTermFrequency("5")
-                .withLoanTermFrequencyAsMonths().withNumberOfRepayments("5").withRepaymentEveryAfter("1")
-                .withRepaymentFrequencyTypeAsMonths().withInterestRatePerPeriod("2").withExpectedDisbursementDate("04 April 2012")
-                .withSubmittedOnDate("02 April 2012").build(clientID.toString(), loanProductID.toString(), null);
-        return this.loanTransactionHelper.getLoanId(loanApplication);
-    }
-
-    public Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
-            List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder()
-        //
-                .withPrincipal(principal)
-                //
-                .withLoanTermFrequency("5")
-                //
-                .withLoanTermFrequencyAsMonths()
-                //
-                .withNumberOfRepayments("5").withRepaymentEveryAfter("1").withRepaymentFrequencyTypeAsMonths() //
-                .withInterestRatePerPeriod("2") //
-                .withExpectedDisbursementDate("1 March 2014") //
-                .withTranches(tranches) //
-                .withInterestTypeAsDecliningBalance() //
-                .withSubmittedOnDate("1 March 2014") //
-                .build(clientID.toString(), loanProductID.toString(), null);
-
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
deleted file mode 100644
index 672972e..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import java.math.BigDecimal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.fineract.integrationtests.LoanApplicationApprovalTest;
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-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;
-
-@SuppressWarnings("rawtypes")
-public class LoanApplicationUndoLastTrancheTest {
-
-    private ResponseSpecification responseSpec;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-    private LoanApplicationApprovalTest loanApplicationApprovalTest;
-
-    @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();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-        this.loanApplicationApprovalTest = new LoanApplicationApprovalTest();
-    }
-
-    @Test
-    public void LoanApplicationUndoLastTranche() {
-
-        final String proposedAmount = "5000";
-        final String approvalAmount = "2000";
-        final String approveDate = "1 March 2014";
-        final String expectedDisbursementDate = "1 March 2014";
-        final String disbursalDate = "1 March 2014";
-
-        // CREATE CLIENT
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
-
-        // CREATE LOAN MULTIDISBURSAL PRODUCT
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
-                .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
-                .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
-
-        // CREATE TRANCHES
-        List<HashMap> createTranches = new ArrayList<>();
-        createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("1 March 2014", "1000"));
-        createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("23 June 2014", "4000"));
-
-        // APPROVE TRANCHES
-        List<HashMap> approveTranches = new ArrayList<>();
-        approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("1 March 2014", "1000"));
-        approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("23 June 2014", "1000"));
-
-        // APPLY FOR LOAN WITH TRANCHES
-        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-
-        // VALIDATE THE LOAN STATUS
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
-                loanID, approveTranches);
-
-        // VALIDATE THE LOAN IS APPROVED
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-
-        // DISBURSE A LOAN
-        this.loanTransactionHelper.disburseLoan(disbursalDate, loanID);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-
-        // VALIDATE THE LOAN IS ACTIVE STATUS
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-
-        System.out.println("-------------Make repayment 1-----------");
-        this.loanTransactionHelper.makeRepayment("01 April 2014", Float.valueOf("420"), loanID);
-        System.out.println("-------------Make repayment 2-----------");
-        this.loanTransactionHelper.makeRepayment("01 May 2014", Float.valueOf("412"), loanID);
-        System.out.println("-------------Make repayment 3-----------");
-        this.loanTransactionHelper.makeRepayment("01 June 2014", Float.valueOf("204"), loanID);
-        // DISBURSE A SECOND TRANCHE
-        this.loanTransactionHelper.disburseLoan("23 June 2014", loanID);
-        // UNDO LAST TRANCHE
-        Float disbursedAmount = this.loanTransactionHelper.undoLastDisbursal(loanID);
-        validateDisbursedAmount(disbursedAmount);
-    }
-
-    private void validateDisbursedAmount(Float disbursedAmount) {
-        Assert.assertEquals(Float.valueOf("1000.0"), disbursedAmount);
-
-    }
-
-    public Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
-            List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder()
-        //
-                .withPrincipal(principal)
-                //
-                .withLoanTermFrequency("5")
-                //
-                .withLoanTermFrequencyAsMonths()
-                //
-                .withNumberOfRepayments("5").withRepaymentEveryAfter("1").withRepaymentFrequencyTypeAsMonths() //
-                .withInterestRatePerPeriod("2") //
-                .withExpectedDisbursementDate("1 March 2014") //
-                .withTranches(tranches) //
-                .withInterestTypeAsDecliningBalance() //
-                .withSubmittedOnDate("1 March 2014") //
-                .build(clientID.toString(), loanProductID.toString(), null);
-
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
deleted file mode 100644
index cecac3d..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-
-import java.math.BigDecimal;
-import java.math.MathContext;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanDisbursementTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.junit.Before;
-import org.junit.Test;
-
-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;
-
-@SuppressWarnings({ "rawtypes", "unchecked" })
-public class LoanDisbursementDetailsIntegrationTest {
-
-    private ResponseSpecification responseSpec;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-    private Integer loanID;
-    private Integer disbursementId;
-    final String approveDate = "01 March 2014";
-    final String expectedDisbursementDate = "01 March 2014";
-    final String proposedAmount = "5000";
-    final String approvalAmount = "5000";
-
-    @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();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-    }
-
-    @Test
-    public void createAndValidateMultiDisburseLoansBasedOnEmi() {
-        List<HashMap> createTranches = new ArrayList<>();
-        String id = null;
-        String installmentAmount = "800";
-        String withoutInstallmentAmount = "";
-        String proposedAmount = "10000";
-        createTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "01 June 2015", "5000"));
-        createTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "01 Sep 2015", "5000"));
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
-
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
-                .withInterestTypeAsDecliningBalance().withMoratorium("", "").withAmortizationTypeAsEqualInstallments().withTranches(true)
-                .withInterestCalculationPeriodTypeAsRepaymentPeriod(true).build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
-
-        final Integer loanIDWithEmi = applyForLoanApplicationWithEmiAmount(clientID, loanProductID, proposedAmount, createTranches,
-                installmentAmount);
-
-        System.out
-                .println("-----------------------------------LOAN CREATED WITH EMI LOANID-------------------------------------------------"
-                        + loanIDWithEmi);
-
-        HashMap repaymentScheduleWithEmi = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
-                loanIDWithEmi, "repaymentSchedule");
-
-        ArrayList<HashMap> periods = (ArrayList<HashMap>) repaymentScheduleWithEmi.get("periods");
-        assertEquals(periods.size(), 15);
-
-        this.validateRepaymentScheduleWithEMI(periods);
-
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanIDWithEmi);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount("01 June 2015", "01 June 2015", "10000", loanIDWithEmi,
-                createTranches);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN WITH EMI APPROVED SUCCESSFULLY---------------------------------------");
-
-        final Integer loanIDWithoutEmi = applyForLoanApplicationWithEmiAmount(clientID, loanProductID, proposedAmount, createTranches,
-                withoutInstallmentAmount);
-
-        HashMap repaymentScheduleWithoutEmi = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
-                loanIDWithoutEmi, "repaymentSchedule");
-
-        ArrayList<HashMap> periods1 = (ArrayList<HashMap>) repaymentScheduleWithEmi.get("periods");
-        assertEquals(periods1.size(), 15);
-
-        System.out
-                .println("-----------------------------------LOAN CREATED WITHOUT EMI LOANID-------------------------------------------------"
-                        + loanIDWithoutEmi);
-
-        /* To be uncommented once issue MIFOSX-2006 is closed. */
-        // this.validateRepaymentScheduleWithoutEMI(periods1);
-
-        HashMap loanStatusMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanIDWithoutEmi);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount("01 June 2015", "01 June 2015", "10000",
-                loanIDWithoutEmi, createTranches);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN WITHOUT EMI APPROVED SUCCESSFULLY---------------------------------------");
-
-    }
-
-    private void validateRepaymentScheduleWithEMI(ArrayList<HashMap> periods) {
-        LoanDisbursementTestBuilder expectedRepaymentSchedule0 = new LoanDisbursementTestBuilder("[2015, 6, 1]", 0.0f, 0.0f, null, null,
-                5000.0f, null, null, null);
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule1 = new LoanDisbursementTestBuilder("[2015, 7, 1]", 800f, 800.0f, 50.0f,
-                750.0f, 4250.0f, 750.0f, 750.0f, "[2015, 6, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule2 = new LoanDisbursementTestBuilder("[2015, 8, 1]", 800.0f, 800.0f, 42.5f,
-                757.5f, 3492.5f, 757.5f, 757.5f, "[2015, 7, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule3 = new LoanDisbursementTestBuilder("[2015, 9, 1]", 0.0f, 0.0f, null, null,
-                5000.0f, null, null, null);
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule4 = new LoanDisbursementTestBuilder("[2015, 9, 1]", 800.0f, 800.0f, 34.92f,
-                765.08f, 7727.42f, 765.08f, 765.08f, "[2015, 8, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule5 = new LoanDisbursementTestBuilder("[2015, 10, 1]", 800.0f, 800.0f, 77.27f,
-                722.73f, 7004.69f, 722.73f, 722.73f, "[2015, 9, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule6 = new LoanDisbursementTestBuilder("[2015, 11, 1]", 800.0f, 800.0f, 70.05f,
-                729.95f, 6274.74f, 729.95f, 729.95f, "[2015, 10, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule7 = new LoanDisbursementTestBuilder("[2015, 12, 1]", 800.0f, 800.0f, 62.75f,
-                737.25f, 5537.49f, 737.25f, 737.25f, "[2015, 11, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule8 = new LoanDisbursementTestBuilder("[2016, 1, 1]", 800.0f, 800.0f, 55.37f,
-                744.63f, 4792.86f, 744.63f, 744.63f, "[2015, 12, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule9 = new LoanDisbursementTestBuilder("[2016, 2, 1]", 800.0f, 800.0f, 47.93f,
-                752.07f, 4040.79f, 752.07f, 752.07f, "[2016, 1, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule10 = new LoanDisbursementTestBuilder("[2016, 3, 1]", 800.0f, 800.0f, 40.41f,
-                759.59f, 3281.2f, 759.59f, 759.59f, "[2016, 2, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule11 = new LoanDisbursementTestBuilder("[2016, 4, 1]", 800.0f, 800.0f, 32.81f,
-                767.19f, 2514.01f, 767.19f, 767.19f, "[2016, 3, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule12 = new LoanDisbursementTestBuilder("[2016, 5, 1]", 800.0f, 800.0f, 25.14f,
-                774.86f, 1739.15f, 774.86f, 774.86f, "[2016, 4, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule13 = new LoanDisbursementTestBuilder("[2016, 6, 1]", 800.0f, 800.0f, 17.39f,
-                782.61f, 956.54f, 782.61f, 782.61f, "[2016, 5, 1]");
-
-        LoanDisbursementTestBuilder expectedRepaymentSchedule14 = new LoanDisbursementTestBuilder("[2016, 7, 1]", 966.11f, 966.11f, 9.57f,
-                956.54f, 0.0f, 956.54f, 956.54f, "[2016, 6, 1]");
-
-        ArrayList<LoanDisbursementTestBuilder> list = new ArrayList<LoanDisbursementTestBuilder>();
-        list.add(expectedRepaymentSchedule0);
-        list.add(expectedRepaymentSchedule1);
-        list.add(expectedRepaymentSchedule2);
-        list.add(expectedRepaymentSchedule3);
-        list.add(expectedRepaymentSchedule4);
-        list.add(expectedRepaymentSchedule5);
-        list.add(expectedRepaymentSchedule6);
-        list.add(expectedRepaymentSchedule7);
-        list.add(expectedRepaymentSchedule8);
-        list.add(expectedRepaymentSchedule9);
-        list.add(expectedRepaymentSchedule10);
-        list.add(expectedRepaymentSchedule11);
-        list.add(expectedRepaymentSchedule12);
-        list.add(expectedRepaymentSchedule13);
-        list.add(expectedRepaymentSchedule14);
-
-        for (int i = 0; i < list.size(); i++) {
-            this.assertRepaymentScheduleValuesWithEMI(periods.get(i), list.get(i), i);
-        }
-    }
-
-    private void assertRepaymentScheduleValuesWithEMI(HashMap period, LoanDisbursementTestBuilder expectedRepaymentSchedule, int position) {
-
-        assertEquals(period.get("dueDate").toString(), expectedRepaymentSchedule.getDueDate());
-        assertEquals(period.get("principalLoanBalanceOutstanding"), expectedRepaymentSchedule.getPrincipalLoanBalanceOutstanding());
-        System.out.println(period.get("totalOriginalDueForPeriod").toString());
-        assertEquals(new Float(period.get("totalOriginalDueForPeriod").toString()), expectedRepaymentSchedule
-                .getTotalOriginalDueForPeriod().floatValue(), 0.0f);
-
-        assertEquals(new Float(period.get("totalOutstandingForPeriod").toString()).floatValue(),
-                expectedRepaymentSchedule.getTotalOutstandingForPeriod(), 0.0f);
-
-        if (position != 0 && position != 3) {
-
-            assertEquals(new Float(period.get("interestOutstanding").toString()).floatValue(),
-                    expectedRepaymentSchedule.getInterestOutstanding(), 0.0f);
-            assertEquals(new Float(period.get("principalOutstanding").toString()).floatValue(),
-                    expectedRepaymentSchedule.getPrincipalOutstanding(), 0.0f);
-            assertEquals(new Float(period.get("principalDue").toString()).floatValue(), expectedRepaymentSchedule.getPrincipalDue(), 0.0f);
-            assertEquals(new Float(period.get("principalOriginalDue").toString()).floatValue(),
-                    expectedRepaymentSchedule.getPrincipalOriginalDue(), 0.0f);
-            assertEquals(period.get("fromDate").toString(), expectedRepaymentSchedule.getFromDate());
-        }
-    }
-
-    /* Uncomment and modify test builder values once MIFOSX-2006 is closed. */
-    /*
-     * private void validateRepaymentScheduleWithoutEMI(ArrayList<HashMap>
-     * periods){ LoanDisbursementTestBuilder expectedRepaymentSchedule0 = new
-     * LoanDisbursementTestBuilder( "[2015, 6, 1]", 0.0f, 0.0f, null, null,
-     * 5000.0f, null, null, null);
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule1 = new
-     * LoanDisbursementTestBuilder( "[2015, 7, 1]", 800.0f, 800.0f, 50.0f,
-     * 750.0f, 4250.0f, 750.0f, 750.0f, "[2015, 6, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule2 = new
-     * LoanDisbursementTestBuilder( "[2015, 8, 1]", 800.0f, 800.0f, 42.5f,
-     * 757.5f, 3492.5f, 757.5f, 757.5f, "[2015, 7, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule3 = new
-     * LoanDisbursementTestBuilder( "[2015, 9, 1]", 0.0f, 0.0f, null, null,
-     * 5000.0f, null, null, null);
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule4 = new
-     * LoanDisbursementTestBuilder( "[2015, 9, 1]", 800.0f, 800.0f, 34.92f,
-     * 765.08f, 7727.42f, 765.08f, 765.08f, "[2015, 8, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule5 = new
-     * LoanDisbursementTestBuilder( "[2015, 10, 1]", 800.0f, 800.0f, 77.27f,
-     * 722.73f, 7004.69f, 722.73f, 722.73f, "[2015, 9, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule6 = new
-     * LoanDisbursementTestBuilder( "[2015, 11, 1]", 800.0f, 800.0f, 70.05f,
-     * 729.95f, 6274.74f, 729.95f, 729.95f, "[2015, 10, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule7 = new
-     * LoanDisbursementTestBuilder( "[2015, 12, 1]", 800.0f, 800.0f, 62.75f,
-     * 737.25f, 5537.49f, 737.25f, 737.25f, "[2015, 11, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule8 = new
-     * LoanDisbursementTestBuilder( "[2016, 1, 1]", 800.0f, 800.0f, 55.37f,
-     * 744.63f, 4792.86f, 744.63f, 744.63f, "[2015, 12, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule9 = new
-     * LoanDisbursementTestBuilder( "[2016, 2, 1]", 800.0f, 800.0f, 47.93f,
-     * 752.07f, 4040.79f, 752.07f, 752.07f, "[2016, 1, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule10 = new
-     * LoanDisbursementTestBuilder( "[2016, 3, 1]", 800.0f, 800.0f, 40.41f,
-     * 759.59f, 3281.2f, 759.59f, 759.59f, "[2016, 2, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule11 = new
-     * LoanDisbursementTestBuilder( "[2016, 4, 1]", 800.0f, 800.0f, 32.81f,
-     * 767.19f, 2514.01f, 767.19f, 767.19f, "[2016, 3, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule12 = new
-     * LoanDisbursementTestBuilder( "[2016, 5, 1]", 800.0f, 800.0f, 25.14f,
-     * 774.86f, 1739.15f, 774.86f, 774.86f, "[2016, 4, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule13 = new
-     * LoanDisbursementTestBuilder( "[2016, 6, 1]", 800.0f, 800.0f, 17.39f,
-     * 782.61f, 956.54f, 782.61f, 782.61f, "[2016, 5, 1]");
-     * 
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule14 = new
-     * LoanDisbursementTestBuilder( "[2016, 7, 1]", 966.11f, 966.11f, 9.57f,
-     * 956.54f, 0.0f, 956.54f, 956.54f, "[2016, 6, 1]");
-     * 
-     * ArrayList<LoanDisbursementTestBuilder> list = new
-     * ArrayList<LoanDisbursementTestBuilder>();
-     * list.add(expectedRepaymentSchedule0);
-     * list.add(expectedRepaymentSchedule1);
-     * list.add(expectedRepaymentSchedule2);
-     * list.add(expectedRepaymentSchedule3);
-     * list.add(expectedRepaymentSchedule4);
-     * list.add(expectedRepaymentSchedule5);
-     * list.add(expectedRepaymentSchedule6);
-     * list.add(expectedRepaymentSchedule7);
-     * list.add(expectedRepaymentSchedule8);
-     * list.add(expectedRepaymentSchedule9);
-     * list.add(expectedRepaymentSchedule10);
-     * list.add(expectedRepaymentSchedule11);
-     * list.add(expectedRepaymentSchedule12);
-     * list.add(expectedRepaymentSchedule13);
-     * list.add(expectedRepaymentSchedule14);
-     * 
-     * for (int i = 0; i < list.size(); i++) {
-     * this.assertRepaymentScheduleValuesWithoutEMI(periods.get(i), list.get(i),
-     * i); } }
-     * 
-     * private void assertRepaymentScheduleValuesWithoutEMI(HashMap period,
-     * LoanDisbursementTestBuilder expectedRepaymentSchedule, int position) {
-     * 
-     * assertEquals(period.get("dueDate").toString(),
-     * expectedRepaymentSchedule.getDueDate());
-     * assertEquals(period.get("principalLoanBalanceOutstanding"),
-     * expectedRepaymentSchedule.getPrincipalLoanBalanceOutstanding());
-     * assertEquals(period.get("totalOriginalDueForPeriod"),
-     * expectedRepaymentSchedule.getTotalOriginalDueForPeriod());
-     * assertEquals(period.get("totalOutstandingForPeriod"),
-     * expectedRepaymentSchedule.getTotalOutstandingForPeriod());
-     * 
-     * if (position != 0 && position != 3) {
-     * 
-     * assertEquals(period.get("interestOutstanding"),
-     * expectedRepaymentSchedule.getInterestOutstanding());
-     * assertEquals(period.get("principalOutstanding"),
-     * expectedRepaymentSchedule.getPrincipalOutstanding());
-     * assertEquals(period.get("principalDue"),
-     * expectedRepaymentSchedule.getPrincipalDue());
-     * assertEquals(period.get("principalOriginalDue"),
-     * expectedRepaymentSchedule.getPrincipalOriginalDue());
-     * assertEquals(period.get("fromDate").toString(),
-     * expectedRepaymentSchedule.getFromDate()); } }
-     */
-    private Integer applyForLoanApplicationWithEmiAmount(final Integer clientID, final Integer loanProductID, final String proposedAmount,
-            List<HashMap> tranches, final String installmentAmount) {
-
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder()
-        //
-                .withPrincipal(proposedAmount)
-                //
-                .withLoanTermFrequency("12")
-                //
-                .withLoanTermFrequencyAsMonths()
-                //
-                .withNumberOfRepayments("12").withRepaymentEveryAfter("1").withRepaymentFrequencyTypeAsMonths() //
-                .withInterestRatePerPeriod("1") //
-                .withExpectedDisbursementDate("01 June 2015") //
-                .withTranches(tranches) //
-                .withFixedEmiAmount(installmentAmount) //
-                .withInterestTypeAsDecliningBalance() //
-                .withSubmittedOnDate("01 June 2015") //
-                .withAmortizationTypeAsEqualInstallments() //
-                .build(clientID.toString(), loanProductID.toString(), null);
-
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-
-    }
-
-    @Test
-    public void createApproveAndValidateMultiDisburseLoan() {
-
-        List<HashMap> createTranches = new ArrayList<>();
-        String id = null;
-        createTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "01 March 2014", "1000"));
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
-
-        final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
-                .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
-                .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
-
-        this.loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
-
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
-                loanID, createTranches);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
-        ArrayList<HashMap> disbursementDetails = (ArrayList<HashMap>) this.loanTransactionHelper.getLoanDetail(this.requestSpec,
-                this.responseSpec, this.loanID, "disbursementDetails");
-        this.disbursementId = (Integer) disbursementDetails.get(0).get("id");
-        this.editLoanDisbursementDetails();
-    }
-
-    private void editLoanDisbursementDetails() {
-        this.editDateAndPrincipalOfExistingTranche();
-        this.addNewDisbursementDetails();
-        this.deleteDisbursmentDetails();
-    }
-
-    private void addNewDisbursementDetails() {
-        List<HashMap> addTranches = new ArrayList<>();
-        ArrayList<HashMap> disbursementDetails = (ArrayList<HashMap>) this.loanTransactionHelper.getLoanDetail(this.requestSpec,
-                this.responseSpec, this.loanID, "disbursementDetails");
-        ArrayList expectedDisbursementDate = (ArrayList) disbursementDetails.get(0).get("expectedDisbursementDate");
-        String date = formatExpectedDisbursementDate(expectedDisbursementDate.toString());
-
-        String id = null;
-        addTranches.add(this.loanTransactionHelper.createTrancheDetail(disbursementDetails.get(0).get("id").toString(), date,
-                disbursementDetails.get(0).get("principal").toString()));
-        addTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "3 March 2014", "2000"));
-        addTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "4 March 2014", "500"));
-
-        /* Add disbursement detail */
-        this.loanTransactionHelper.addAndDeleteDisbursementDetail(this.loanID, this.approvalAmount, this.expectedDisbursementDate,
-                addTranches, "");
-    }
-
-    private void deleteDisbursmentDetails() {
-        List<HashMap> deleteTranches = new ArrayList<>();
-        ArrayList<HashMap> disbursementDetails = (ArrayList<HashMap>) this.loanTransactionHelper.getLoanDetail(this.requestSpec,
-                this.responseSpec, this.loanID, "disbursementDetails");
-        /* Delete the last tranche */
-        for (int i = 0; i < disbursementDetails.size() - 1; i++) {
-            ArrayList expectedDisbursementDate = (ArrayList) disbursementDetails.get(i).get("expectedDisbursementDate");
-            String disbursementDate = formatExpectedDisbursementDate(expectedDisbursementDate.toString());
-            deleteTranches.add(this.loanTransactionHelper.createTrancheDetail(disbursementDetails.get(i).get("id").toString(),
-                    disbursementDate, disbursementDetails.get(i).get("principal").toString()));
-        }
-
-        /* Add disbursement detail */
-        this.loanTransactionHelper.addAndDeleteDisbursementDetail(this.loanID, this.approvalAmount, this.expectedDisbursementDate,
-                deleteTranches, "");
-    }
-
-    private void editDateAndPrincipalOfExistingTranche() {
-        String updatedExpectedDisbursementDate = "01 March 2014";
-        String updatedPrincipal = "900";
-        /* Update */
-        this.loanTransactionHelper.editDisbursementDetail(this.loanID, this.disbursementId, this.approvalAmount,
-                this.expectedDisbursementDate, updatedExpectedDisbursementDate, updatedPrincipal, "");
-        /* Validate Edit */
-        ArrayList<HashMap> disbursementDetails = (ArrayList<HashMap>) this.loanTransactionHelper.getLoanDetail(this.requestSpec,
-                this.responseSpec, this.loanID, "disbursementDetails");
-        assertEquals(Float.valueOf(updatedPrincipal), disbursementDetails.get(0).get("principal"));
-        ArrayList expectedDisbursementDate = (ArrayList) disbursementDetails.get(0).get("expectedDisbursementDate");
-        String date = formatExpectedDisbursementDate(expectedDisbursementDate.toString());
-        assertEquals(updatedExpectedDisbursementDate, date);
-
-    }
-
-    private String formatExpectedDisbursementDate(String expectedDisbursementDate) {
-
-        SimpleDateFormat source = new SimpleDateFormat("[yyyy, MM, dd]");
-        SimpleDateFormat target = new SimpleDateFormat("dd MMMM yyyy");
-        String date = null;
-        try {
-            date = target.format(source.parse(expectedDisbursementDate));
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-        return date;
-    }
-
-    private Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
-            List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder()
-        //
-                .withPrincipal(principal)
-                //
-                .withLoanTermFrequency("5")
-                //
-                .withLoanTermFrequencyAsMonths()
-                //
-                .withNumberOfRepayments("5").withRepaymentEveryAfter("1").withRepaymentFrequencyTypeAsMonths() //
-                .withInterestRatePerPeriod("2") //
-                .withExpectedDisbursementDate("01 March 2014") //
-                .withTranches(tranches) //
-                .withInterestTypeAsDecliningBalance() //
-                .withSubmittedOnDate("01 March 2014") //
-                .build(clientID.toString(), loanProductID.toString(), null);
-
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
deleted file mode 100644
index d0018cd..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.accounting.Account;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.junit.Before;
-import org.junit.Test;
-
-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;
-
-@SuppressWarnings("rawtypes")
-public class LoanRepaymentRescheduleAtDisbursementTest {
-
-	private ResponseSpecification responseSpec;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-    private LoanApplicationApprovalTest loanApplicationApprovalTest;
-    private ResponseSpecification generalResponseSpec;
-    
-    @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();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-        this.loanApplicationApprovalTest = new LoanApplicationApprovalTest();
-        this.generalResponseSpec = new ResponseSpecBuilder().build();
-    }
-    
-	@SuppressWarnings("unchecked")
-	@Test
-    public void testLoanRepaymentRescheduleAtDisbursement(){
-    	
-        final String approvalAmount = "10000";
-        final String approveDate = "01 March 2015";
-        final String expectedDisbursementDate = "01 March 2015";
-        final String disbursementDate = "01 March 2015";
-        final String adjustRepaymentDate = "16 March 2015";
-        final String recalculationRestFrequencyDate = "01 January 2012";
-         
-        // CREATE CLIENT
-    	final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
-
-        // CREATE LOAN MULTIDISBURSAL PRODUCT WITH INTEREST RECALCULATION 
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.RBI_INDIA_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
-                LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "0", recalculationRestFrequencyDate,
-                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null);
-        
-        // CREATE TRANCHES
-        List<HashMap> createTranches = new ArrayList<>();
-        createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 March 2015", "5000"));
-        createTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 May 2015", "5000"));
-    	
-        // APPROVE TRANCHES
-        List<HashMap> approveTranches = new ArrayList<>();
-        approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 March 2015", "5000"));
-        approveTranches.add(this.loanApplicationApprovalTest.createTrancheDetail("01 May 2015", "5000"));
-        
-        // APPLY FOR TRANCHE LOAN WITH INTEREST RECALCULATION 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate,
-        		recalculationRestFrequencyDate, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList<HashMap>(0), createTranches);
-        
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        
-        // VALIDATE THE LOAN STATUS
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
-        loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
-                loanID, approveTranches);
-        
-        // VALIDATE THE LOAN IS APPROVED
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        
-        // DISBURSE A FIRST TRANCHE
-        this.loanTransactionHelper.disburseLoanWithRepaymentReschedule(disbursementDate, loanID, adjustRepaymentDate);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        
-        ArrayList<HashMap> loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec, generalResponseSpec, loanID);
-        HashMap firstInstallement  = loanRepaymnetSchedule.get(1);
-        Map<String, Object> expectedvalues = new HashMap<>(3);
-        Calendar date = Calendar.getInstance(Utils.getTimeZoneOfTenant());
-        date.set(2015, Calendar.MARCH, 16);
-        expectedvalues.put("dueDate", getDateAsArray(date, 0));
-        expectedvalues.put("principalDue", "834.71");
-        expectedvalues.put("interestDue", "49.32");
-        expectedvalues.put("feeChargesDue", "0");
-        expectedvalues.put("penaltyChargesDue", "0");
-        expectedvalues.put("totalDueForPeriod", "884.03");
-        
-        // VALIDATE REPAYMENT SCHEDULE
-        verifyLoanRepaymentSchedule(firstInstallement, expectedvalues);
-        
-    }
-	
-	private void verifyLoanRepaymentSchedule(final HashMap firstInstallement, final Map<String, Object> expectedvalues) {
-       
-		assertEquals(expectedvalues.get("dueDate"), firstInstallement.get("dueDate"));
-		assertEquals(String.valueOf(expectedvalues.get("principalDue")), String.valueOf(firstInstallement.get("principalDue")));
-		assertEquals(String.valueOf(expectedvalues.get("interestDue")), String.valueOf(firstInstallement.get("interestDue")));
-		assertEquals(String.valueOf(expectedvalues.get("feeChargesDue")), String.valueOf(firstInstallement.get("feeChargesDue")));
-		assertEquals(String.valueOf(expectedvalues.get("penaltyChargesDue")), String.valueOf(firstInstallement.get("penaltyChargesDue")));
-		assertEquals(String.valueOf(expectedvalues.get("totalDueForPeriod")), String.valueOf(firstInstallement.get("totalDueForPeriod")));
-
-    }
-    
-    private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy,
-            final String interestRecalculationCompoundingMethod, final String rescheduleStrategyMethod,
-            final String recalculationRestFrequencyType, final String recalculationRestFrequencyInterval,
-            final String recalculationRestFrequencyDate, final String preCloseInterestCalculationStrategy, final Account[] accounts) {
-        final String recalculationCompoundingFrequencyType = null;
-        final String recalculationCompoundingFrequencyInterval = null;
-        final String recalculationCompoundingFrequencyDate = null;
-        return createLoanProductWithInterestRecalculation(repaymentStrategy, interestRecalculationCompoundingMethod,
-                rescheduleStrategyMethod, recalculationRestFrequencyType, recalculationRestFrequencyInterval,
-                recalculationRestFrequencyDate, recalculationCompoundingFrequencyType, recalculationCompoundingFrequencyInterval,
-                recalculationCompoundingFrequencyDate, preCloseInterestCalculationStrategy, accounts, null, false);
-    }
-    
-    private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy,
-            final String interestRecalculationCompoundingMethod, final String rescheduleStrategyMethod,
-            final String recalculationRestFrequencyType, final String recalculationRestFrequencyInterval,
-            final String recalculationRestFrequencyDate, final String recalculationCompoundingFrequencyType,
-            final String recalculationCompoundingFrequencyInterval, final String recalculationCompoundingFrequencyDate,
-            final String preCloseInterestCalculationStrategy, final Account[] accounts, final String chargeId,
-            boolean isArrearsBasedOnOriginalSchedule) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
-        LoanProductTestBuilder builder = new LoanProductTestBuilder()
-                .withPrincipal("10000.00")
-                .withNumberOfRepayments("12")
-                .withRepaymentAfterEvery("2")
-                .withRepaymentTypeAsWeek()
-                .withinterestRatePerPeriod("2")
-                .withInterestRateFrequencyTypeAsMonths()
-                .withTranches(true)
-                .withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
-                .withRepaymentStrategy(repaymentStrategy)
-                .withInterestTypeAsDecliningBalance()
-                .withInterestRecalculationDetails(interestRecalculationCompoundingMethod, rescheduleStrategyMethod,
-                        preCloseInterestCalculationStrategy)
-                .withInterestRecalculationRestFrequencyDetails(recalculationRestFrequencyType, recalculationRestFrequencyInterval,
-                        recalculationRestFrequencyDate)
-                .withInterestRecalculationCompoundingFrequencyDetails(recalculationCompoundingFrequencyType,
-                        recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate);
-        if (accounts != null) {
-            builder = builder.withAccountingRulePeriodicAccrual(accounts);
-        }
-
-        if (isArrearsBasedOnOriginalSchedule) builder = builder.withArrearsConfiguration();
-
-        final String loanProductJSON = builder.build(chargeId);
-        return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-    }
-    
-    private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
-            final String disbursementDate, final String restStartDate, final String repaymentStrategy, final List<HashMap> charges, List<HashMap> tranches) {
-        final String graceOnInterestPayment = null;
-        final String compoundingStartDate = null;
-        final String graceOnPrincipalPayment = null;
-        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, restStartDate,
-                compoundingStartDate, repaymentStrategy, charges, graceOnInterestPayment, graceOnPrincipalPayment,tranches);
-    }
-    
-    private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
-            final String disbursementDate, final String restStartDate, final String compoundingStartDate, final String repaymentStrategy,
-            final List<HashMap> charges, final String graceOnInterestPayment, final String graceOnPrincipalPayment, List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder() //
-                .withPrincipal("10000.00") //
-                .withLoanTermFrequency("24") //
-                .withLoanTermFrequencyAsWeeks() //
-                .withNumberOfRepayments("12") //
-                .withRepaymentEveryAfter("2") //
-                .withRepaymentFrequencyTypeAsWeeks() //
-                .withInterestRatePerPeriod("2") //
-                .withAmortizationTypeAsEqualInstallments() //
-                .withTranches(tranches)
-                .withFixedEmiAmount("") //
-                .withInterestTypeAsDecliningBalance() //
-                .withInterestCalculationPeriodTypeAsDays() //
-                .withInterestCalculationPeriodTypeAsDays() //
-                .withExpectedDisbursementDate(disbursementDate) //
-                .withSubmittedOnDate(disbursementDate) //
-                .withRestFrequencyDate(restStartDate)//
-                .withwithRepaymentStrategy(repaymentStrategy) //
-                .withCharges(charges)//
-                .build(clientID.toString(), loanProductID.toString(), null);
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    }
-    
-    private List getDateAsArray(Calendar date, int addPeriod) {
-        return getDateAsArray(date, addPeriod, Calendar.DAY_OF_MONTH);
-    }
-
-    private List getDateAsArray(Calendar date, int addvalue, int type) {
-    	date.add(type, addvalue);
-        return new ArrayList<>(Arrays.asList(date.get(Calendar.YEAR), date.get(Calendar.MONTH) + 1,
-        		date.get(Calendar.DAY_OF_MONTH)));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/66cee785/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
----------------------------------------------------------------------
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
deleted file mode 100644
index 2b00a98..0000000
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.HashMap;
-
-import org.apache.fineract.integrationtests.common.ClientHelper;
-import org.apache.fineract.integrationtests.common.LoanRescheduleRequestHelper;
-import org.apache.fineract.integrationtests.common.Utils;
-import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanRescheduleRequestTestBuilder;
-import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
-import org.junit.Before;
-import org.junit.Test;
-
-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;
-
-/** 
- * Test the creation, approval and rejection of a loan reschedule request 
- **/
-@SuppressWarnings({ "rawtypes" })
-public class LoanRescheduleRequestTest {
-	private ResponseSpecification responseSpec;
-	private ResponseSpecification generalResponseSpec;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-    private LoanRescheduleRequestHelper loanRescheduleRequestHelper;
-    private Integer clientId;
-    private Integer loanProductId;
-    private Integer loanId;
-    private Integer loanRescheduleRequestId;
-    private String loanPrincipalAmount = "100000.00";
-    private String numberOfRepayments = "12";
-    private String interestRatePerPeriod = "18";
-    private String dateString = "4 September 2014";
-    
-    @Before
-    public void initialize() {
-    	Utils.initializeRESTAssured();
-        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-        this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
-
-        this.generalResponseSpec = new ResponseSpecBuilder().build();
-        
-        // create all required entities
-        this.createRequiredEntities();
-    }
-    
-    /** 
-     * Creates the client, loan product, and loan entities 
-     **/
-    private void createRequiredEntities() {
-    	this.createClientEntity();
-    	this.createLoanProductEntity();
-    	this.createLoanEntity();
-    }
-    
-    /** 
-     * create a new client 
-     **/ 
-    private void createClientEntity() {
-    	this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-    	
-        ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, this.clientId);
-    }
-    
-    /** 
-     * create a new loan product 
-     **/
-    private void createLoanProductEntity() {
-    	System.out.println("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
-    	
-    	final String loanProductJSON = new LoanProductTestBuilder()
-    			.withPrincipal(loanPrincipalAmount)
-    			.withNumberOfRepayments(numberOfRepayments)
-    			.withinterestRatePerPeriod(interestRatePerPeriod)
-    			.withInterestRateFrequencyTypeAsYear()
-    			.build(null);
-    	
-    	this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-    	System.out.println("Successfully created loan product  (ID: " + this.loanProductId + ")");
-    }
-    
-    /** 
-     * submit a new loan application, approve and disburse the loan 
-     **/
-    private void createLoanEntity() {
-    	System.out.println("---------------------------------NEW LOAN APPLICATION------------------------------------------");
-    	
-    	final String loanApplicationJSON = new LoanApplicationTestBuilder()
-    			.withPrincipal(loanPrincipalAmount)
-    			.withLoanTermFrequency(numberOfRepayments)
-                .withLoanTermFrequencyAsMonths()
-                .withNumberOfRepayments(numberOfRepayments)
-                .withRepaymentEveryAfter("1")
-                .withRepaymentFrequencyTypeAsMonths()
-                .withAmortizationTypeAsEqualInstallments()
-                .withInterestCalculationPeriodTypeAsDays()
-                .withInterestRatePerPeriod(interestRatePerPeriod)
-                .withLoanTermFrequencyAsMonths()
-                .withSubmittedOnDate(dateString)
-                .withExpectedDisbursementDate(dateString)
-                .withPrincipalGrace("2")
-                .withInterestGrace("2")
-    			.build(this.clientId.toString(), this.loanProductId.toString(), null);
-    	
-    	this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    	
-    	System.out.println("Sucessfully created loan (ID: " + this.loanId + ")");
-    	
-    	this.approveLoanApplication();
-    	this.disburseLoan();
-    }
-    
-    /** 
-     * approve the loan application 
-     **/
-    private void approveLoanApplication() {
-    	
-    	if(this.loanId != null) {
-    		this.loanTransactionHelper.approveLoan(this.dateString, this.loanId);
-    		System.out.println("Successfully approved loan (ID: " + this.loanId + ")");
-    	}
-    }
-    
-    /** 
-     * disburse the newly created loan 
-     **/
-    private void disburseLoan() {
-    	
-    	if(this.loanId != null) {
-    		this.loanTransactionHelper.disburseLoan(this.dateString, this.loanId);
-    		System.out.println("Successfully disbursed loan (ID: " + this.loanId + ")");
-    	}
-    }
-    
-    /** 
-     * create new loan reschedule request 
-     **/
-    private void createLoanRescheduleRequest() {
-    	System.out.println("---------------------------------CREATING LOAN RESCHEDULE REQUEST------------------------------------------");
-    	
-    	final String requestJSON = new LoanRescheduleRequestTestBuilder().build(this.loanId.toString());
-    	
-    	this.loanRescheduleRequestId = this.loanRescheduleRequestHelper.createLoanRescheduleRequest(requestJSON);
-    	this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId);
-    	
-    	System.out.println("Successfully created loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
-    }
-    
-    @Test
-    public void testCreateLoanRescheduleRequest() {
-    	this.createLoanRescheduleRequest();
-    }
-    
-    @Test
-    public void testRejectLoanRescheduleRequest() {
-    	this.createLoanRescheduleRequest();
-    	
-    	System.out.println("-----------------------------REJECTING LOAN RESCHEDULE REQUEST--------------------------");
-    	
-    	final String requestJSON = new LoanRescheduleRequestTestBuilder().getRejectLoanRescheduleRequestJSON();
-    	this.loanRescheduleRequestHelper.rejectLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON);
-    	
-    	final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
-    	assertTrue((Boolean)response.get("rejected"));
-    	
-    	System.out.println("Successfully rejected loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
-    }
-    
-    @Test
-    public void testApproveLoanRescheduleRequest() {
-    	this.createLoanRescheduleRequest();
-    	
-    	System.out.println("-----------------------------APPROVING LOAN RESCHEDULE REQUEST--------------------------");
-    	
-    	final String requestJSON = new LoanRescheduleRequestTestBuilder().getApproveLoanRescheduleRequestJSON();
-    	this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON);
-    	
-    	final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
-    	assertTrue((Boolean)response.get("approved"));
-    	
-    	final Integer numberOfRepayments = (Integer) this.loanTransactionHelper.getLoanDetail(requestSpec, generalResponseSpec, loanId, "numberOfRepayments");
-    	final HashMap loanSummary = this.loanTransactionHelper.getLoanSummary(requestSpec, generalResponseSpec, loanId);
-    	final Float totalExpectedRepayment = (Float) loanSummary.get("totalExpectedRepayment");
-    	
-    	assertEquals("NUMBER OF REPAYMENTS SHOULD BE 16, NOT 12", "16", numberOfRepayments.toString());
-    	assertEquals("TOTAL EXPECTED REPAYMENT MUST BE EQUAL TO 118000.0", "118000.0", totalExpectedRepayment.toString());
-    	
-    	System.out.println("Successfully approved loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
-    }
-}