FINERACT-2413: e2e tests for re-amortization forbidden for charged-ff or written-off loan
This commit is contained in:
committed by
Adam Saghy
parent
d263fec31d
commit
a738c268d7
+12
@@ -970,4 +970,16 @@ public final class ErrorMessageHelper {
|
||||
public static String reAgeClosedLoanFailure() {
|
||||
return "Loan reaging can only be done on active loans";
|
||||
}
|
||||
|
||||
public static String reAmortizeChargedOffLoanFailure() {
|
||||
return "Loan re-amortization is not allowed on charged-off loan.";
|
||||
}
|
||||
|
||||
public static String reAmortizeContractTerminatedLoanFailure() {
|
||||
return "Loan re-amortization is not allowed on contract terminated loan.";
|
||||
}
|
||||
|
||||
public static String reAmortizeClosedLoanFailure() {
|
||||
return "Loan re-amortization can only be done on active loans";
|
||||
}
|
||||
}
|
||||
|
||||
+53
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.apache.fineract.test.stepdef.loan;
|
||||
|
||||
import static org.apache.fineract.client.feign.util.FeignCalls.fail;
|
||||
import static org.apache.fineract.client.feign.util.FeignCalls.ok;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@@ -34,6 +35,7 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.fineract.client.feign.FineractFeignClient;
|
||||
import org.apache.fineract.client.feign.util.CallFailedRuntimeException;
|
||||
import org.apache.fineract.client.models.LoanScheduleData;
|
||||
import org.apache.fineract.client.models.LoanSchedulePeriodData;
|
||||
import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest;
|
||||
@@ -103,6 +105,57 @@ public class LoanReAmortizationStepDef extends AbstractStepDef {
|
||||
testContext().set(TestContextKey.LOAN_REAMORTIZATION_UNDO_RESPONSE, response);
|
||||
}
|
||||
|
||||
@When("Admin creates a Loan re-amortization transaction on current business date is forbidden as loan was charged-off")
|
||||
public void reAmortizationChargedOffLoanFailure() {
|
||||
reAmortizationFailure(ErrorMessageHelper.reAmortizeChargedOffLoanFailure());
|
||||
}
|
||||
|
||||
@When("Admin creates re-amortization trn on current business date with reAmortizationInterestHandling {string} is forbidden as loan was charged-off")
|
||||
public void reAmortizationWithInterestHandlingChargedOffLoanFailure(final String reAmortizationInterestHandling) {
|
||||
reAmortizationInterestHandlingLoanLoanFailure(reAmortizationInterestHandling, ErrorMessageHelper.reAmortizeChargedOffLoanFailure());
|
||||
}
|
||||
|
||||
@When("Admin creates a Loan re-amortization transaction on current business date is forbidden as loan was contract terminated")
|
||||
public void reAmortizationContractTerminatedLoanFailure() {
|
||||
reAmortizationFailure(ErrorMessageHelper.reAmortizeContractTerminatedLoanFailure());
|
||||
}
|
||||
|
||||
@When("Admin creates re-amortization trn on current business date with reAmortizationInterestHandling {string} is forbidden as loan was contract terminated")
|
||||
public void reAmortizationWithInterestHandlingContractTerminatedLoanFailure(final String reAmortizationInterestHandling) {
|
||||
reAmortizationInterestHandlingLoanLoanFailure(reAmortizationInterestHandling,
|
||||
ErrorMessageHelper.reAmortizeContractTerminatedLoanFailure());
|
||||
|
||||
}
|
||||
|
||||
@When("Admin creates a Loan re-amortization transaction on current business date is forbidden as loan was closed")
|
||||
public void reAmortizationClosedLoanFailure() {
|
||||
reAmortizationFailure(ErrorMessageHelper.reAmortizeClosedLoanFailure());
|
||||
}
|
||||
|
||||
@When("Admin creates re-amortization trn on current business date with reAmortizationInterestHandling {string} is forbidden as loan was closed")
|
||||
public void reAmortizationWithInterestHandlingClosedLoanFailure(final String reAmortizationInterestHandling) {
|
||||
reAmortizationInterestHandlingLoanLoanFailure(reAmortizationInterestHandling, ErrorMessageHelper.reAmortizeClosedLoanFailure());
|
||||
}
|
||||
|
||||
public void reAmortizationFailure(final String errorMessage) {
|
||||
reAmortizationInterestHandlingLoanLoanFailure(null, errorMessage);
|
||||
}
|
||||
|
||||
public void reAmortizationInterestHandlingLoanLoanFailure(final String reAmortizationInterestHandling, final String errorMessage) {
|
||||
final PostLoansResponse loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
final Long loanId = loanResponse.getLoanId();
|
||||
|
||||
PostLoansLoanIdTransactionsRequest reAmortizationRequest = LoanRequestFactory.defaultLoanReAmortizationRequest();
|
||||
if (reAmortizationInterestHandling != null) {
|
||||
reAmortizationRequest.reAmortizationInterestHandling(reAmortizationInterestHandling);
|
||||
}
|
||||
|
||||
CallFailedRuntimeException exception = fail(() -> fineractClient.loanTransactions().executeLoanTransaction(loanId,
|
||||
reAmortizationRequest, Map.of("command", "reAmortize")));
|
||||
assertThat(exception.getStatus()).as(ErrorMessageHelper.dateFailureErrorCodeMsg()).isEqualTo(403);
|
||||
assertThat(exception.getDeveloperMessage()).contains(errorMessage);
|
||||
}
|
||||
|
||||
@Then("LoanReAmortizeBusinessEvent is created")
|
||||
public void checkLoanReAmortizeBusinessEventCreated() {
|
||||
PostLoansResponse loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
|
||||
|
||||
Reference in New Issue
Block a user