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
commit 1b3217be39cb645ade30cd715a7359c35ede53ae Author: Peter Kovacs <[email protected]> AuthorDate: Wed Nov 12 13:31:50 2025 +0100 FINERACT-2326: Loan contract termination same disbursement date - E2E --- .../org/apache/fineract/test/stepdef/loan/LoanStepDef.java | 14 ++++++++++++++ .../resources/features/LoanContractTermination.feature | 4 ++-- .../loanschedule/domain/LoanApplicationTerms.java | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java index b9272f355b..fd97188e11 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java @@ -5341,6 +5341,20 @@ public class LoanStepDef extends AbstractStepDef { .isEqualTo(transactionId); } + @And("Admin successfully terminates loan contract - no event check") + public void makeLoanContractTerminationNoEventCheck() throws IOException { + final Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE); + assert loanResponse.body() != null; + final long loanId = loanResponse.body().getLoanId(); + + final PostLoansLoanIdRequest contractTerminationRequest = LoanRequestFactory.defaultLoanContractTerminationRequest(); + + final Response<PostLoansLoanIdResponse> loanContractTerminationResponse = loansApi + .stateTransitions(loanId, contractTerminationRequest, "contractTermination").execute(); + testContext().set(TestContextKey.LOAN_CONTRACT_TERMINATION_RESPONSE, loanContractTerminationResponse); + ErrorHelper.checkSuccessfulApiCall(loanContractTerminationResponse); + } + @And("Admin successfully undoes loan contract termination") public void undoLoanContractTermination() throws IOException { final Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE); diff --git a/fineract-e2e-tests-runner/src/test/resources/features/LoanContractTermination.feature b/fineract-e2e-tests-runner/src/test/resources/features/LoanContractTermination.feature index 641db7d926..920a71f49d 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/LoanContractTermination.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanContractTermination.feature @@ -1327,7 +1327,7 @@ Feature: Contract Termination | LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_CONTRACT_TERMINATION | 01 January 2025 | 100 | 7 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 4 | MONTHS | 1 | MONTHS | 4 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | And Admin successfully approves the loan on "01 January 2025" with "100" amount and expected disbursement date on "01 January 2025" And Admin successfully disburse the loan on "01 January 2025" with "100" EUR transaction amount - And Admin successfully terminates loan contract + And Admin successfully terminates loan contract - no event check Then Loan Repayment schedule has 1 periods, with the following data for periods: | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | | | | 01 January 2025 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | @@ -1349,7 +1349,7 @@ Feature: Contract Termination | LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_CONTRACT_TERMINATION_INT_RECOGNITION | 01 January 2025 | 100 | 7 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 4 | MONTHS | 1 | MONTHS | 4 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | And Admin successfully approves the loan on "01 January 2025" with "100" amount and expected disbursement date on "01 January 2025" And Admin successfully disburse the loan on "01 January 2025" with "100" EUR transaction amount - And Admin successfully terminates loan contract + And Admin successfully terminates loan contract - no event check Then Loan Repayment schedule has 1 periods, with the following data for periods: | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | | | | 01 January 2025 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | diff --git a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java index 77a4e43865..560aa83d22 100644 --- a/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java +++ b/fineract-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/LoanApplicationTerms.java @@ -2255,4 +2255,5 @@ public final class LoanApplicationTerms { public void updateVariationDays(final long daysToAdd) { this.variationDays += daysToAdd; } + }
