From ee71366032ef44ad31cb1e391ef97ca392f50bad Mon Sep 17 00:00:00 2001 From: Vishwas Babu A J Date: Wed, 8 Apr 2015 15:17:36 -0700 Subject: [PATCH] reduce number of server side calls in testLoanProductConfiguration --- .../ClientLoanIntegrationTest.java | 37 +++++-------------- .../integrationtests/common/Utils.java | 1 + .../common/loans/LoanTransactionHelper.java | 11 ++++++ 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java index 5b8ee4318..86c8b10eb 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientLoanIntegrationTest.java @@ -22,7 +22,6 @@ import org.joda.time.LocalDate; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.mifosplatform.infrastructure.core.service.DateUtils; import org.mifosplatform.integrationtests.common.ClientHelper; import org.mifosplatform.integrationtests.common.SchedulerJobHelper; import org.mifosplatform.integrationtests.common.Utils; @@ -45,6 +44,7 @@ import com.google.gson.JsonObject; 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; @@ -4824,32 +4824,15 @@ public class ClientLoanIntegrationTest { } private void validateIfValuesAreNotOverridden(Integer loanID, Integer loanProductID) { - assertEquals( - this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, "amortizationType"), - this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "amortizationType")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, "interestType"), - this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "interestType")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, - "transactionProcessingStrategyId"), this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, - "transactionProcessingStrategyId")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, - "interestCalculationPeriodType"), this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, - "interestCalculationPeriodType")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, - "repaymentFrequencyType"), this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, - "repaymentFrequencyType")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, - "graceOnPrincipalPayment"), this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, - "graceOnPrincipalPayment")); - assertEquals(this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, - "graceOnInterestPayment"), this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, - "graceOnInterestPayment")); - assertEquals( - this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, "inArrearsTolerance"), - this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "inArrearsTolerance")); - assertEquals( - this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec, loanProductID, "graceOnArrearsAgeing"), - this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "graceOnArrearsAgeing")); + String loanProductDetails = this.loanTransactionHelper.getLoanProductDetails(this.requestSpec, this.responseSpec, loanProductID); + String loanDetails = this.loanTransactionHelper.getLoanDetails(this.requestSpec, this.responseSpec, loanID); + List comparisonAttributes = Arrays.asList("amortizationType", "interestType", "transactionProcessingStrategyId", + "interestCalculationPeriodType", "repaymentFrequencyType", "graceOnPrincipalPayment", "graceOnInterestPayment", + "inArrearsTolerance", "graceOnArrearsAgeing"); + + for (String comparisonAttribute : comparisonAttributes) { + assertEquals(JsonPath.from(loanProductDetails).get(comparisonAttribute), JsonPath.from(loanDetails).get(comparisonAttribute)); + } } private JsonObject createLoanProductConfigurationDetail(JsonObject loanProductConfiguration, Boolean bool) { diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/Utils.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/Utils.java index d3d953d12..7671257f9 100644 --- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/Utils.java +++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/Utils.java @@ -68,6 +68,7 @@ public class Utils { public static T performServerGet(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final String getURL, final String jsonAttributeToGetBack) { final String json = given().spec(requestSpec).expect().spec(responseSpec).log().ifError().when().get(getURL).andReturn().asString(); + if (jsonAttributeToGetBack == null) { return (T) json; } return (T) from(json).get(jsonAttributeToGetBack); } 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 d2859cb28..431db2d3f 100755 --- 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 @@ -93,12 +93,23 @@ public class LoanTransactionHelper { return Utils.performServerGet(requestSpec, responseSpec, URL, param); } + public String getLoanDetails(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer loanID) { + final String URL = "/mifosng-provider/api/v1/loans/" + loanID + "?associations=all&" + Utils.TENANT_IDENTIFIER; + return Utils.performServerGet(requestSpec, responseSpec, URL, null); + } + public Object getLoanProductDetail(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer loanProductId, final String jsonAttributeToGetBack) { final String URL = "/mifosng-provider/api/v1/loanproducts/" + loanProductId + "?associations=all&" + Utils.TENANT_IDENTIFIER; return Utils.performServerGet(requestSpec, responseSpec, URL, jsonAttributeToGetBack); } + public String getLoanProductDetails(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, + final Integer loanProductId) { + final String URL = "/mifosng-provider/api/v1/loanproducts/" + loanProductId + "?associations=all&" + Utils.TENANT_IDENTIFIER; + return Utils.performServerGet(requestSpec, responseSpec, URL, null); + } + public ArrayList getLoanCharges(final Integer loanId) { final String GET_LOAN_CHARGES_URL = "/mifosng-provider/api/v1/loans/" + loanId + "/charges?" + Utils.TENANT_IDENTIFIER; return Utils.performServerGet(requestSpec, responseSpec, GET_LOAN_CHARGES_URL, "");