diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm
index ec491b809..a0dd71e7a 100644
--- a/api-docs/apiLive.htm
+++ b/api-docs/apiLive.htm
@@ -3567,7 +3567,7 @@ Request Body:
Mandatory Fields |
- rejectDate, rejectReasonId
+ | rejectionDate, rejectionReasonId
|
@@ -3579,8 +3579,8 @@ Request Body:
Content-Type: application/json
Request Body:
{
-"rejectDate":"28 November 2014",
-"rejectReasonId":16,
+"rejectionDate":"28 November 2014",
+"rejectionReasonId":16,
"locale":"en",
"dateFormat":"dd MMMM yyyy"
}
@@ -3605,7 +3605,7 @@ Request Body:
Mandatory Fields |
- withdrawDate, withdrawReasonId
+ | withdrawalDate, withdrawalReasonId
|
@@ -3616,8 +3616,8 @@ Request Body:
Content-Type: application/json
Request Body:
{
-"withdrawDate":"28 November 2014",
-"withdrawReasonId":17,
+"withdrawalDate":"28 November 2014",
+"withdrawalReasonId":17,
"locale":"en",
"dateFormat":"dd MMMM yyyy"
}
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountNumberPreferencesTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountNumberPreferencesTest.java
index 7eabdb40f..62eb3d050 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountNumberPreferencesTest.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/AccountNumberPreferencesTest.java
@@ -1,391 +1,511 @@
package org.mifosplatform.integrationtests;
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mifosplatform.integrationtests.common.ClientHelper;
-import org.mifosplatform.integrationtests.common.CommonConstants;
-import org.mifosplatform.integrationtests.common.Utils;
-import org.mifosplatform.integrationtests.common.loans.LoanApplicationTestBuilder;
-import org.mifosplatform.integrationtests.common.loans.LoanProductTestBuilder;
-import org.mifosplatform.integrationtests.common.loans.LoanTransactionHelper;
-import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper;
-import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper;
-import org.mifosplatform.integrationtests.common.system.AccountNumberPreferencesHelper;
-import org.mifosplatform.integrationtests.common.system.CodeHelper;
-
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;
+import java.util.ArrayList;
+import java.util.HashMap;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mifosplatform.integrationtests.common.ClientHelper;
+import org.mifosplatform.integrationtests.common.CommonConstants;
+import org.mifosplatform.integrationtests.common.loans.LoanApplicationTestBuilder;
+import org.mifosplatform.integrationtests.common.loans.LoanProductTestBuilder;
+import org.mifosplatform.integrationtests.common.loans.LoanTransactionHelper;
+import org.mifosplatform.integrationtests.common.savings.SavingsProductHelper;
+import org.mifosplatform.integrationtests.common.savings.SavingsAccountHelper;
+import org.mifosplatform.integrationtests.common.system.AccountNumberPreferencesHelper;
+import org.mifosplatform.integrationtests.common.system.CodeHelper;
+import org.mifosplatform.integrationtests.common.Utils;
+
public class AccountNumberPreferencesTest {
- private RequestSpecification requestSpec;
- private ResponseSpecification responseSpec;
- private ResponseSpecification responseValidationError;
- private ResponseSpecification responseNotFoundError;
- private ResponseSpecification responseForbiddenError;
- private Integer clientId;
- private Integer loanProductId;
- private Integer loanId;
- private Integer savingsProductId;
- private Integer savingsId;
- private final String loanPrincipalAmount = "100000.00";
- private final String numberOfRepayments = "12";
- private final String interestRatePerPeriod = "18";
- private final String dateString = "4 September 2014";
- private final String minBalanceForInterestCalculation = null;
- private final String minRequiredBalance = null;
- private final String enforceMinRequiredBalance = "false";
- private LoanTransactionHelper loanTransactionHelper;
- private SavingsAccountHelper savingsAccountHelper;
- private AccountNumberPreferencesHelper accountNumberPreferencesHelper;
- private Integer clientAccountNumberPreferenceId;
- private Integer loanAccountNumberPreferenceId;
- private Integer savingsAccountNumberPreferenceId;
- private final String MINIMUM_OPENING_BALANCE = "1000.0";
- private final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
- private Boolean isAccountPreferenceSetUp = false;
- private Integer clientTypeCodeId;
- private String clientCodeValueName;
- private Integer clientCodeValueId;
- private final String clientTypeName = "CLIENT_TYPE";
- private final String officeName = "OFFICE_NAME";
- private final String loanShortName = "LOAN_PRODUCT_SHORT_NAME";
- private final String savingsShortName = "SAVINGS_PRODUCT_SHORT_NAME";
-
- @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.responseValidationError = new ResponseSpecBuilder().expectStatusCode(400).build();
- this.responseNotFoundError = new ResponseSpecBuilder().expectStatusCode(404).build();
- this.responseForbiddenError = new ResponseSpecBuilder().expectStatusCode(403).build();
- this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
- this.accountNumberPreferencesHelper = new AccountNumberPreferencesHelper(this.requestSpec, this.responseSpec);
-
- }
-
- @Test
- public void testAccountNumberPreferences() {
-
- /* Create Loan and Savings Product */
- this.createLoanAndSavingsProduct();
-
- /* Ensure no account number preferences are present in the system */
- this.deleteAllAccountNumberPreferences();
-
- /*
- * Validate the default account number generation rules for clients,
- * loans and savings accounts.
- */
- this.validateDefaultAccountNumberGeneration();
-
- /* Create and Validate account number preferences */
- this.createAccountNumberPreference();
-
- /*
- * Validate account number preference rules apply to Clients,Loans and
- * Saving Accounts
- */
- this.validateAccountNumberGenerationWithPreferences();
-
- /* Validate account number preferences Updation */
- this.updateAccountNumberPreference();
-
- /*
- * Validate account number preference rules apply to Clients,Loans and
- * Saving Accounts after Updation
- */
- this.validateAccountNumberGenerationWithPreferences();
-
- /* Delete all account number preferences */
- this.deleteAllAccountNumberPreferences();
-
- }
-
- private void createLoanAndSavingsProduct() {
- this.createLoanProduct();
- this.createSavingsProduct();
- }
-
- private void deleteAllAccountNumberPreferences() {
- ArrayList> preferenceIds = this.accountNumberPreferencesHelper.getAllAccountNumberPreferences();
- /* Deletion of valid account preference ID */
- for (HashMap preferenceId : preferenceIds) {
- Integer id = (Integer) preferenceId.get("id");
- HashMap delResponse = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(id, this.responseSpec,
- "");
- System.out.println("Successfully deleted account number preference (ID: " + delResponse.get("resourceId") + ")");
- }
- /* Deletion of invalid account preference ID should fail */
- System.out
- .println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE WITH INVALID ID------------------------------------------");
-
- HashMap deletionError = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(10,
- this.responseNotFoundError, "");
- Assert.assertEquals("error.msg.resource.not.found", deletionError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
-
- private void validateDefaultAccountNumberGeneration() {
- this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
- }
-
- private void validateAccountNumberGenerationWithPreferences() {
- this.isAccountPreferenceSetUp = true;
- this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
- this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
- }
-
- private void createAccountNumberPreference() {
- this.clientAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createClientAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Client (ID: " + this.clientAccountNumberPreferenceId);
-
- this.loanAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createLoanAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Loan (ID: " + this.loanAccountNumberPreferenceId);
-
- this.savingsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createSavingsAccountNumberPreference(
- this.responseSpec, "resourceId");
- System.out.println("Successfully created account number preferences for Savings (ID: " + this.savingsAccountNumberPreferenceId);
-
- this.accountNumberPreferencesHelper.verifyCreationOfAccountNumberPreferences(this.clientAccountNumberPreferenceId,
- this.loanAccountNumberPreferenceId, this.savingsAccountNumberPreferenceId, this.responseSpec, this.requestSpec);
-
- this.createAccountNumberPreferenceInvalidData("1000", "1001");
- this.createAccountNumberPreferenceDuplicateData("1", "101");
-
- }
-
- private void createAccountNumberPreferenceDuplicateData(final String accountType, final String prefixType) {
- /* Creating account Preference with duplicate data should fail */
- System.out
- .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH DUPLICATE DATA------------------------------------------");
-
- HashMap creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
- this.responseForbiddenError, accountType, prefixType, "");
-
- Assert.assertEquals("error.msg.account.number.format.duplicate.account.type",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
- }
-
- private void createAccountNumberPreferenceInvalidData(final String accountType, final String prefixType) {
-
- /* Creating account Preference with invalid data should fail */
- System.out
- .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
-
- HashMap creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
- this.responseValidationError, accountType, prefixType, "");
-
- if (creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals(
- "validation.msg.accountNumberFormat.accountType.is.not.within.expected.range")) {
- Assert.assertEquals("validation.msg.accountNumberFormat.accountType.is.not.within.expected.range",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- } else if (creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals(
- "validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations")) {
- Assert.assertEquals("validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations",
- creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
- }
-
- private void updateAccountNumberPreference() {
- HashMap accountNumberPreferences = this.accountNumberPreferencesHelper.updateAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "101", this.responseSpec, "");
-
- System.out.println("--------------------------UPDATION SUCCESSFUL FOR ACCOUNT NUMBER PREFERENCE ID "
- + accountNumberPreferences.get("resourceId"));
-
- this.accountNumberPreferencesHelper.verifyUpdationOfAccountNumberPreferences((Integer) accountNumberPreferences.get("resourceId"),
- this.responseSpec, this.requestSpec);
-
- /* Update invalid account preference id should fail */
- System.out
- .println("---------------------------------UPDATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
-
- /* Invalid Account Type */
- HashMap updationError = this.accountNumberPreferencesHelper.updateAccountNumberPreference(5, "101",
- this.responseNotFoundError, "");
- if (updationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE).equals("error.msg.resource.not.found")) {
- Assert.assertEquals("error.msg.resource.not.found", updationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
- }
- /* Invalid Prefix Type */
- HashMap updationError1 = this.accountNumberPreferencesHelper.updateAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "103", this.responseValidationError, "");
-
- Assert.assertEquals("validation.msg.validation.errors.exist", updationError1.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
-
- }
-
- private void createAndValidateClientEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
- if (isAccountPreferenceSetUp) {
- this.createAndValidateClientBasedOnAccountPreference();
- } else {
- this.createAndValidateClientWithoutAccountPreference();
- }
- }
-
- private void createAndValidateClientWithoutAccountPreference() {
- this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
- Assert.assertNotNull(this.clientId);
- String clientAccountNo = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "accountNo");
- validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, null);
- }
-
- private void createAndValidateClientBasedOnAccountPreference() {
- final String codeName = "ClientType";
- String clientAccountNo = null;
- String clientPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.clientAccountNumberPreferenceId, "prefixType.value");
- if (clientPrefixName.equals(this.clientTypeName)) {
-
- /* Retrieve Code id for the Code "ClientType" */
- HashMap code = CodeHelper.getCodeByName(this.requestSpec, this.responseSpec, codeName, "");
- this.clientTypeCodeId = (Integer) code.get("id");
-
- /* Retrieve/Create Code Values for the Code "ClientType" */
- HashMap codeValue = CodeHelper.retrieveOrCreateCodeValue(this.clientTypeCodeId, this.requestSpec,
- this.responseSpec, "");
- this.clientCodeValueName = (String) codeValue.get("name");
- this.clientCodeValueId = (Integer) codeValue.get("id");
-
- /* Create Client with Client Type */
- this.clientId = ClientHelper.createClientForAccountPreference(this.requestSpec, this.responseSpec, this.clientCodeValueId,
- "clientId");
-
- Assert.assertNotNull(clientId);
-
- clientAccountNo = (String) ClientHelper.getClient(this.requestSpec, this.responseSpec, this.clientId.toString(), "accountNo");
- this.validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, this.clientCodeValueName);
-
- } else if (clientPrefixName.equals(this.officeName)) {
- this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
- Assert.assertNotNull(clientId);
- clientAccountNo = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "accountNo");
- String officeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, officeName);
- }
- }
-
- private void validateAccountNumberLengthAndStartsWithPrefix(final String accountNumber, final String prefix) {
- if (prefix != null) {
- Assert.assertEquals(accountNumber.length(), prefix.length() + 9);
- Assert.assertTrue(accountNumber.startsWith(prefix));
- } else {
- Assert.assertEquals(accountNumber.length(), 9);
- }
- }
-
- private void createLoanProduct() {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- 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 + ")");
- }
-
- private void createAndValidateLoanEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- 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);
- String loanAccountNo = (String) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, this.loanId,
- "accountNo");
-
- if (isAccountPreferenceSetUp) {
- String loanPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.loanAccountNumberPreferenceId, "prefixType.value");
- if (loanPrefixName.equals(this.officeName)) {
- String loanOfficeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(), "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, loanOfficeName);
- } else if (loanPrefixName.equals(this.loanShortName)) {
- String loanShortName = (String) this.loanTransactionHelper.getLoanProductDetail(this.requestSpec, this.responseSpec,
- this.loanProductId, "shortName");
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, loanShortName);
- }
- System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
- } else {
- this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, null);
- System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION (ID: " + loanId + ")");
- }
- }
-
- private void createSavingsProduct() {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
-
- SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
-
- final String savingsProductJSON = savingsProductHelper
- //
- .withInterestCompoundingPeriodTypeAsDaily()
- //
- .withInterestPostingPeriodTypeAsMonthly()
- //
- .withInterestCalculationPeriodTypeAsDailyBalance()
- //
- .withMinBalanceForInterestCalculation(minBalanceForInterestCalculation)
- //
- .withMinRequiredBalance(minRequiredBalance).withEnforceMinRequiredBalance(enforceMinRequiredBalance)
- .withMinimumOpenningBalance(this.MINIMUM_OPENING_BALANCE).build();
- this.savingsProductId = SavingsProductHelper.createSavingsProduct(savingsProductJSON, this.requestSpec, this.responseSpec);
- System.out.println("Sucessfully created savings product (ID: " + this.savingsProductId + ")");
-
- }
-
- private void createAndValidateSavingsEntity(Boolean isAccountPreferenceSetUp) {
- this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-
- this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-
- this.savingsId = this.savingsAccountHelper
- .applyForSavingsApplication(this.clientId, this.savingsProductId, ACCOUNT_TYPE_INDIVIDUAL);
-
- String savingsAccountNo = (String) this.savingsAccountHelper.getSavingsAccountDetail(this.savingsId, "accountNo");
-
- if (isAccountPreferenceSetUp) {
- String savingsPrefixName = (String) this.accountNumberPreferencesHelper.getAccountNumberPreference(
- this.savingsAccountNumberPreferenceId, "prefixType.value");
-
- if (savingsPrefixName.equals(this.officeName)) {
- String savingsOfficeName = (String) ClientHelper.getClient(requestSpec, responseSpec, this.clientId.toString(),
- "officeName");
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, savingsOfficeName);
- } else if (savingsPrefixName.equals(this.savingsShortName)) {
- String loanShortName = (String) this.savingsAccountHelper.getSavingsAccountDetail(this.savingsId, "shortName");
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, loanShortName);
- }
- System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
- } else {
- this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, null);
- System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION (ID: " + this.savingsId + ")");
- }
- }
+ private RequestSpecification requestSpec;
+ private ResponseSpecification responseSpec;
+ private ResponseSpecification responseValidationError;
+ private ResponseSpecification responseNotFoundError;
+ private ResponseSpecification responseForbiddenError;
+ private Integer clientId;
+ private Integer loanProductId;
+ private Integer loanId;
+ private Integer savingsProductId;
+ private Integer savingsId;
+ private String loanPrincipalAmount = "100000.00";
+ private String numberOfRepayments = "12";
+ private String interestRatePerPeriod = "18";
+ private String dateString = "4 September 2014";
+ private String minBalanceForInterestCalculation = null;
+ private String minRequiredBalance = null;
+ private String enforceMinRequiredBalance = "false";
+ private LoanTransactionHelper loanTransactionHelper;
+ private SavingsAccountHelper savingsAccountHelper;
+ private AccountNumberPreferencesHelper accountNumberPreferencesHelper;
+ private Integer clientAccountNumberPreferenceId;
+ private Integer loanAccountNumberPreferenceId;
+ private Integer savingsAccountNumberPreferenceId;
+ private final String MINIMUM_OPENING_BALANCE = "1000.0";
+ private final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
+ private Boolean isAccountPreferenceSetUp = false;
+ private Integer clientTypeCodeId;
+ private String clientCodeValueName;
+ private Integer clientCodeValueId;
+ private String clientTypeName = "CLIENT_TYPE";
+ private String officeName = "OFFICE_NAME";
+ private String loanShortName = "LOAN_PRODUCT_SHORT_NAME";
+ private String savingsShortName = "SAVINGS_PRODUCT_SHORT_NAME";
+
+ @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.responseValidationError = new ResponseSpecBuilder()
+ .expectStatusCode(400).build();
+ this.responseNotFoundError = new ResponseSpecBuilder()
+ .expectStatusCode(404).build();
+ this.responseForbiddenError = new ResponseSpecBuilder()
+ .expectStatusCode(403).build();
+ this.loanTransactionHelper = new LoanTransactionHelper(
+ this.requestSpec, this.responseSpec);
+ this.accountNumberPreferencesHelper = new AccountNumberPreferencesHelper(
+ this.requestSpec, this.responseSpec);
+
+ }
+
+ @Test
+ public void testAccountNumberPreferences() {
+
+ /* Create Loan and Savings Product */
+ this.createLoanAndSavingsProduct();
+
+ /* Ensure no account number preferences are present in the system */
+ this.deleteAllAccountNumberPreferences();
+
+ /*
+ * Validate the default account number generation rules for clients,
+ * loans and savings accounts.
+ */
+ this.validateDefaultAccountNumberGeneration();
+
+ /* Create and Validate account number preferences */
+ this.createAccountNumberPreference();
+
+ /*
+ * Validate account number preference rules apply to Clients,Loans and
+ * Saving Accounts
+ */
+ this.validateAccountNumberGenerationWithPreferences();
+
+ /* Validate account number preferences Updation */
+ this.updateAccountNumberPreference();
+
+ /*
+ * Validate account number preference rules apply to Clients,Loans and
+ * Saving Accounts after Updation
+ */
+ this.validateAccountNumberGenerationWithPreferences();
+
+ /* Delete all account number preferences */
+ this.deleteAllAccountNumberPreferences();
+
+ }
+
+ private void createLoanAndSavingsProduct() {
+ this.createLoanProduct();
+ this.createSavingsProduct();
+ }
+
+ private void deleteAllAccountNumberPreferences() {
+ ArrayList> preferenceIds = this.accountNumberPreferencesHelper
+ .getAllAccountNumberPreferences();
+ /* Deletion of valid account preference ID */
+ for (HashMap preferenceId : preferenceIds) {
+ Integer id = (Integer) preferenceId.get("id");
+ HashMap delResponse = this.accountNumberPreferencesHelper
+ .deleteAccountNumberPreference(id, this.responseSpec, "");
+ System.out
+ .println("Successfully deleted account number preference (ID: "
+ + delResponse.get("resourceId") + ")");
+ }
+ /* Deletion of invalid account preference ID should fail */
+ System.out
+ .println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE WITH INVALID ID------------------------------------------");
+
+ HashMap deletionError = this.accountNumberPreferencesHelper
+ .deleteAccountNumberPreference(10, this.responseNotFoundError,
+ "");
+ Assert.assertEquals("error.msg.resource.not.found",
+ deletionError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ }
+
+ private void validateDefaultAccountNumberGeneration() {
+ this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
+ this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
+ this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
+ }
+
+ private void validateAccountNumberGenerationWithPreferences() {
+ this.isAccountPreferenceSetUp = true;
+ this.createAndValidateClientEntity(this.isAccountPreferenceSetUp);
+ this.createAndValidateLoanEntity(this.isAccountPreferenceSetUp);
+ this.createAndValidateSavingsEntity(this.isAccountPreferenceSetUp);
+ }
+
+ private void createAccountNumberPreference() {
+ this.clientAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper
+ .createClientAccountNumberPreference(this.responseSpec,
+ "resourceId");
+ System.out
+ .println("Successfully created account number preferences for Client (ID: "
+ + this.clientAccountNumberPreferenceId);
+
+ this.loanAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper
+ .createLoanAccountNumberPreference(this.responseSpec,
+ "resourceId");
+ System.out
+ .println("Successfully created account number preferences for Loan (ID: "
+ + this.loanAccountNumberPreferenceId);
+
+ this.savingsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper
+ .createSavingsAccountNumberPreference(this.responseSpec,
+ "resourceId");
+ System.out
+ .println("Successfully created account number preferences for Savings (ID: "
+ + this.savingsAccountNumberPreferenceId);
+
+ this.accountNumberPreferencesHelper
+ .verifyCreationOfAccountNumberPreferences(
+ this.clientAccountNumberPreferenceId,
+ this.loanAccountNumberPreferenceId,
+ this.savingsAccountNumberPreferenceId,
+ this.responseSpec, this.requestSpec);
+
+ this.createAccountNumberPreferenceInvalidData("1000", "1001");
+ this.createAccountNumberPreferenceDuplicateData("1", "101");
+
+ }
+
+ private void createAccountNumberPreferenceDuplicateData(
+ final String accountType, final String prefixType) {
+ /* Creating account Preference with duplicate data should fail */
+ System.out
+ .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH DUPLICATE DATA------------------------------------------");
+
+ HashMap creationError = this.accountNumberPreferencesHelper
+ .createAccountNumberPreferenceWithInvalidData(
+ this.responseForbiddenError, accountType, prefixType,
+ "");
+
+ Assert.assertEquals(
+ "error.msg.account.number.format.duplicate.account.type",
+ creationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+
+ }
+
+ private void createAccountNumberPreferenceInvalidData(
+ final String accountType, final String prefixType) {
+
+ /* Creating account Preference with invalid data should fail */
+ System.out
+ .println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
+
+ HashMap creationError = this.accountNumberPreferencesHelper
+ .createAccountNumberPreferenceWithInvalidData(
+ this.responseValidationError, accountType, prefixType,
+ "");
+
+ if (creationError
+ .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)
+ .equals("validation.msg.accountNumberFormat.accountType.is.not.within.expected.range")) {
+ Assert.assertEquals(
+ "validation.msg.accountNumberFormat.accountType.is.not.within.expected.range",
+ creationError
+ .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ } else if (creationError
+ .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)
+ .equals("validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations")) {
+ Assert.assertEquals(
+ "validation.msg.accountNumberFormat.prefixType.is.not.one.of.expected.enumerations",
+ creationError
+ .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ }
+ }
+
+ private void updateAccountNumberPreference() {
+ HashMap accountNumberPreferences = this.accountNumberPreferencesHelper
+ .updateAccountNumberPreference(
+ this.clientAccountNumberPreferenceId, "101",
+ this.responseSpec, "");
+
+ System.out
+ .println("--------------------------UPDATION SUCCESSFUL FOR ACCOUNT NUMBER PREFERENCE ID "
+ + accountNumberPreferences.get("resourceId"));
+
+ this.accountNumberPreferencesHelper
+ .verifyUpdationOfAccountNumberPreferences(
+ (Integer) accountNumberPreferences.get("resourceId"),
+ this.responseSpec, this.requestSpec);
+
+ /* Update invalid account preference id should fail */
+ System.out
+ .println("---------------------------------UPDATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
+
+ /* Invalid Account Type */
+ HashMap updationError = this.accountNumberPreferencesHelper
+ .updateAccountNumberPreference(9999, "101",
+ this.responseNotFoundError, "");
+ if (updationError.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE)
+ .equals("error.msg.resource.not.found")) {
+ Assert.assertEquals("error.msg.resource.not.found", updationError
+ .get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ }
+ /* Invalid Prefix Type */
+ HashMap updationError1 = this.accountNumberPreferencesHelper
+ .updateAccountNumberPreference(
+ this.clientAccountNumberPreferenceId, "103",
+ this.responseValidationError, "");
+
+ Assert.assertEquals("validation.msg.validation.errors.exist",
+ updationError1.get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+
+ }
+
+ private void createAndValidateClientEntity(Boolean isAccountPreferenceSetUp) {
+ this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200)
+ .build();
+ if (isAccountPreferenceSetUp) {
+ this.createAndValidateClientBasedOnAccountPreference();
+ } else {
+ this.createAndValidateClientWithoutAccountPreference();
+ }
+ }
+
+ private void createAndValidateClientWithoutAccountPreference() {
+ this.clientId = ClientHelper.createClient(this.requestSpec,
+ this.responseSpec);
+ Assert.assertNotNull(this.clientId);
+ String clientAccountNo = (String) ClientHelper.getClient(requestSpec,
+ responseSpec, this.clientId.toString(), "accountNo");
+ validateAccountNumberLengthAndStartsWithPrefix(clientAccountNo, null);
+ }
+
+ private void createAndValidateClientBasedOnAccountPreference() {
+ final String codeName = "ClientType";
+ String clientAccountNo = null;
+ String clientPrefixName = (String) this.accountNumberPreferencesHelper
+ .getAccountNumberPreference(
+ this.clientAccountNumberPreferenceId,
+ "prefixType.value");
+ if (clientPrefixName.equals(this.clientTypeName)) {
+
+ /* Retrieve Code id for the Code "ClientType" */
+ HashMap code = CodeHelper
+ .getCodeByName(this.requestSpec, this.responseSpec,
+ codeName);
+ this.clientTypeCodeId = (Integer) code.get("id");
+
+ /* Retrieve/Create Code Values for the Code "ClientType" */
+ HashMap codeValue = CodeHelper
+ .retrieveOrCreateCodeValue(this.clientTypeCodeId,
+ this.requestSpec, this.responseSpec);
+
+ this.clientCodeValueName = (String) codeValue.get("name");
+ this.clientCodeValueId = (Integer) codeValue.get("id");
+
+ /* Create Client with Client Type */
+ this.clientId = ClientHelper.createClientForAccountPreference(
+ this.requestSpec, this.responseSpec,
+ this.clientCodeValueId, "clientId");
+
+ Assert.assertNotNull(clientId);
+
+ clientAccountNo = (String) ClientHelper.getClient(this.requestSpec,
+ this.responseSpec, this.clientId.toString(), "accountNo");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ clientAccountNo, this.clientCodeValueName);
+
+ } else if (clientPrefixName.equals(this.officeName)) {
+ this.clientId = ClientHelper.createClient(this.requestSpec,
+ this.responseSpec);
+ Assert.assertNotNull(clientId);
+ clientAccountNo = (String) ClientHelper.getClient(requestSpec,
+ responseSpec, this.clientId.toString(), "accountNo");
+ String officeName = (String) ClientHelper.getClient(requestSpec,
+ responseSpec, this.clientId.toString(), "officeName");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ clientAccountNo, officeName);
+ }
+ }
+
+ private void validateAccountNumberLengthAndStartsWithPrefix(
+ final String accountNumber, final String prefix) {
+ if (prefix != null) {
+ Assert.assertEquals(accountNumber.length(), prefix.length() + 9);
+ Assert.assertTrue(accountNumber.startsWith(prefix));
+ } else {
+ Assert.assertEquals(accountNumber.length(), 9);
+ }
+ }
+
+ private void createLoanProduct() {
+ this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200)
+ .build();
+
+ 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 + ")");
+ }
+
+ private void createAndValidateLoanEntity(Boolean isAccountPreferenceSetUp) {
+ this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200)
+ .build();
+
+ 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);
+ String loanAccountNo = (String) this.loanTransactionHelper
+ .getLoanDetail(this.requestSpec, this.responseSpec,
+ this.loanId, "accountNo");
+
+ if (isAccountPreferenceSetUp) {
+ String loanPrefixName = (String) this.accountNumberPreferencesHelper
+ .getAccountNumberPreference(
+ this.loanAccountNumberPreferenceId,
+ "prefixType.value");
+ if (loanPrefixName.equals(this.officeName)) {
+ String loanOfficeName = (String) ClientHelper.getClient(
+ requestSpec, responseSpec, this.clientId.toString(),
+ "officeName");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ loanAccountNo, loanOfficeName);
+ } else if (loanPrefixName.equals(this.loanShortName)) {
+ String loanShortName = (String) this.loanTransactionHelper
+ .getLoanProductDetail(this.requestSpec,
+ this.responseSpec, this.loanProductId,
+ "shortName");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ loanAccountNo, loanShortName);
+ }
+ System.out
+ .println("SUCCESSFULLY CREATED LOAN APPLICATION BASED ON ACCOUNT PREFERENCES (ID: "
+ + this.loanId + ")");
+ } else {
+ this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo,
+ null);
+ System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION (ID: "
+ + loanId + ")");
+ }
+ }
+
+ private void createSavingsProduct() {
+ this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200)
+ .build();
+
+ System.out
+ .println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+
+ SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
+
+ final String savingsProductJSON = savingsProductHelper
+ //
+ .withInterestCompoundingPeriodTypeAsDaily()
+ //
+ .withInterestPostingPeriodTypeAsMonthly()
+ //
+ .withInterestCalculationPeriodTypeAsDailyBalance()
+ //
+ .withMinBalanceForInterestCalculation(
+ minBalanceForInterestCalculation)
+ //
+ .withMinRequiredBalance(minRequiredBalance)
+ .withEnforceMinRequiredBalance(enforceMinRequiredBalance)
+ .withMinimumOpenningBalance(this.MINIMUM_OPENING_BALANCE)
+ .build();
+ this.savingsProductId = SavingsProductHelper.createSavingsProduct(
+ savingsProductJSON, this.requestSpec, this.responseSpec);
+ System.out.println("Sucessfully created savings product (ID: "
+ + this.savingsProductId + ")");
+
+ }
+
+ private void createAndValidateSavingsEntity(Boolean isAccountPreferenceSetUp) {
+ this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200)
+ .build();
+
+ this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec,
+ this.responseSpec);
+
+ this.savingsId = this.savingsAccountHelper.applyForSavingsApplication(
+ this.clientId, this.savingsProductId, ACCOUNT_TYPE_INDIVIDUAL);
+
+ String savingsAccountNo = (String) this.savingsAccountHelper
+ .getSavingsAccountDetail(this.savingsId, "accountNo");
+
+ if (isAccountPreferenceSetUp) {
+ String savingsPrefixName = (String) this.accountNumberPreferencesHelper
+ .getAccountNumberPreference(
+ this.savingsAccountNumberPreferenceId,
+ "prefixType.value");
+
+ if (savingsPrefixName.equals(this.officeName)) {
+ String savingsOfficeName = (String) ClientHelper.getClient(
+ requestSpec, responseSpec, this.clientId.toString(),
+ "officeName");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ savingsAccountNo, savingsOfficeName);
+ } else if (savingsPrefixName.equals(this.savingsShortName)) {
+ String loanShortName = (String) this.savingsAccountHelper
+ .getSavingsAccountDetail(this.savingsId, "shortName");
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ savingsAccountNo, loanShortName);
+ }
+ System.out
+ .println("SUCCESSFULLY CREATED SAVINGS APPLICATION BASED ON ACCOUNT PREFERENCES (ID: "
+ + this.loanId + ")");
+ } else {
+ this.validateAccountNumberLengthAndStartsWithPrefix(
+ savingsAccountNo, null);
+ System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION (ID: "
+ + this.savingsId + ")");
+ }
+ }
}
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientTest.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientTest.java
index 8e80a5a68..d8b5d2cd1 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientTest.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/ClientTest.java
@@ -9,6 +9,7 @@ import java.util.HashMap;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Test;
import org.mifosplatform.integrationtests.common.ClientHelper;
import org.mifosplatform.integrationtests.common.Utils;
@@ -33,7 +34,7 @@ public class ClientTest {
}
- // @Test
+ @Test
public void testClientStatus() {
this.clientHelper = new ClientHelper(this.requestSpec, this.responseSpec);
final Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/ClientHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/ClientHelper.java
index e4bfe4d43..28eca04cb 100755
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/ClientHelper.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/ClientHelper.java
@@ -8,7 +8,7 @@ package org.mifosplatform.integrationtests.common;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
-import java.util.List;
+import org.mifosplatform.integrationtests.common.system.CodeHelper;
import com.google.gson.Gson;
import com.jayway.restassured.specification.RequestSpecification;
@@ -60,7 +60,7 @@ public class ClientHelper {
final String officeId = "1";
System.out.println("---------------------------------CREATING A CLIENT BASED ON ACCOUNT PREFERENCE---------------------------------------------");
return Utils.performServerPost(requestSpec, responseSpec, CREATE_CLIENT_URL, getTestClientWithClientTypeAsJSON(activationDate, officeId, clientType.toString()),
- "clientId");
+ jsonAttributeToGetBack);
}
public static Object assignStaffToClient(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
@@ -141,10 +141,21 @@ public class ClientHelper {
private String getCloseClientAsJSON() {
final HashMap map = new HashMap<>();
+
+ /* Retrieve Code id for the Code "ClientClosureReason" */
+ String codeName = "ClientClosureReason";
+ HashMap code = CodeHelper.getCodeByName(this.requestSpec, this.responseSpec, codeName);
+ Integer clientClosureCodeId = (Integer)code.get("id");
+
+ /* Retrieve/Create Code Values for the Code "ClientClosureReason" */
+ HashMap codeValue = CodeHelper.retrieveOrCreateCodeValue(clientClosureCodeId,this.requestSpec,this.responseSpec);
+ String closureReasonId = (String)codeValue.get("id");
+
+ map.put("closureReasonId", closureReasonId);
map.put("locale", CommonConstants.locale);
map.put("dateFormat", CommonConstants.dateFormat);
map.put("closureDate", CREATED_DATE_PLUS_ONE);
- map.put("closureReasonId", "12");
+
String clientJson = new Gson().toJson(map);
System.out.println(clientJson);
return clientJson;
@@ -166,8 +177,8 @@ public class ClientHelper {
final HashMap map = new HashMap<>();
map.put("locale", CommonConstants.locale);
map.put("dateFormat", CommonConstants.dateFormat);
- map.put("rejectDate", CREATED_DATE_PLUS_ONE);
- map.put("rejectReasonId", "15");
+ map.put("rejectionDate", CREATED_DATE_PLUS_ONE);
+ map.put("rejectionReasonId", "15");
String clientJson = new Gson().toJson(map);
System.out.println(clientJson);
return clientJson;
@@ -189,8 +200,8 @@ public class ClientHelper {
final HashMap map = new HashMap<>();
map.put("locale", CommonConstants.locale);
map.put("dateFormat", CommonConstants.dateFormat);
- map.put("withdrawDate", CREATED_DATE_PLUS_ONE);
- map.put("withdrawReasonId", "17");
+ map.put("withdrawalDate", CREATED_DATE_PLUS_ONE);
+ map.put("withdrawalReasonId", "17");
String clientJson = new Gson().toJson(map);
System.out.println(clientJson);
return clientJson;
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 8721b7e5e..b55ecde4b 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
@@ -92,9 +92,9 @@ public class LoanTransactionHelper {
}
public Object getLoanProductDetail(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer loanProductId,
- final String param) {
+ final String jsonAttributeToGetBack) {
final String URL = "/mifosng-provider/api/v1/loanproducts/" + loanProductId + "?associations=all&" + Utils.TENANT_IDENTIFIER;
- return Utils.performServerGet(requestSpec, responseSpec, URL, param);
+ return Utils.performServerGet(requestSpec, responseSpec, URL, jsonAttributeToGetBack);
}
public ArrayList getLoanCharges(final Integer loanId) {
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesHelper.java
index 9fc35610a..9745f7219 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesHelper.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesHelper.java
@@ -1,6 +1,5 @@
package org.mifosplatform.integrationtests.common.system;
-
import java.util.ArrayList;
import java.util.HashMap;
@@ -12,107 +11,154 @@ import com.jayway.restassured.specification.ResponseSpecification;
public class AccountNumberPreferencesHelper {
private final RequestSpecification requestSpec;
- private final ResponseSpecification responseSpec;
-
- private static final String ACCOUNT_NUMBER_FORMATS_REQUEST_URL = "/mifosng-provider/api/v1/accountnumberformats";
-
- public AccountNumberPreferencesHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
- this.requestSpec = requestSpec;
- this.responseSpec = responseSpec;
- }
-
- public Object createClientAccountNumberPreference(ResponseSpecification responseSpec,String jsonAttributeToGetBack) {
- System.out.println("---------------------------------CREATING CLIENT ACCOUNT NUMBER PREFERENCE------------------------------------------");
- final String requestJSON = new AccountNumberPreferencesTestBuilder().clientBuild();
+ private final ResponseSpecification responseSpec;
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER;
+ private static final String ACCOUNT_NUMBER_FORMATS_REQUEST_URL = "/mifosng-provider/api/v1/accountnumberformats";
- return Utils.performServerPost(this.requestSpec, responseSpec, URL, requestJSON, jsonAttributeToGetBack);
- }
-
- public Object createLoanAccountNumberPreference(ResponseSpecification responseSpec,String jsonAttributeToGetBack) {
- System.out.println("---------------------------------CREATING LOAN ACCOUNT NUMBER PREFERENCE------------------------------------------");
+ public AccountNumberPreferencesHelper(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec) {
+ this.requestSpec = requestSpec;
+ this.responseSpec = responseSpec;
+ }
- final String requestJSON = new AccountNumberPreferencesTestBuilder().loanBuild();
+ public Object createClientAccountNumberPreference(
+ ResponseSpecification responseSpec, String jsonAttributeToGetBack) {
+ System.out
+ .println("---------------------------------CREATING CLIENT ACCOUNT NUMBER PREFERENCE------------------------------------------");
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER;
- return Utils.performServerPost(this.requestSpec, responseSpec, URL, requestJSON, jsonAttributeToGetBack);
- }
-
- public Object createSavingsAccountNumberPreference(ResponseSpecification responseSpec,String jsonAttributeToGetBack) {
- System.out.println("---------------------------------CREATING SAVINGS ACCOUNT NUMBER PREFERENCE------------------------------------------");
+ final String requestJSON = new AccountNumberPreferencesTestBuilder()
+ .clientBuild();
- final String requestJSON = new AccountNumberPreferencesTestBuilder().savingsBuild();
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?"
+ + Utils.TENANT_IDENTIFIER;
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER;
- return Utils.performServerPost(this.requestSpec, responseSpec, URL, requestJSON, jsonAttributeToGetBack);
+ return Utils.performServerPost(this.requestSpec, responseSpec, URL,
+ requestJSON, jsonAttributeToGetBack);
+ }
- }
-
- public HashMap createAccountNumberPreferenceWithInvalidData(ResponseSpecification responseSpec,
- String accountType,String prefixType,String jsonAttributeToGetBack){
+ public Object createLoanAccountNumberPreference(
+ ResponseSpecification responseSpec, String jsonAttributeToGetBack) {
+ System.out
+ .println("---------------------------------CREATING LOAN ACCOUNT NUMBER PREFERENCE------------------------------------------");
- final String requestJSON = new AccountNumberPreferencesTestBuilder().invalidDataBuild(accountType,prefixType);
+ final String requestJSON = new AccountNumberPreferencesTestBuilder()
+ .loanBuild();
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER;
- return Utils.performServerPost(this.requestSpec, responseSpec, URL, requestJSON, jsonAttributeToGetBack);
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?"
+ + Utils.TENANT_IDENTIFIER;
+ return Utils.performServerPost(this.requestSpec, responseSpec, URL,
+ requestJSON, jsonAttributeToGetBack);
+ }
- }
-
- public HashMap updateAccountNumberPreference(final Integer accountNumberFormatId,final String prefixType,ResponseSpecification responseSpec,String jsonAttributeToGetBack) {
+ public Object createSavingsAccountNumberPreference(
+ ResponseSpecification responseSpec, String jsonAttributeToGetBack) {
+ System.out
+ .println("---------------------------------CREATING SAVINGS ACCOUNT NUMBER PREFERENCE------------------------------------------");
- final String requestJSON = new AccountNumberPreferencesTestBuilder().updatePrefixType(prefixType);
+ final String requestJSON = new AccountNumberPreferencesTestBuilder()
+ .savingsBuild();
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
-
- return Utils.performServerPut(this.requestSpec, responseSpec, URL, requestJSON, jsonAttributeToGetBack);
-
- }
-
- public HashMap deleteAccountNumberPreference(final Integer accountNumberFormatId,ResponseSpecification responseSpec,String jsonAttributeToGetBack) {
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?"
+ + Utils.TENANT_IDENTIFIER;
+ return Utils.performServerPost(this.requestSpec, responseSpec, URL,
+ requestJSON, jsonAttributeToGetBack);
- System.out.println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE------------------------------------------");
+ }
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
-
- return Utils.performServerDelete(this.requestSpec, responseSpec, URL,jsonAttributeToGetBack);
- }
-
- public Object getAccountNumberPreference(final Integer accountNumberFormatId, final String jsonAttributeToGetBack) {
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
-
- return Utils.performServerGet(requestSpec, responseSpec, URL, jsonAttributeToGetBack);
- }
-
- public ArrayList> getAllAccountNumberPreferences() {
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?" + Utils.TENANT_IDENTIFIER;
- final ArrayList> response = Utils.performServerGet(requestSpec, responseSpec, URL, "");
- return response;
- }
-
- public void verifyCreationOfAccountNumberPreferences(final Integer clientAccountNumberPreferenceId,
- final Integer loanAccountNumberPreferenceId,final Integer savingsAccountNumberPreferenceId,
- ResponseSpecification responseSpec,RequestSpecification requestSpec) {
-
- final String clientURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + clientAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
-
- Utils.performServerGet(requestSpec, responseSpec, clientURL, "id");
-
- final String loanURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + loanAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
-
- Utils.performServerGet(requestSpec, responseSpec, loanURL, "id");
-
- final String savingsURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + savingsAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
-
- Utils.performServerGet(requestSpec, responseSpec, savingsURL, "id");
- }
-
- public void verifyUpdationOfAccountNumberPreferences(final Integer accountNumberPreferenceId,
- ResponseSpecification responseSpec,RequestSpecification requestSpec){
-
- final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/" + accountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
- Utils.performServerGet(requestSpec, responseSpec, URL, "id");
+ public HashMap createAccountNumberPreferenceWithInvalidData(
+ ResponseSpecification responseSpec, String accountType,
+ String prefixType, String jsonAttributeToGetBack) {
- }
+ final String requestJSON = new AccountNumberPreferencesTestBuilder()
+ .invalidDataBuild(accountType, prefixType);
+
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?"
+ + Utils.TENANT_IDENTIFIER;
+ return Utils.performServerPost(this.requestSpec, responseSpec, URL,
+ requestJSON, jsonAttributeToGetBack);
+
+ }
+
+ public HashMap updateAccountNumberPreference(
+ final Integer accountNumberFormatId, final String prefixType,
+ ResponseSpecification responseSpec, String jsonAttributeToGetBack) {
+
+ final String requestJSON = new AccountNumberPreferencesTestBuilder()
+ .updatePrefixType(prefixType);
+
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
+
+ return Utils.performServerPut(this.requestSpec, responseSpec, URL,
+ requestJSON, jsonAttributeToGetBack);
+
+ }
+
+ public HashMap deleteAccountNumberPreference(
+ final Integer accountNumberFormatId,
+ ResponseSpecification responseSpec, String jsonAttributeToGetBack) {
+
+ System.out
+ .println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE------------------------------------------");
+
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
+
+ return Utils.performServerDelete(this.requestSpec, responseSpec, URL,
+ jsonAttributeToGetBack);
+ }
+
+ public Object getAccountNumberPreference(
+ final Integer accountNumberFormatId,
+ final String jsonAttributeToGetBack) {
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + accountNumberFormatId + "?" + Utils.TENANT_IDENTIFIER;
+
+ return Utils.performServerGet(requestSpec, responseSpec, URL,
+ jsonAttributeToGetBack);
+ }
+
+ public ArrayList> getAllAccountNumberPreferences() {
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "?"
+ + Utils.TENANT_IDENTIFIER;
+ final ArrayList> response = Utils
+ .performServerGet(requestSpec, responseSpec, URL, "");
+ return response;
+ }
+
+ public void verifyCreationOfAccountNumberPreferences(
+ final Integer clientAccountNumberPreferenceId,
+ final Integer loanAccountNumberPreferenceId,
+ final Integer savingsAccountNumberPreferenceId,
+ ResponseSpecification responseSpec, RequestSpecification requestSpec) {
+
+ final String clientURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + clientAccountNumberPreferenceId + "?"
+ + Utils.TENANT_IDENTIFIER;
+
+ Utils.performServerGet(requestSpec, responseSpec, clientURL, "id");
+
+ final String loanURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + loanAccountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
+
+ Utils.performServerGet(requestSpec, responseSpec, loanURL, "id");
+
+ final String savingsURL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + savingsAccountNumberPreferenceId + "?"
+ + Utils.TENANT_IDENTIFIER;
+
+ Utils.performServerGet(requestSpec, responseSpec, savingsURL, "id");
+ }
+
+ public void verifyUpdationOfAccountNumberPreferences(
+ final Integer accountNumberPreferenceId,
+ ResponseSpecification responseSpec, RequestSpecification requestSpec) {
+
+ final String URL = ACCOUNT_NUMBER_FORMATS_REQUEST_URL + "/"
+ + accountNumberPreferenceId + "?" + Utils.TENANT_IDENTIFIER;
+ Utils.performServerGet(requestSpec, responseSpec, URL, "id");
+
+ }
}
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java
index 98e63d201..6488c36c0 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/AccountNumberPreferencesTestBuilder.java
@@ -5,48 +5,49 @@ import java.util.HashMap;
import com.google.gson.Gson;
public class AccountNumberPreferencesTestBuilder {
-
private String clientAccountType = "1";
private String clientPrefixType = "101";
private String loanAccountType = "2";
private String loanPrefixType = "1";
private String savingsAccountType = "3";
private String savingsPrefixType = "1";
-
+
public String clientBuild() {
final HashMap map = new HashMap<>();
map.put("accountType", clientAccountType);
map.put("prefixType", clientPrefixType);
-
+
return new Gson().toJson(map);
}
- public String loanBuild(){
+
+ public String loanBuild() {
final HashMap map = new HashMap<>();
map.put("accountType", loanAccountType);
map.put("prefixType", loanPrefixType);
-
+
return new Gson().toJson(map);
}
- public String savingsBuild(){
+
+ public String savingsBuild() {
final HashMap map = new HashMap<>();
map.put("accountType", savingsAccountType);
map.put("prefixType", savingsPrefixType);
-
+
return new Gson().toJson(map);
}
- public String invalidDataBuild(String accountType,String prefixType){
+
+ public String invalidDataBuild(String accountType, String prefixType) {
final HashMap map = new HashMap<>();
map.put("accountType", accountType);
map.put("prefixType", prefixType);
-
+
return new Gson().toJson(map);
}
+
public String updatePrefixType(final String prefixType) {
final HashMap map = new HashMap<>();
map.put("prefixType", prefixType);
-
return new Gson().toJson(map);
}
}
-
diff --git a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/CodeHelper.java b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/CodeHelper.java
index 4fdac3c42..7aca024e7 100644
--- a/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/CodeHelper.java
+++ b/mifosng-provider/src/integrationTest/java/org/mifosplatform/integrationtests/common/system/CodeHelper.java
@@ -20,170 +20,218 @@ import com.jayway.restassured.specification.ResponseSpecification;
public class CodeHelper {
- public static final String CODE_ID_ATTRIBUTE_NAME = "id";
- public static final String RESPONSE_ID_ATTRIBUTE_NAME = "resourceId";
- public static final String SUBRESPONSE_ID_ATTRIBUTE_NAME = "subResourceId";
- public static final String CODE_NAME_ATTRIBUTE_NAME = "name";
- public static final String CODE_SYSTEM_DEFINED_ATTRIBUTE_NAME = "systemDefined";
- public static final String CODE_URL = "/mifosng-provider/api/v1/codes";
+ public static final String CODE_ID_ATTRIBUTE_NAME = "id";
+ public static final String RESPONSE_ID_ATTRIBUTE_NAME = "resourceId";
+ public static final String SUBRESPONSE_ID_ATTRIBUTE_NAME = "subResourceId";
+ public static final String CODE_NAME_ATTRIBUTE_NAME = "name";
+ public static final String CODE_SYSTEM_DEFINED_ATTRIBUTE_NAME = "systemDefined";
+ public static final String CODE_URL = "/mifosng-provider/api/v1/codes";
- public static final String CODE_VALUE_ID_ATTRIBUTE_NAME = "id";
- public static final String CODE_VALUE_NAME_ATTRIBUTE_NAME = "name";
- public static final String CODE_VALUE_DESCRIPTION_ATTRIBUTE_NAME = "description";
- public static final String CODE_VALUE_POSITION_ATTRIBUTE_NAME = "position";
- public static final String CODE_VALUE_URL = "/mifosng-provider/api/v1/codes/[codeId]/codevalues";
+ public static final String CODE_VALUE_ID_ATTRIBUTE_NAME = "id";
+ public static final String CODE_VALUE_NAME_ATTRIBUTE_NAME = "name";
+ public static final String CODE_VALUE_DESCRIPTION_ATTRIBUTE_NAME = "description";
+ public static final String CODE_VALUE_POSITION_ATTRIBUTE_NAME = "position";
+ public static final String CODE_VALUE_URL = "/mifosng-provider/api/v1/codes/[codeId]/codevalues";
- public static Object createCode(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final String codeName, final String jsonAttributeToGetback) {
+ public static Object createCode(final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final String codeName,
+ final String jsonAttributeToGetback) {
- return Utils.performServerPost(requestSpec, responseSpec, CODE_URL + "?" + Utils.TENANT_IDENTIFIER, getTestCodeAsJSON(codeName),
- jsonAttributeToGetback);
- }
+ return Utils.performServerPost(requestSpec, responseSpec, CODE_URL
+ + "?" + Utils.TENANT_IDENTIFIER, getTestCodeAsJSON(codeName),
+ jsonAttributeToGetback);
+ }
- public static Object updateCode(final RequestSpecification requestSpec, final ResponseSpecification responseSpec, final Integer codeId,
- final String codeName, final String jsonAttributeToGetback) {
+ public static Object updateCode(final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String codeName, final String jsonAttributeToGetback) {
- return Utils.performServerPut(requestSpec, responseSpec, CODE_URL + "/" + codeId + "?" + Utils.TENANT_IDENTIFIER,
- getTestCodeAsJSON(codeName), jsonAttributeToGetback);
- }
+ return Utils.performServerPut(requestSpec, responseSpec, CODE_URL + "/"
+ + codeId + "?" + Utils.TENANT_IDENTIFIER,
+ getTestCodeAsJSON(codeName), jsonAttributeToGetback);
+ }
- public static Object getCodeById(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final String jsonAttributeToGetback) {
+ public static Object getCodeById(final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String jsonAttributeToGetback) {
- return Utils.performServerGet(requestSpec, responseSpec, CODE_URL + "/" + codeId + "?" + Utils.TENANT_IDENTIFIER,
- jsonAttributeToGetback);
+ return Utils.performServerGet(requestSpec, responseSpec, CODE_URL + "/"
+ + codeId + "?" + Utils.TENANT_IDENTIFIER,
+ jsonAttributeToGetback);
- }
-
- public static HashMap getCodeByName(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final String codeName, final String jsonAttributeToGetback){
+ }
- final HashMap code = new HashMap<>();
+ public static HashMap getCodeByName(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final String codeName) {
- ArrayList> getAllCodes = (ArrayList>) CodeHelper.getAllCodes(requestSpec, responseSpec);
- for (HashMapmap : getAllCodes) {
+ final HashMap code = new HashMap<>();
+
+ ArrayList> getAllCodes = CodeHelper
+ .getAllCodes(requestSpec, responseSpec);
+ for (HashMap map : getAllCodes) {
String name = (String) map.get("name");
if (name.equals(codeName)) {
code.put("id", map.get("id"));
code.put("name", map.get("name"));
- code.put("position", map.get("position"));
- code.put("description",map.get("description"));
+ code.put("systemDefined", map.get("systemDefined"));
break;
}
}
- return code;
- }
-
- public static HashMap retrieveOrCreateCodeValue(Integer codeId,final RequestSpecification requestSpec,
- final ResponseSpecification responseSpec,final String jsonAttributeToGetBack) {
- Integer codeValueId = null;
- final List> codeValuesList =
- (List>) CodeHelper.getCodeValuesForCode(requestSpec,responseSpec, codeId,"");
+ return code;
+ }
+
+ public static HashMap retrieveOrCreateCodeValue(
+ Integer codeId, final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec) {
+ Integer codeValueId = null;
+ final List> codeValuesList = CodeHelper
+ .getCodeValuesForCode(requestSpec, responseSpec, codeId, "");
/* If Code Values doesn't exist,then create Code value */
if (codeValuesList.size() == 0) {
final Integer codeValuePosition = 0;
final String codeValue = Utils.randomNameGenerator("", 3);
- codeValueId = (Integer)CodeHelper.createCodeValue(requestSpec, responseSpec, codeId , codeValue,codeValuePosition, "resourceId");
-
+ codeValueId = (Integer) CodeHelper.createCodeValue(requestSpec,
+ responseSpec, codeId, codeValue, codeValuePosition,
+ "subResourceId");
} else {
codeValueId = (Integer) codeValuesList.get(0).get("id");
}
return Utils.performServerGet(requestSpec, responseSpec,
- CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/" + codeValueId.toString() + "?" + Utils.TENANT_IDENTIFIER,
- "");
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/"
+ + codeValueId.toString() + "?"
+ + Utils.TENANT_IDENTIFIER, "");
}
- public static ArrayList> getAllCodes(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
+ public static ArrayList> getAllCodes(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec) {
- return Utils.performServerGet(requestSpec, responseSpec, CODE_URL + "?" + Utils.TENANT_IDENTIFIER, "");
+ return Utils.performServerGet(requestSpec, responseSpec, CODE_URL + "?"
+ + Utils.TENANT_IDENTIFIER, "");
- }
+ }
- public static Object getSystemDefinedCodes(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
+ public static Object getSystemDefinedCodes(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec) {
- final String getResponse = given().spec(requestSpec).expect().spec(responseSpec).when()
- .get(CodeHelper.CODE_URL + "?" + Utils.TENANT_IDENTIFIER).asString();
+ final String getResponse = given().spec(requestSpec).expect()
+ .spec(responseSpec).when()
+ .get(CodeHelper.CODE_URL + "?" + Utils.TENANT_IDENTIFIER)
+ .asString();
- final JsonPath getResponseJsonPath = new JsonPath(getResponse);
+ final JsonPath getResponseJsonPath = new JsonPath(getResponse);
- // get any systemDefined code
- return getResponseJsonPath.get("find { e -> e.systemDefined == true }");
+ // get any systemDefined code
+ return getResponseJsonPath.get("find { e -> e.systemDefined == true }");
- }
+ }
- public static String getTestCodeAsJSON(final String codeName) {
- final HashMap map = new HashMap<>();
- map.put(CODE_NAME_ATTRIBUTE_NAME, codeName);
- return new Gson().toJson(map);
- }
+ public static String getTestCodeAsJSON(final String codeName) {
+ final HashMap map = new HashMap<>();
+ map.put(CODE_NAME_ATTRIBUTE_NAME, codeName);
+ return new Gson().toJson(map);
+ }
- public static String getTestCodeValueAsJSON(final String codeValueName, final String description, final Integer position) {
- final HashMap map = new HashMap<>();
- map.put(CODE_VALUE_NAME_ATTRIBUTE_NAME, codeValueName);
- if (description != null) {
- map.put(CODE_VALUE_DESCRIPTION_ATTRIBUTE_NAME, description);
- }
- map.put(CODE_VALUE_POSITION_ATTRIBUTE_NAME, position);
- return new Gson().toJson(map);
- }
+ public static String getTestCodeValueAsJSON(final String codeValueName,
+ final String description, final Integer position) {
+ final HashMap map = new HashMap<>();
+ map.put(CODE_VALUE_NAME_ATTRIBUTE_NAME, codeValueName);
+ if (description != null) {
+ map.put(CODE_VALUE_DESCRIPTION_ATTRIBUTE_NAME, description);
+ }
+ map.put(CODE_VALUE_POSITION_ATTRIBUTE_NAME, position);
+ return new Gson().toJson(map);
+ }
- public static Object deleteCodeById(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final String jsonAttributeToGetback) {
+ public static Object deleteCodeById(final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String jsonAttributeToGetback) {
- return Utils.performServerDelete(requestSpec, responseSpec, CODE_URL + "/" + codeId + "?" + Utils.TENANT_IDENTIFIER,
- jsonAttributeToGetback);
+ return Utils.performServerDelete(requestSpec, responseSpec, CODE_URL
+ + "/" + codeId + "?" + Utils.TENANT_IDENTIFIER,
+ jsonAttributeToGetback);
- }
+ }
- public static Object createCodeValue(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final String codeValueName, final Integer position, final String jsonAttributeToGetback) {
- String description = null;
- return createCodeValue(requestSpec, responseSpec, codeId, codeValueName, description, position, jsonAttributeToGetback);
- }
+ public static Object createCodeValue(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String codeValueName, final Integer position,
+ final String jsonAttributeToGetback) {
+ String description = null;
+ return createCodeValue(requestSpec, responseSpec, codeId,
+ codeValueName, description, position, jsonAttributeToGetback);
+ }
- public static Object createCodeValue(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final String codeValueName, final String description, final Integer position,
- final String jsonAttributeToGetback) {
+ public static Object createCodeValue(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String codeValueName, final String description,
+ final Integer position, final String jsonAttributeToGetback) {
- return Utils.performServerPost(requestSpec, responseSpec, CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "?"
- + Utils.TENANT_IDENTIFIER, getTestCodeValueAsJSON(codeValueName, description, position), jsonAttributeToGetback);
- }
+ return Utils.performServerPost(requestSpec, responseSpec,
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "?"
+ + Utils.TENANT_IDENTIFIER,
+ getTestCodeValueAsJSON(codeValueName, description, position),
+ jsonAttributeToGetback);
+ }
- public static List> getCodeValuesForCode(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final String jsonAttributeToGetback) {
+ public static List> getCodeValuesForCode(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final String jsonAttributeToGetback) {
- return Utils.performServerGet(requestSpec, responseSpec, CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "?"
- + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback);
- }
+ return Utils.performServerGet(requestSpec, responseSpec,
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "?"
+ + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback);
+ }
- public static Object getCodeValueById(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final Integer codeValueId, final String jsonAttributeToGetback) {
+ public static Object getCodeValueById(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final Integer codeValueId, final String jsonAttributeToGetback) {
- return Utils.performServerGet(requestSpec, responseSpec,
- CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/" + codeValueId.toString() + "?" + Utils.TENANT_IDENTIFIER,
- jsonAttributeToGetback);
- }
+ return Utils.performServerGet(requestSpec, responseSpec,
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/"
+ + codeValueId.toString() + "?"
+ + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback);
+ }
- public static Object deleteCodeValueById(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final Integer codeValueId, final String jsonAttributeToGetback) {
+ public static Object deleteCodeValueById(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final Integer codeValueId, final String jsonAttributeToGetback) {
- return Utils.performServerDelete(requestSpec, responseSpec, CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/"
- + codeValueId.toString() + "?" + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback);
- }
+ return Utils.performServerDelete(requestSpec, responseSpec,
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/"
+ + codeValueId.toString() + "?"
+ + Utils.TENANT_IDENTIFIER, jsonAttributeToGetback);
+ }
- public static Object updateCodeValue(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final Integer codeValueId, final String codeValueName, final Integer position,
- final String jsonAttributeToGetback) {
- String description = null;
- return updateCodeValue(requestSpec, responseSpec, codeId, codeValueId, codeValueName, description, position, jsonAttributeToGetback);
- }
+ public static Object updateCodeValue(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final Integer codeValueId, final String codeValueName,
+ final Integer position, final String jsonAttributeToGetback) {
+ String description = null;
+ return updateCodeValue(requestSpec, responseSpec, codeId, codeValueId,
+ codeValueName, description, position, jsonAttributeToGetback);
+ }
- public static Object updateCodeValue(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
- final Integer codeId, final Integer codeValueId, final String codeValueName, final String description, final Integer position,
- final String jsonAttributeToGetback) {
+ public static Object updateCodeValue(
+ final RequestSpecification requestSpec,
+ final ResponseSpecification responseSpec, final Integer codeId,
+ final Integer codeValueId, final String codeValueName,
+ final String description, final Integer position,
+ final String jsonAttributeToGetback) {
- return Utils.performServerPut(requestSpec, responseSpec, CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/" + codeValueId
- + "?" + Utils.TENANT_IDENTIFIER, getTestCodeValueAsJSON(codeValueName, description, position), jsonAttributeToGetback);
- }
+ return Utils.performServerPut(requestSpec, responseSpec,
+ CODE_VALUE_URL.replace("[codeId]", codeId.toString()) + "/"
+ + codeValueId + "?" + Utils.TENANT_IDENTIFIER,
+ getTestCodeValueAsJSON(codeValueName, description, position),
+ jsonAttributeToGetback);
+ }
}
\ No newline at end of file
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientApiConstants.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientApiConstants.java
index 367c78e6e..26248d6e5 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientApiConstants.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/api/ClientApiConstants.java
@@ -16,8 +16,8 @@ public class ClientApiConstants {
public static final String CLIENT_RESOURCE_NAME = "client";
public static final String CLIENT_CLOSURE_REASON = "ClientClosureReason";
public static final String CLIENT_ACTION_REASON = "ClientActionReason";
- public static final String CLIENT_REJECT_REASON = "ClientRejectReason";
- public static final String CLIENT_WITHDRAW_REASON = "ClientWithdrawReason";
+ public static final String CLIENT_REJECT_REASON = "ClientRejectionReason";
+ public static final String CLIENT_WITHDRAW_REASON = "ClientWithdrawalReason";
public static final String GENDER = "Gender";
@@ -46,10 +46,10 @@ public class ClientApiConstants {
public static final String closureDateParamName = "closureDate";
public static final String closureReasonIdParamName = "closureReasonId";
- public static final String rejectDateParamName = "rejectionDate";
- public static final String rejectReasonIdParamName ="rejectionReasonId";
- public static final String withdrawDateParamName = "withdrawalDate";
- public static final String withdrawReasonIdParamName ="withdrawalReasonId";
+ public static final String rejectionDateParamName = "rejectionDate";
+ public static final String rejectionReasonIdParamName ="rejectionReasonId";
+ public static final String withdrawalDateParamName = "withdrawalDate";
+ public static final String withdrawalReasonIdParamName ="withdrawalReasonId";
public static final String submittedOnDateParamName = "submittedOnDate";
public static final String savingsProductIdParamName = "savingsProductId";
@@ -115,8 +115,8 @@ public class ClientApiConstants {
public static final Set CLIENT_CLOSE_REQUEST_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,
dateFormatParamName, closureDateParamName, closureReasonIdParamName));
- public static final Set CLIENT_REJECT_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,dateFormatParamName,rejectDateParamName,rejectReasonIdParamName));
+ public static final Set CLIENT_REJECT_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,dateFormatParamName,rejectionDateParamName,rejectionReasonIdParamName));
- public static final Set CLIENT_WITHDRAW_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,dateFormatParamName,withdrawDateParamName,withdrawReasonIdParamName));
+ public static final Set CLIENT_WITHDRAW_DATA_PARAMETERS = new HashSet<>(Arrays.asList(localeParamName,dateFormatParamName,withdrawalDateParamName,withdrawalReasonIdParamName));
}
\ No newline at end of file
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientDataValidator.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientDataValidator.java
index cd2801c1f..b44ef65f4 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientDataValidator.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/data/ClientDataValidator.java
@@ -527,11 +527,11 @@ public final class ClientDataValidator {
final JsonElement element = command.parsedJson();
- final LocalDate rejectDate = this.fromApiJsonHelper.extractLocalDateNamed(ClientApiConstants.rejectDateParamName, element);
- baseDataValidator.reset().parameter(ClientApiConstants.rejectDateParamName).value(rejectDate).notNull();
+ final LocalDate rejectionDate = this.fromApiJsonHelper.extractLocalDateNamed(ClientApiConstants.rejectionDateParamName, element);
+ baseDataValidator.reset().parameter(ClientApiConstants.rejectionDateParamName).value(rejectionDate).notNull();
- final Long rejectReasonId = this.fromApiJsonHelper.extractLongNamed(ClientApiConstants.rejectReasonIdParamName, element);
- baseDataValidator.reset().parameter(ClientApiConstants.rejectReasonIdParamName).value(rejectReasonId).notNull()
+ final Long rejectionReasonId = this.fromApiJsonHelper.extractLongNamed(ClientApiConstants.rejectionReasonIdParamName, element);
+ baseDataValidator.reset().parameter(ClientApiConstants.rejectionReasonIdParamName).value(rejectionReasonId).notNull()
.longGreaterThanZero();
throwExceptionIfValidationWarningsExist(dataValidationErrors);
@@ -553,11 +553,11 @@ public final class ClientDataValidator {
final JsonElement element = command.parsedJson();
- final LocalDate withdrawDate = this.fromApiJsonHelper.extractLocalDateNamed(ClientApiConstants.withdrawDateParamName, element);
- baseDataValidator.reset().parameter(ClientApiConstants.withdrawDateParamName).value(withdrawDate).notNull();
+ final LocalDate withdrawalDate = this.fromApiJsonHelper.extractLocalDateNamed(ClientApiConstants.withdrawalDateParamName, element);
+ baseDataValidator.reset().parameter(ClientApiConstants.withdrawalDateParamName).value(withdrawalDate).notNull();
- final Long withdrawReasonId = this.fromApiJsonHelper.extractLongNamed(ClientApiConstants.withdrawReasonIdParamName, element);
- baseDataValidator.reset().parameter(ClientApiConstants.withdrawReasonIdParamName).value(withdrawReasonId).notNull()
+ final Long withdrawalReasonId = this.fromApiJsonHelper.extractLongNamed(ClientApiConstants.withdrawalReasonIdParamName, element);
+ baseDataValidator.reset().parameter(ClientApiConstants.withdrawalReasonIdParamName).value(withdrawalReasonId).notNull()
.longGreaterThanZero();
throwExceptionIfValidationWarningsExist(dataValidationErrors);
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java
index 383b7b756..d4c09d77b 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/domain/Client.java
@@ -139,11 +139,11 @@ public final class Client extends AbstractPersistable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "reject_reason_cv_id", nullable = true)
- private CodeValue rejectReason;
+ private CodeValue rejectionReason;
@Column(name = "rejectedon_date", nullable = true)
@Temporal(TemporalType.DATE)
- private Date rejectDate;
+ private Date rejectionDate;
@ManyToOne(optional = true)
@JoinColumn(name = "rejectedon_userid", nullable = true)
@@ -151,11 +151,11 @@ public final class Client extends AbstractPersistable {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "withdraw_reason_cv_id", nullable = true)
- private CodeValue withdrawReason;
+ private CodeValue withdrawalReason;
@Column(name = "withdrawn_on_date", nullable = true)
@Temporal(TemporalType.DATE)
- private Date withdrawDate;
+ private Date withdrawalDate;
@ManyToOne(optional = true)
@JoinColumn(name = "withdraw_on_userid", nullable = true)
@@ -866,22 +866,22 @@ public final class Client extends AbstractPersistable {
return dateOfBirth;
}
- public void reject(AppUser currentUser, CodeValue rejectReason, Date rejectDate) {
- this.rejectReason = rejectReason;
- this.rejectDate = rejectDate;
+ public void reject(AppUser currentUser, CodeValue rejectionReason, Date rejectionDate) {
+ this.rejectionReason = rejectionReason;
+ this.rejectionDate = rejectionDate;
this.rejectedBy = currentUser;
this.updatedBy = currentUser;
- this.updatedOnDate = rejectDate;
+ this.updatedOnDate = rejectionDate;
this.status = ClientStatus.REJECTED.getValue();
}
- public void withdraw(AppUser currentUser, CodeValue withdrawReason, Date withdrawDate) {
- this.withdrawReason = withdrawReason;
- this.withdrawDate = withdrawDate;
+ public void withdraw(AppUser currentUser, CodeValue withdrawalReason, Date withdrawalDate) {
+ this.withdrawalReason = withdrawalReason;
+ this.withdrawalDate = withdrawalDate;
this.withdrawnBy = currentUser;
this.updatedBy = currentUser;
- this.updatedOnDate = withdrawDate;
+ this.updatedOnDate = withdrawalDate;
this.status = ClientStatus.WITHDRAWN.getValue();
}
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
index eb8d50ad0..401092b03 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
@@ -604,22 +604,22 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
this.fromApiJsonDeserializer.validateRejection(command);
final Client client = this.clientRepository.findOneWithNotFoundDetection(entityId);
- final LocalDate rejectDate = command.localDateValueOfParameterNamed(ClientApiConstants.rejectDateParamName);
- final Long rejectReasonId = command.longValueOfParameterNamed(ClientApiConstants.rejectReasonIdParamName);
+ final LocalDate rejectionDate = command.localDateValueOfParameterNamed(ClientApiConstants.rejectionDateParamName);
+ final Long rejectionReasonId = command.longValueOfParameterNamed(ClientApiConstants.rejectionReasonIdParamName);
- final CodeValue rejectReason = this.codeValueRepository.findOneByCodeNameAndIdWithNotFoundDetection(
- ClientApiConstants.CLIENT_REJECT_REASON, rejectReasonId);
+ final CodeValue rejectionReason = this.codeValueRepository.findOneByCodeNameAndIdWithNotFoundDetection(
+ ClientApiConstants.CLIENT_REJECT_REASON, rejectionReasonId);
if (client.isNotPending()) {
final String errorMessage = "Only clients pending activation may be withdrawn.";
throw new InvalidClientStateTransitionException("rejection", "on.account.not.in.pending.activation.status", errorMessage,
- rejectDate, client.getSubmittedOnDate());
- } else if (client.getSubmittedOnDate().isAfter(rejectDate)) {
+ rejectionDate, client.getSubmittedOnDate());
+ } else if (client.getSubmittedOnDate().isAfter(rejectionDate)) {
final String errorMessage = "The client rejection date cannot be before the client submitted date.";
throw new InvalidClientStateTransitionException("rejection", "date.cannot.before.client.submitted.date", errorMessage,
- rejectDate, client.getSubmittedOnDate());
+ rejectionDate, client.getSubmittedOnDate());
}
- client.reject(currentUser, rejectReason, rejectDate.toDate());
+ client.reject(currentUser, rejectionReason, rejectionDate.toDate());
this.clientRepository.saveAndFlush(client);
return new CommandProcessingResultBuilder() //
@@ -635,22 +635,22 @@ public class ClientWritePlatformServiceJpaRepositoryImpl implements ClientWriteP
this.fromApiJsonDeserializer.validateWithdrawn(command);
final Client client = this.clientRepository.findOneWithNotFoundDetection(entityId);
- final LocalDate withdrawDate = command.localDateValueOfParameterNamed(ClientApiConstants.withdrawDateParamName);
- final Long withdrawReasonId = command.longValueOfParameterNamed(ClientApiConstants.withdrawReasonIdParamName);
+ final LocalDate withdrawalDate = command.localDateValueOfParameterNamed(ClientApiConstants.withdrawalDateParamName);
+ final Long withdrawalReasonId = command.longValueOfParameterNamed(ClientApiConstants.withdrawalReasonIdParamName);
- final CodeValue withdrawReason = this.codeValueRepository.findOneByCodeNameAndIdWithNotFoundDetection(
- ClientApiConstants.CLIENT_WITHDRAW_REASON, withdrawReasonId);
+ final CodeValue withdrawalReason = this.codeValueRepository.findOneByCodeNameAndIdWithNotFoundDetection(
+ ClientApiConstants.CLIENT_WITHDRAW_REASON, withdrawalReasonId);
if (client.isNotPending()) {
final String errorMessage = "Only clients pending activation may be withdrawn.";
throw new InvalidClientStateTransitionException("withdrawal", "on.account.not.in.pending.activation.status", errorMessage,
- withdrawDate, client.getSubmittedOnDate());
- } else if (client.getSubmittedOnDate().isAfter(withdrawDate)) {
+ withdrawalDate, client.getSubmittedOnDate());
+ } else if (client.getSubmittedOnDate().isAfter(withdrawalDate)) {
final String errorMessage = "The client withdrawal date cannot be before the client submitted date.";
throw new InvalidClientStateTransitionException("withdrawal", "date.cannot.before.client.submitted.date", errorMessage,
- withdrawDate, client.getSubmittedOnDate());
+ withdrawalDate, client.getSubmittedOnDate());
}
- client.withdraw(currentUser, withdrawReason, withdrawDate.toDate());
+ client.withdraw(currentUser, withdrawalReason, withdrawalDate.toDate());
this.clientRepository.saveAndFlush(client);
return new CommandProcessingResultBuilder() //