You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ad...@apache.org on 2023/04/22 21:26:51 UTC
[fineract] branch develop updated: FINERACT-1724 - Remove Restriction from faurd mark
This is an automated email from the ASF dual-hosted git repository.
adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new 1d86a8f0c FINERACT-1724 - Remove Restriction from faurd mark
1d86a8f0c is described below
commit 1d86a8f0cb5e2f050bee763df822fff4bd02321c
Author: Janos Haber <ja...@finesolution.hu>
AuthorDate: Fri Apr 21 15:38:47 2023 +0200
FINERACT-1724 - Remove Restriction from faurd mark
---
.../LoanWritePlatformServiceJpaRepositoryImpl.java | 5 -
.../integrationtests/LoanAccountFraudTest.java | 105 +++++++++++----------
2 files changed, 57 insertions(+), 53 deletions(-)
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
index b5e6145eb..fa0cee287 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
@@ -2521,11 +2521,6 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf
Loan loan = this.loanAssembler.assembleFrom(loanId);
final Map<String, Object> changes = new LinkedHashMap<>();
- if (!loan.isOpen()) {
- throw new GeneralPlatformDomainRuleException("error.msg.loan.mark.as.fraud.not.allowed",
- "Loan Id: " + loanId + " mark as fraud is not allowed as loan status is not active", loan.getStatus().getCode());
- }
-
final boolean fraud = command.booleanPrimitiveValueOfParameterNamed(LoanApiConstants.FRAUD_ATTRIBUTE_NAME);
if (loan.isFraud() != fraud) {
loan.markAsFraud(fraud);
diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanAccountFraudTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanAccountFraudTest.java
index d4e2e0b8a..5ddb0972e 100644
--- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanAccountFraudTest.java
+++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/LoanAccountFraudTest.java
@@ -32,7 +32,10 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.client.models.GetLoanProductsProductIdResponse;
import org.apache.fineract.client.models.GetLoansLoanIdResponse;
import org.apache.fineract.client.models.PutLoansLoanIdResponse;
+import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
+import org.apache.fineract.integrationtests.common.BusinessDateHelper;
import org.apache.fineract.integrationtests.common.ClientHelper;
+import org.apache.fineract.integrationtests.common.GlobalConfigurationHelper;
import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder;
import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
@@ -69,54 +72,60 @@ public class LoanAccountFraudTest {
@Test
public void testMarkLoanAsFraud() {
- final String command = "markAsFraud";
- // Client and Loan account creation
- final Integer loanId = createAccounts(15, 1);
-
- GetLoansLoanIdResponse getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
- assertNotNull(getLoansLoanIdResponse);
-
- // Default values Not Null and False
- assertNotNull(getLoansLoanIdResponse.getFraud());
- assertEquals(Boolean.FALSE, getLoansLoanIdResponse.getFraud());
-
- String payload = loanTransactionHelper.getLoanFraudPayloadAsJSON("fraud", "true");
- // Send the request expecting an error because the Loan is not active yet
- PutLoansLoanIdResponse putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload,
- this.responseSpecError);
-
- String statusCode = getLoansLoanIdResponse.getStatus().getCode();
- log.info("Loan with Id {} is with Status {}", getLoansLoanIdResponse.getId(), statusCode);
-
- // Approve the Loan active
- approveAndDisburseLoan(loanId, this.operationDate, this.amountVal);
-
- // Default values Not Null and False
- getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
- assertNotNull(getLoansLoanIdResponse);
- assertNotNull(getLoansLoanIdResponse.getFraud());
- assertEquals(Boolean.FALSE, getLoansLoanIdResponse.getFraud());
- statusCode = getLoansLoanIdResponse.getStatus().getCode();
- log.info("Loan with Id {} is with Status {}", getLoansLoanIdResponse.getId(), statusCode);
-
- // Mark On the Fraud
- putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload, this.responseSpec);
- assertNotNull(putLoansLoanIdResponse);
-
- getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
- assertNotNull(getLoansLoanIdResponse);
- assertNotNull(getLoansLoanIdResponse.getFraud());
- assertEquals(Boolean.TRUE, getLoansLoanIdResponse.getFraud());
-
- // Mark Off the Fraud
- payload = loanTransactionHelper.getLoanFraudPayloadAsJSON("fraud", "false");
- putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload, this.responseSpec);
- assertNotNull(putLoansLoanIdResponse);
-
- getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
- assertNotNull(getLoansLoanIdResponse);
- assertNotNull(getLoansLoanIdResponse.getFraud());
- assertEquals(Boolean.FALSE, getLoansLoanIdResponse.getFraud());
+ try {
+ GlobalConfigurationHelper.updateIsBusinessDateEnabled(requestSpec, responseSpec, Boolean.TRUE);
+ BusinessDateHelper.updateBusinessDate(requestSpec, responseSpec, BusinessDateType.BUSINESS_DATE, todaysDate);
+ final String command = "markAsFraud";
+ // Client and Loan account creation
+ final Integer loanId = createAccounts(15, 1);
+
+ GetLoansLoanIdResponse getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
+ assertNotNull(getLoansLoanIdResponse);
+
+ // Default values Not Null and False
+ assertNotNull(getLoansLoanIdResponse.getFraud());
+ assertEquals(Boolean.FALSE, getLoansLoanIdResponse.getFraud());
+
+ String payload = loanTransactionHelper.getLoanFraudPayloadAsJSON("fraud", "true");
+ // Send the request, not expecting any errors (because only open loan restriction removed)
+ PutLoansLoanIdResponse putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload,
+ this.responseSpec);
+
+ String statusCode = getLoansLoanIdResponse.getStatus().getCode();
+ log.info("Loan with Id {} is with Status {}", getLoansLoanIdResponse.getId(), statusCode);
+
+ // Approve the Loan active
+ approveAndDisburseLoan(loanId, this.operationDate, this.amountVal);
+
+ // Default values Not Null and False
+ getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
+ assertNotNull(getLoansLoanIdResponse);
+ assertNotNull(getLoansLoanIdResponse.getFraud());
+ assertEquals(Boolean.TRUE, getLoansLoanIdResponse.getFraud());
+ statusCode = getLoansLoanIdResponse.getStatus().getCode();
+ log.info("Loan with Id {} is with Status {}", getLoansLoanIdResponse.getId(), statusCode);
+
+ // Mark On the Fraud
+ putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload, this.responseSpec);
+ assertNotNull(putLoansLoanIdResponse);
+
+ getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
+ assertNotNull(getLoansLoanIdResponse);
+ assertNotNull(getLoansLoanIdResponse.getFraud());
+ assertEquals(Boolean.TRUE, getLoansLoanIdResponse.getFraud());
+
+ // Mark Off the Fraud
+ payload = loanTransactionHelper.getLoanFraudPayloadAsJSON("fraud", "false");
+ putLoansLoanIdResponse = loanTransactionHelper.modifyLoanCommand(loanId, command, payload, this.responseSpec);
+ assertNotNull(putLoansLoanIdResponse);
+
+ getLoansLoanIdResponse = loanTransactionHelper.getLoan(requestSpec, responseSpec, loanId);
+ assertNotNull(getLoansLoanIdResponse);
+ assertNotNull(getLoansLoanIdResponse.getFraud());
+ assertEquals(Boolean.FALSE, getLoansLoanIdResponse.getFraud());
+ } finally {
+ GlobalConfigurationHelper.updateIsBusinessDateEnabled(requestSpec, responseSpec, Boolean.FALSE);
+ }
}
private Integer createAccounts(final Integer daysToSubtract, final Integer numberOfRepayments) {