From e0d72799b96a6eed97e60568e88080c90df36126 Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Fri, 22 Nov 2024 17:53:37 +0100 Subject: [PATCH] FINERACT-2070: COB business step order --- .../test/helper/WorkFlowJobHelper.java | 44 ++++- .../BaseFineractInitializerConfiguration.java | 6 +- .../initializer/base/FineractInitializer.java | 7 - .../CobBusinessStepInitializerStep.java | 30 +-- .../stepdef/common/BusinessStepStepDef.java | 178 ------------------ .../fineract/test/support/TestContextKey.java | 1 - .../src/test/resources/features/0_COB.feature | 2 - .../features/AssetExternalization.feature | 96 ---------- .../resources/features/EMICalculation.feature | 70 +------ .../src/test/resources/features/Loan.feature | 6 - .../resources/features/LoanRepayment.feature | 2 - 11 files changed, 46 insertions(+), 396 deletions(-) delete mode 100644 fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BusinessStepStepDef.java diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/WorkFlowJobHelper.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/WorkFlowJobHelper.java index c77b2e92177..d220f01e393 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/WorkFlowJobHelper.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/helper/WorkFlowJobHelper.java @@ -21,29 +21,57 @@ import java.io.IOException; import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.fineract.client.models.BusinessStep; import org.apache.fineract.client.models.GetBusinessStepConfigResponse; +import org.apache.fineract.client.models.UpdateBusinessStepConfigRequest; import org.apache.fineract.client.services.BusinessStepConfigurationApi; -import org.apache.fineract.test.support.TestContext; -import org.apache.fineract.test.support.TestContextKey; import org.springframework.stereotype.Component; import retrofit2.Response; @RequiredArgsConstructor @Component +@Slf4j public class WorkFlowJobHelper { private static final String WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS = "LOAN_CLOSE_OF_BUSINESS"; private final BusinessStepConfigurationApi businessStepConfigurationApi; - public void saveOriginalCOBWorkflowJobBusinessStepList() throws IOException { - Response businessStepConfigResponse = businessStepConfigurationApi + public void setWorkflowJobs() throws IOException { + List businessSteps = List.of(new BusinessStep().stepName("APPLY_CHARGE_TO_OVERDUE_LOANS").order(1L), // + new BusinessStep().stepName("LOAN_DELINQUENCY_CLASSIFICATION").order(2L), // + new BusinessStep().stepName("LOAN_INTEREST_RECALCULATION").order(3L), // + new BusinessStep().stepName("ADD_PERIODIC_ACCRUAL_ENTRIES").order(4L), // + new BusinessStep().stepName("ACCRUAL_ACTIVITY_POSTING").order(5L), // + new BusinessStep().stepName("CHECK_LOAN_REPAYMENT_DUE").order(6L), // + new BusinessStep().stepName("CHECK_LOAN_REPAYMENT_OVERDUE").order(7L), // + new BusinessStep().stepName("CHECK_DUE_INSTALLMENTS").order(8L), // + new BusinessStep().stepName("UPDATE_LOAN_ARREARS_AGING").order(9L), // + new BusinessStep().stepName("EXTERNAL_ASSET_OWNER_TRANSFER").order(10L)// + ); + UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); + Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) + .execute(); + ErrorHelper.checkSuccessfulApiCall(response); + // --- log changes --- + logChanges(); + } + + private void logChanges() throws IOException { + // --- log changes --- + Response changesResponse = businessStepConfigurationApi .retrieveAllConfiguredBusinessStep(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS).execute(); - ErrorHelper.checkSuccessfulApiCall(businessStepConfigResponse); - List businessSteps = businessStepConfigResponse.body().getBusinessSteps(); - businessSteps.sort(Comparator.comparingLong(BusinessStep::getOrder)); - TestContext.GLOBAL.set(TestContextKey.ORIGINAL_COB_WORKFLOW_JOB_BUSINESS_STEP_LIST, businessSteps); + List businessStepsChanged = changesResponse.body().getBusinessSteps(); + List changes = businessStepsChanged// + .stream()// + .sorted(Comparator.comparingLong(BusinessStep::getOrder))// + .map(BusinessStep::getStepName)// + .collect(Collectors.toList());// + + log.debug("Business steps has been CHANGED to the following:"); + changes.forEach(e -> log.debug(e)); } } diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java index afb74e3ecb9..f1a624e9705 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java @@ -21,7 +21,6 @@ import java.util.List; import org.apache.fineract.test.config.CacheConfiguration; import org.apache.fineract.test.helper.BusinessDateHelper; -import org.apache.fineract.test.helper.WorkFlowJobHelper; import org.apache.fineract.test.initializer.global.FineractGlobalInitializerStep; import org.apache.fineract.test.initializer.scenario.FineractScenarioInitializerStep; import org.apache.fineract.test.initializer.suite.FineractSuiteInitializerStep; @@ -40,8 +39,7 @@ public class BaseFineractInitializerConfiguration { @Bean public FineractInitializer fineractInitializer(List globalInitializerSteps, List suiteInitializerSteps, List scenarioInitializerSteps, - BusinessDateHelper businessDateHelper, WorkFlowJobHelper workFlowJobHelper) { - return new FineractInitializer(globalInitializerSteps, suiteInitializerSteps, scenarioInitializerSteps, businessDateHelper, - workFlowJobHelper); + BusinessDateHelper businessDateHelper) { + return new FineractInitializer(globalInitializerSteps, suiteInitializerSteps, scenarioInitializerSteps, businessDateHelper); } } diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java index a67ce2125bf..d08129406f3 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java @@ -23,7 +23,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.fineract.test.helper.BusinessDateHelper; -import org.apache.fineract.test.helper.WorkFlowJobHelper; import org.apache.fineract.test.initializer.global.FineractGlobalInitializerStep; import org.apache.fineract.test.initializer.scenario.FineractScenarioInitializerStep; import org.apache.fineract.test.initializer.suite.FineractSuiteInitializerStep; @@ -39,7 +38,6 @@ public class FineractInitializer implements InitializingBean { private final List suiteInitializerSteps; private final List scenarioInitializerSteps; private final BusinessDateHelper businessDateHelper; - private final WorkFlowJobHelper workFlowJobHelper; @Override public void afterPropertiesSet() throws Exception { @@ -63,7 +61,6 @@ public void setupGlobalDefaults() throws Exception { for (FineractGlobalInitializerStep initializerStep : globalInitializerSteps) { initializerStep.initialize(); } - businessDateHelper.setBusinessDateToday(); } @@ -71,16 +68,13 @@ public void setupDefaultsForSuite() throws Exception { for (FineractSuiteInitializerStep initializerStep : suiteInitializerSteps) { initializerStep.initializeForSuite(); } - businessDateHelper.setBusinessDateToday(); - workFlowJobHelper.saveOriginalCOBWorkflowJobBusinessStepList(); } public void setupDefaultsForScenario() throws Exception { for (FineractScenarioInitializerStep scenarioInitializerStep : scenarioInitializerSteps) { scenarioInitializerStep.initializeForScenario(); } - businessDateHelper.setBusinessDateToday(); } @@ -88,7 +82,6 @@ public void resetDefaultsAfterSuite() throws Exception { for (FineractSuiteInitializerStep initializerStep : suiteInitializerSteps) { initializerStep.resetAfterSuite(); } - businessDateHelper.setBusinessDateToday(); } } diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/CobBusinessStepInitializerStep.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/CobBusinessStepInitializerStep.java index 4167d36cc2c..b5f08f40ebd 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/CobBusinessStepInitializerStep.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/CobBusinessStepInitializerStep.java @@ -18,42 +18,18 @@ */ package org.apache.fineract.test.initializer.global; -import java.util.Comparator; -import java.util.List; import lombok.RequiredArgsConstructor; -import org.apache.fineract.client.models.BusinessStep; -import org.apache.fineract.client.models.GetBusinessStepConfigResponse; -import org.apache.fineract.client.models.UpdateBusinessStepConfigRequest; -import org.apache.fineract.client.services.BusinessStepConfigurationApi; -import org.apache.fineract.test.helper.ErrorHelper; +import org.apache.fineract.test.helper.WorkFlowJobHelper; import org.springframework.stereotype.Component; -import retrofit2.Response; @RequiredArgsConstructor @Component public class CobBusinessStepInitializerStep implements FineractGlobalInitializerStep { - private static final String WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS = "LOAN_CLOSE_OF_BUSINESS"; - private static final String BUSINESS_STEP_NAME_ACCRUAL_ACTIVITY_POSTING = "ACCRUAL_ACTIVITY_POSTING"; - private final BusinessStepConfigurationApi businessStepConfigurationApi; + private final WorkFlowJobHelper workFlowJobHelper; @Override public void initialize() throws Exception { - // --- Adding ACCRUAL_ACTIVITY_POSTING to default COB steps --- - Response businessStepConfigResponse = businessStepConfigurationApi - .retrieveAllConfiguredBusinessStep(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS).execute(); - ErrorHelper.checkSuccessfulApiCall(businessStepConfigResponse); - List businessSteps = businessStepConfigResponse.body().getBusinessSteps(); - businessSteps.sort(Comparator.comparingLong(BusinessStep::getOrder)); - Long lastOrder = businessSteps.get(businessSteps.size() - 1).getOrder(); - - BusinessStep accrualActivityPosting = new BusinessStep().stepName(BUSINESS_STEP_NAME_ACCRUAL_ACTIVITY_POSTING).order(lastOrder + 1); - businessSteps.add(accrualActivityPosting); - - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); + workFlowJobHelper.setWorkflowJobs(); } } diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BusinessStepStepDef.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BusinessStepStepDef.java deleted file mode 100644 index 554999713c1..00000000000 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BusinessStepStepDef.java +++ /dev/null @@ -1,178 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.fineract.test.stepdef.common; - -import io.cucumber.java.en.Given; -import io.cucumber.java.en.Then; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; -import lombok.extern.slf4j.Slf4j; -import org.apache.fineract.client.models.BusinessStep; -import org.apache.fineract.client.models.GetBusinessStepConfigResponse; -import org.apache.fineract.client.models.UpdateBusinessStepConfigRequest; -import org.apache.fineract.client.services.BusinessStepConfigurationApi; -import org.apache.fineract.test.data.CobBusinessStep; -import org.apache.fineract.test.helper.ErrorHelper; -import org.apache.fineract.test.stepdef.AbstractStepDef; -import org.apache.fineract.test.support.TestContext; -import org.apache.fineract.test.support.TestContextKey; -import org.springframework.beans.factory.annotation.Autowired; -import retrofit2.Response; - -@Slf4j -public class BusinessStepStepDef extends AbstractStepDef { - - private static final String WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS = "LOAN_CLOSE_OF_BUSINESS"; - private static final String BUSINESS_STEP_NAME_APPLY_CHARGE_TO_OVERDUE_LOANS = "APPLY_CHARGE_TO_OVERDUE_LOANS"; - private static final String BUSINESS_STEP_NAME_LOAN_DELINQUENCY_CLASSIFICATION = "LOAN_DELINQUENCY_CLASSIFICATION"; - private static final String BUSINESS_STEP_NAME_CHECK_LOAN_REPAYMENT_DUE = "CHECK_LOAN_REPAYMENT_DUE"; - private static final String BUSINESS_STEP_NAME_CHECK_LOAN_REPAYMENT_OVERDUE = "CHECK_LOAN_REPAYMENT_OVERDUE"; - private static final String BUSINESS_STEP_NAME_UPDATE_LOAN_ARREARS_AGING = "UPDATE_LOAN_ARREARS_AGING"; - private static final String BUSINESS_STEP_NAME_ADD_PERIODIC_ACCRUAL_ENTRIES = "ADD_PERIODIC_ACCRUAL_ENTRIES"; - private static final String BUSINESS_STEP_NAME_EXTERNAL_ASSET_OWNER_TRANSFER = "EXTERNAL_ASSET_OWNER_TRANSFER"; - private static final String BUSINESS_STEP_NAME_CHECK_DUE_INSTALLMENTS = "CHECK_DUE_INSTALLMENTS"; - private static final String BUSINESS_STEP_NAME_ACCRUAL_ACTIVITY_POSTING = "ACCRUAL_ACTIVITY_POSTING"; - private static final List ORIGINAL_COB_BUSINESS_STEPS = TestContext.GLOBAL - .get(TestContextKey.ORIGINAL_COB_WORKFLOW_JOB_BUSINESS_STEP_LIST); - - @Autowired - private BusinessStepConfigurationApi businessStepConfigurationApi; - - @Given("Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow") - public void putExternalAssetOwnerTransferJobInCOB() throws IOException { - List businessSteps = new ArrayList<>(ORIGINAL_COB_BUSINESS_STEPS); - Long lastOrder = businessSteps.get(businessSteps.size() - 1).getOrder(); - - BusinessStep externalAssetOwnerTransfer = new BusinessStep().stepName(BUSINESS_STEP_NAME_EXTERNAL_ASSET_OWNER_TRANSFER) - .order(lastOrder + 1); - businessSteps.add(externalAssetOwnerTransfer); - - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); - - // --- log changes --- - logChanges(); - } - - @Then("Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow") - public void removeExternalAssetOwnerTransferJobInCOB() throws IOException { - setBackBusinessStepsToOriginal(); - } - - @Given("Admin puts CHECK_DUE_INSTALLMENTS job into LOAN_CLOSE_OF_BUSINESS workflow") - public void putCheckDueInstallmentsJobInCOB() throws IOException { - List businessSteps = new ArrayList<>(ORIGINAL_COB_BUSINESS_STEPS); - Long lastOrder = businessSteps.get(businessSteps.size() - 1).getOrder(); - - BusinessStep checkDueInstallments = new BusinessStep().stepName(BUSINESS_STEP_NAME_CHECK_DUE_INSTALLMENTS).order(lastOrder + 1); - businessSteps.add(checkDueInstallments); - - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); - - // --- log changes --- - logChanges(); - } - - @Then("Admin removes CHECK_DUE_INSTALLMENTS job from LOAN_CLOSE_OF_BUSINESS workflow") - public void removeCheckDueInstallmentsJobInCOB() throws IOException { - setBackBusinessStepsToOriginal(); - } - - @Given("Admin puts {string} business step into LOAN_CLOSE_OF_BUSINESS workflow") - public void putGivenJobInCOB(String businessStepName) throws IOException { - List businessSteps = new ArrayList<>(ORIGINAL_COB_BUSINESS_STEPS); - Long lastOrder = businessSteps.get(businessSteps.size() - 1).getOrder(); - - CobBusinessStep cobBusinessStep = CobBusinessStep.valueOf(businessStepName); - String stepName = cobBusinessStep.getValue(); - - BusinessStep businessStepToAdd = new BusinessStep().stepName(stepName).order(lastOrder + 1); - businessSteps.add(businessStepToAdd); - - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); - - // --- log changes --- - logChanges(); - } - - @Then("Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state") - public void setBackCOBToInitialState() throws IOException { - setBackBusinessStepsToOriginal(); - } - - @Then("Admin removes {string} business step into LOAN_CLOSE_OF_BUSINESS workflow") - public void removeGivenJobInCOB(String businessStepName) throws IOException { - List businessSteps = new ArrayList<>(ORIGINAL_COB_BUSINESS_STEPS); - - CobBusinessStep cobBusinessStep = CobBusinessStep.valueOf(businessStepName); - String stepName = cobBusinessStep.getValue(); - - businessSteps.removeIf(businessStep -> businessStep.getStepName().equals(stepName)); - - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(businessSteps); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); - - // --- log changes --- - logChanges(); - } - - private void setBackBusinessStepsToOriginal() throws IOException { - log.debug("Setting back Business steps to original..."); - UpdateBusinessStepConfigRequest request = new UpdateBusinessStepConfigRequest().businessSteps(ORIGINAL_COB_BUSINESS_STEPS); - - Response response = businessStepConfigurationApi.updateJobBusinessStepConfig(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS, request) - .execute(); - ErrorHelper.checkSuccessfulApiCall(response); - - // --- log changes --- - logChanges(); - } - - private void logChanges() throws IOException { - // --- log changes --- - Response changesResponse = businessStepConfigurationApi - .retrieveAllConfiguredBusinessStep(WORKFLOW_NAME_LOAN_CLOSE_OF_BUSINESS).execute(); - List businessStepsChanged = changesResponse.body().getBusinessSteps(); - List changes = businessStepsChanged// - .stream()// - .sorted(Comparator.comparingLong(BusinessStep::getOrder))// - .map(BusinessStep::getStepName)// - .collect(Collectors.toList());// - - log.debug("Business steps has been CHANGED to the following:"); - changes.forEach(e -> log.debug(e)); - } -} diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java index 553b6cf0b1e..6cc09c694fd 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java @@ -24,7 +24,6 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public abstract class TestContextKey { - public static final String ORIGINAL_COB_WORKFLOW_JOB_BUSINESS_STEP_LIST = "originalCOBWorkflowJobBusinessStepList"; public static final String CLIENT_CREATE_RESPONSE = "clientCreateResponse"; public static final String CLIENT_CREATE_SECOND_CLIENT_RESPONSE = "clientCreateSecondClientResponse"; public static final String LOAN_CREATE_RESPONSE = "loanCreateResponse"; diff --git a/fineract-e2e-tests-runner/src/test/resources/features/0_COB.feature b/fineract-e2e-tests-runner/src/test/resources/features/0_COB.feature index e67b36b27e9..3a0cf00c2ff 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/0_COB.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/0_COB.feature @@ -216,7 +216,6 @@ Feature: COBFeature @TestRailId:C3044 @AdvancedPaymentAllocation Scenario: Verify that LoanAccountCustomSnapshotBusinessEvent is created with proper business date when installment is due date and COB runs - Given Admin puts CHECK_DUE_INSTALLMENTS job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_DOWNPAYMENT_AUTO_ADVANCED_PAYMENT_ALLOCATION" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -228,6 +227,5 @@ Feature: COBFeature When Admin sets the business date to "17 January 2024" When Admin runs inline COB job for Loan Then LoanAccountCustomSnapshotBusinessEvent is created with business date "17 January 2024" - Then Admin removes CHECK_DUE_INSTALLMENTS job from LOAN_CLOSE_OF_BUSINESS workflow diff --git a/fineract-e2e-tests-runner/src/test/resources/features/AssetExternalization.feature b/fineract-e2e-tests-runner/src/test/resources/features/AssetExternalization.feature index 05f120a1294..eb0f9453e42 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/AssetExternalization.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/AssetExternalization.feature @@ -3,7 +3,6 @@ Feature: Asset Externalization @TestRailId:C2722 Scenario: Verify that all fields and values are correct in case of a SALES request by loan id and user-generated transferExternalId - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -24,11 +23,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | Transaction type | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 9999-12-31 | SALE | Then Asset externalization details has the generated transferExternalId - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2723 Scenario: Verify that all fields and values are correct in case of a SALES request by loan id system-generated transferExternalId - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -49,11 +46,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | Transaction type | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 9999-12-31 | SALE | Then Asset externalization details has the generated transferExternalId - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2724 Scenario: Verify that all fields and values are correct in case of a SALES request by loan external id user-generated transferExternalId - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -74,11 +69,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | Transaction type | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 9999-12-31 | SALE | Then Asset externalization details has the generated transferExternalId - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2725 Scenario: Verify that all fields and values are correct in case of a SALES request by loan external id system-generated transferExternalId - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -99,11 +92,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | Transaction type | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 9999-12-31 | SALE | Then Asset externalization details has the generated transferExternalId - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2727 Scenario: Verify that Asset externalization details are correct after CoB in case of a SALES request by loan id - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -123,11 +114,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | Transaction type | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2729 Scenario: Verify that Asset externalization details has the correct data in case of a BUYBACK request placed before the settlementDate with a same settlementDate as the sales one - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -159,11 +148,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | BUYBACK | 2023-05-10 | 2023-05-21 | BUYBACK | | 2023-05-21 | 1 | CANCELLED | 2023-05-21 | 2023-05-21 | SALE | | 2023-05-21 | 1 | CANCELLED | 2023-05-21 | 2023-05-21 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2730 Scenario: Verify that Asset externalization details has the correct data in case of a BUYBACK request placed on a business date before the settlementDate of sales request and with a settlementDate for buyback after the sales got active - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -200,11 +187,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-10 | 2023-05-30 | BUYBACK | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 2023-05-30 | SALE | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2731 Scenario: Verify that Asset externalization details has the correct data in case of a BUYBACK request placed after the settlementDate - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -245,11 +230,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 2023-05-30 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 2023-05-30 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2732 Scenario: Verify that BUYBACK request on a loan with PENDING ownership where BUYBACK settlement date is earlier than SALE settlement date results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -268,11 +251,9 @@ Feature: Asset Externalization Then BUYBACK transaction results a 403 error and proper error message when its settlementDate is earlier than the original settlementDate | Transaction type | settlementDate | | buyback | 2023-05-15 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2733 Scenario: Verify that SALES request on a fully paid loan results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -284,11 +265,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "LOAN_NOT_ACTIVE" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-21 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2734 Scenario: Verify that SALES request on an overpaid loan results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -300,11 +279,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "LOAN_NOT_ACTIVE" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-21 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2735 Scenario: Verify that SALES request on a loan with ACTIVE ownership results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -330,11 +307,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "ASSET_OWNED_CANNOT_BE_SOLD" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-30 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2736 Scenario: Verify that BUYBACK request on a fully paid loan can be done successfully - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -367,11 +342,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 9999-12-31 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2737 Scenario: Verify that BUYBACK request on an overpaid loan can be done successfully - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -404,11 +377,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 9999-12-31 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2738 Scenario: Verify that BUYBACK request on a loan with INACTIVE ownership results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -418,11 +389,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "ASSET_NOT_OWNED_CANNOT_BE_BOUGHT" error message | Transaction type | settlementDate | purchasePriceRatio | | buyback | 2023-05-21 | | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2739 Scenario: Verify that SALES request can NOT be placed on a loan which is not APPROVED yet - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -430,11 +399,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "LOAN_NOT_ACTIVE" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-30 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2740 Scenario: Verify that SALES request can NOT be placed on a loan which is not DISBURSED yet - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -443,11 +410,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "LOAN_NOT_ACTIVE" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-30 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2741 Scenario: Verify that SALES request on a loan with PENDING ownership results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -466,11 +431,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "ALREADY_PENDING" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-30 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2742 Scenario: Verify that SALES with settlement date earlier than actual business date results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -480,11 +443,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "SETTLEMENT_DATE_IN_THE_PAST" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-04-21 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2743 Scenario: Verify that SALES with null owner external id results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -494,11 +455,9 @@ Feature: Asset Externalization Then Asset externalization SALES transaction with ownerExternalId = null and the following data results a 400 error and "INVALID_REQUEST" error message | settlementDate | purchasePriceRatio | | 2023-05-21 | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2744 Scenario: Verify that SALES with null purchase price ratio results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -508,11 +467,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 400 error and "INVALID_REQUEST" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | 2023-05-21 | | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2745 Scenario: Verify that SALES with null settlement date results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -522,11 +479,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 400 error and "INVALID_REQUEST" error message | Transaction type | settlementDate | purchasePriceRatio | | sale | | 1 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2746 Scenario: Verify that BUYBACK request on a loan with PENDING BUYBACK ownership result an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -563,11 +518,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "BUYBACK_ALREADY_IN_PROGRESS_CANNOT_BE_BOUGHT" error message | Transaction type | settlementDate | purchasePriceRatio | | buyback | 2023-05-30 | | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2747 Scenario: Verify that BUYBACK with settlement date earlier than actual business date results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -594,11 +547,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 403 error and "SETTLEMENT_DATE_IN_THE_PAST" error message | Transaction type | settlementDate | purchasePriceRatio | | buyback | 2023-05-21 | | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2748 Scenario: Verify that BUYBACK with ownerExternalId=NULL can be placed, and results a 200OK response - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -628,11 +579,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 9999-12-31 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2749 Scenario: Verify that BUYBACK with purchasePriceRatio=NULL can be placed, and results a 200OK response - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -664,11 +613,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 9999-12-31 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2750 Scenario: Verify that SALES with null settlement date results an error - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -695,11 +642,9 @@ Feature: Asset Externalization Then Asset externalization transaction with the following data results a 400 error and "INVALID_REQUEST" error message | Transaction type | settlementDate | purchasePriceRatio | | buyback | | | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2751 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: no other transactions - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -757,11 +702,9 @@ Feature: Asset Externalization | glAccountType | glAccountCode | glAccountName | entryType | amount | | ASSET | 112601 | Loans Receivable | DEBIT | 1000.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 1000.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2752 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: fee applied before sale, and penalty applied before buyback - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -834,11 +777,9 @@ Feature: Asset Externalization | INCOME | 404007 | Fee Income | CREDIT | 20.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 1000.00 | | ASSET | 112603 | Interest/Fee Receivable | CREDIT | 30.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2753 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: Repyment while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -899,11 +840,9 @@ Feature: Asset Externalization | ASSET | 112601 | Loans Receivable | CREDIT | 200.00 | | LIABILITY | 145023 | Suspense/Clearing account | DEBIT | 200.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 800.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2754 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: GOODWILL_CREDIT transaction while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -964,11 +903,9 @@ Feature: Asset Externalization | ASSET | 112601 | Loans Receivable | CREDIT | 200.00 | | EXPENSE | 744003 | Goodwill Expense Account | DEBIT | 200.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 800.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2755 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: MERCHANT_ISSUED_REFUND transaction while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1029,11 +966,9 @@ Feature: Asset Externalization | ASSET | 112601 | Loans Receivable | CREDIT | 200.00 | | LIABILITY | 145023 | Suspense/Clearing account | DEBIT | 200.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 800.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2756 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: PAYOUT_REFUND transaction while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1094,11 +1029,9 @@ Feature: Asset Externalization | ASSET | 112601 | Loans Receivable | CREDIT | 200.00 | | LIABILITY | 145023 | Suspense/Clearing account | DEBIT | 200.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 800.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2757 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: REPAYMENT_ADJUSTMENT_REFUND chargeback transaction while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1164,11 +1097,9 @@ Feature: Asset Externalization | ASSET | 112601 | Loans Receivable | DEBIT | 800.00 | | LIABILITY | 145023 | Suspense/Clearing account | CREDIT | 800.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 800.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2758 @AssetExternalizationJournalEntry Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: CHARGE ADJUSTMENT transaction while status is ACTIVE - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1237,11 +1168,9 @@ Feature: Asset Externalization | INCOME | 404007 | Fee Income | DEBIT | 100.00 | | ASSET | 112601 | Loans Receivable | CREDIT | 1000.00 | | ASSET | 112603 | Interest/Fee Receivable | CREDIT | 200.00 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2759 Scenario: Verify that LoanOwnershipTransferBusinessEvent and LoanAccountSnapshotBusinessEvent is created with correct data - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1277,11 +1206,9 @@ Feature: Asset Externalization | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 2023-05-30 | BUYBACK | Then LoanOwnershipTransferBusinessEvent is created Then LoanAccountSnapshotBusinessEvent is created - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2760 Scenario: Verify that LoanOwnershipTransferBusinessEvent and LoanAccountSnapshotBusinessEvent is created with correct data for partial repayment, fee, penalty - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1320,11 +1247,9 @@ Feature: Asset Externalization | 2023-05-30 | 1 | BUYBACK | 2023-05-25 | 2023-05-30 | BUYBACK | Then LoanOwnershipTransferBusinessEvent is created Then LoanAccountSnapshotBusinessEvent is created - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2771 Scenario: Verify that SALE and BUYBACK can be cancelled in right order - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1361,11 +1286,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | BUYBACK | 2023-05-10 | 2023-05-10 | | 2023-05-21 | 1 | CANCELLED | 2023-05-10 | 2023-05-10 | | 2023-05-21 | 1 | CANCELLED | 2023-05-01 | 2023-05-10 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2772 Scenario: Verify that SALE can be cancelled - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1385,11 +1308,9 @@ Feature: Asset Externalization | settlementDate | purchasePriceRatio | status | effectiveFrom | effectiveTo | | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-10 | | 2023-05-21 | 1 | CANCELLED | 2023-05-01 | 2023-05-10 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2773 Scenario: Verify that active SALE can not be cancelled - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1410,11 +1331,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | When Admin send "cancel" command on "SALE" transaction it will throw an error - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2774 Scenario: Verify that Asset cannot be cancelled after SALE and BUYBACK is completed - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1452,11 +1371,9 @@ Feature: Asset Externalization | 2023-05-30 | 1 | BUYBACK | 2023-05-10 | 2023-05-30 | BUYBACK | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 2023-05-30 | SALE | When Admin send "cancel" command on "SALE" transaction it will throw an error - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2775 Scenario: Verify that SALE and BUYBACK can be cancelled in right order with double cancel test - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1513,11 +1430,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | BUYBACK | 2023-05-10 | 2023-05-10 | | 2023-05-21 | 1 | CANCELLED | 2023-05-10 | 2023-05-10 | | 2023-05-21 | 1 | CANCELLED | 2023-05-01 | 2023-05-10 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2785 Scenario: Verify that when a loan with PENDING SALES is fully paid asset transfer status will be DECLINED - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1539,11 +1454,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-15 | SALE | | 2023-05-21 | 1 | DECLINED | 2023-05-15 | 2023-05-15 | SALE | Then LoanOwnershipTransferBusinessEvent with transfer status: "DECLINED" and transfer status reason "BALANCE_ZERO" is created - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2786 Scenario: Verify that when a loan with PENDING SALES is overpaid asset transfer status will be DECLINED - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1565,11 +1478,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-15 | SALE | | 2023-05-21 | 1 | DECLINED | 2023-05-15 | 2023-05-15 | SALE | Then LoanOwnershipTransferBusinessEvent with transfer status: "DECLINED" and transfer status reason "BALANCE_NEGATIVE" is created - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2787 Scenario: Verify that when a loan with PENDING BUYBACK is fully paid BUYBACK transaction can be done successfully - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1607,11 +1518,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 2023-05-25 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-22 | 2023-05-25 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2788 Scenario: Verify that when a loan with PENDING BUYBACK is overpaid BUYBACK transaction can be done successfully - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1649,11 +1558,9 @@ Feature: Asset Externalization | 2023-05-21 | 1 | PENDING | 2023-05-01 | 2023-05-21 | SALE | | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 2023-05-25 | SALE | | 2023-05-30 | 1 | BUYBACK | 2023-05-22 | 2023-05-25 | BUYBACK | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C2811 Scenario: Verify that transaction and transaction adjustment events has the proper external owner - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a new default Loan with date: "1 May 2023" @@ -1676,12 +1583,10 @@ Feature: Asset Externalization | 2023-05-21 | 1 | ACTIVE | 2023-05-22 | 9999-12-31 | SALE | And Customer makes "AUTOPAY" repayment on "22 May 2023" with 10 EUR transaction amount and check external owner When Customer adjust "1"th repayment on "22 May 2023" with amount "9" and check external owner - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow @TestRailId:C3193 Scenario: Verify that Asset externalization SALES and BUYBACK has the correct Journal entries: no other transactions - interest bearing loan - Given Admin puts EXTERNAL_ASSET_OWNER_TRANSFER job into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "1 May 2023" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -1774,4 +1679,3 @@ Feature: Asset Externalization | INCOME | 404000 | Interest Income | CREDIT | 0.33 | | ASSET | 112603 | Interest/Fee Receivable | DEBIT | 0.33 | | INCOME | 404000 | Interest Income | CREDIT | 0.33 | - Then Admin removes EXTERNAL_ASSET_OWNER_TRANSFER job from LOAN_CLOSE_OF_BUSINESS workflow diff --git a/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature b/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature index b406dd04178..632bd2004e6 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature @@ -1871,7 +1871,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3226 Scenario: Verify interest recalculation in case of overdue installments: UC1 - 1st installment overdue, interest recalculation: daily, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -1914,11 +1913,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 14 February 2024 | Accrual | 0.24 | 0.0 | 0.24 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3227 Scenario: Verify interest recalculation in case of overdue installments: UC2 - 1st installment overdue, interest recalculation: daily, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -1961,11 +1958,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 14 February 2024 | Accrual | 0.24 | 0.0 | 0.24 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3228 Scenario: Verify interest recalculation in case of overdue installments: UC3 - 1st installment overdue, interest recalculation: same as repayment period, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2008,11 +2003,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 14 February 2024 | Accrual | 0.26 | 0.0 | 0.26 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3229 Scenario: Verify interest recalculation in case of overdue installments: UC4 - 1st installment overdue, interest recalculation: same as repayment period, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2055,11 +2048,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 14 February 2024 | Accrual | 0.26 | 0.0 | 0.26 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3230 Scenario: Verify interest recalculation in case of overdue installments: UC5 - 1st and 2nd installment overdue, interest recalculation: daily, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2104,11 +2095,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.09 | 0.0 | 0.09 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.12 | 0.0 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3231 Scenario: Verify interest recalculation in case of overdue installments: UC6 - 1st and 2nd installment overdue, interest recalculation: daily, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2153,11 +2142,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.09 | 0.0 | 0.09 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.12 | 0.0 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3232 Scenario: Verify interest recalculation in case of overdue installments: UC7 - 1st and 2nd installment overdue, interest recalculation: same as repayment period, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2202,11 +2189,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.09 | 0.0 | 0.09 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.15 | 0.0 | 0.15 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3233 Scenario: Verify interest recalculation in case of overdue installments: UC8 - 1st and 2nd installment overdue, interest recalculation: same as repayment period, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2251,11 +2236,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.09 | 0.0 | 0.09 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.15 | 0.0 | 0.15 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3234 Scenario: Verify interest recalculation in case of overdue installments: UC9 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: daily, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2319,11 +2302,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.11 | 0.0 | 0.11 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3235 Scenario: Verify interest recalculation in case of overdue installments: UC10 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: daily, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2387,11 +2368,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.11 | 0.0 | 0.11 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3236 Scenario: Verify interest recalculation in case of overdue installments: UC11 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: same as repayment period, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2455,11 +2434,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.13 | 0.0 | 0.13 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3237 Scenario: Verify interest recalculation in case of overdue installments: UC12 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: same as repayment period, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2523,11 +2500,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 February 2024 | Accrual | 0.58 | 0.0 | 0.58 | 0.0 | 0.0 | 0.0 | false | false | | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 09 March 2024 | Accrual | 0.13 | 0.0 | 0.13 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3238 Scenario: Verify interest recalculation in case of overdue installments: UC13 - 1st installment paid on due date, 2nd installment overdue with partial late repayment, interest recalculation: daily, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2612,11 +2587,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 05 March 2024 | Repayment | 10.0 | 10.0 | 0.0 | 0.0 | 0.0 | 73.57 | false | false | | 09 March 2024 | Accrual | 0.11 | 0.0 | 0.11 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3239 Scenario: Verify interest recalculation in case of overdue installments: UC14 - 1st installment paid on due date, 2nd installment overdue with partial late repayment, interest recalculation: daily, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2701,11 +2674,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 05 March 2024 | Repayment | 10.0 | 10.0 | 0.0 | 0.0 | 0.0 | 73.57 | false | false | | 09 March 2024 | Accrual | 0.11 | 0.0 | 0.11 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3240 Scenario: Verify interest recalculation in case of overdue installments: UC15 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: same as repayment period, till preclose - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2790,11 +2761,9 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 05 March 2024 | Repayment | 10.0 | 10.0 | 0.0 | 0.0 | 0.0 | 73.57 | false | false | | 09 March 2024 | Accrual | 0.13 | 0.0 | 0.13 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3241 Scenario: Verify interest recalculation in case of overdue installments: UC16 - 1st installment paid on due date, 2nd installment overdue, interest recalculation: same as repayment period, till rest frequency date - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -2879,7 +2848,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 March 2024 | Accrual | 0.49 | 0.0 | 0.49 | 0.0 | 0.0 | 0.0 | false | false | | 05 March 2024 | Repayment | 10.0 | 10.0 | 0.0 | 0.0 | 0.0 | 73.57 | false | false | | 09 March 2024 | Accrual | 0.13 | 0.0 | 0.13 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3244 Scenario: Verify support of interest rate calculation with frequency Whole term configured for progressive loan @@ -3266,7 +3234,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3251 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC1: 360/30, early repayment with amount less then due interest - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3324,12 +3291,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 14 January 2024 | Accrual | 0.02 | 0.0 | 0.02 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 0.2 | 0.0 | 0.2 | 0.0 | 0.0 | 100.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3252 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC2: 360/30, early repayment with amount 1 cent more then due interest - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3387,12 +3352,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 14 January 2024 | Accrual | 0.02 | 0.0 | 0.02 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 0.27 | 0.01 | 0.26 | 0.0 | 0.0 | 99.99 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3253 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC3: 360/30, early repayment with less than EMI amount - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3450,12 +3413,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.02 | 0.0 | 0.02 | 0.0 | 0.0 | 0.0 | false | false | | 14 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 15.0 | 14.74 | 0.26 | 0.0 | 0.0 | 85.26 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3254 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC4: 360/30, early repayment with only 1 cent less than EMI amount - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3511,12 +3472,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 14 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 17.0 | 16.74 | 0.26 | 0.0 | 0.0 | 83.26 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3255 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC5: 360/30, multiple early repayments for the same installment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3578,12 +3537,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.02 | 0.0 | 0.02 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 15.0 | 14.74 | 0.26 | 0.0 | 0.0 | 85.26 | false | false | | 20 January 2024 | Repayment | 2.01 | 1.93 | 0.08 | 0.0 | 0.0 | 83.33 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3256 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC6: 360/30, early repayment with exact EMI amount - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3639,12 +3596,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 13 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 14 January 2024 | Accrual | 0.01 | 0.0 | 0.01 | 0.0 | 0.0 | 0.0 | false | false | | 15 January 2024 | Repayment | 17.01 | 16.75 | 0.26 | 0.0 | 0.0 | 83.25 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3257 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC7: 360/30, early repayment with twice than EMI amount - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3689,12 +3644,10 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 15 January 2024 | Repayment | 34.02 | 33.76 | 0.26 | 0.0 | 0.0 | 66.24 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done @Skip @TestRailId:C3258 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC8: 360/30, preclose after early repayment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3744,13 +3697,11 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 15 January 2024 | Repayment | 17.01 | 16.75 | 0.26 | 0.0 | 0.0 | 83.25 | false | false | | 20 January 2024 | Repayment | 83.33 | 83.25 | 0.08 | 0.0 | 0.0 | 0.0 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state # TODO unskip and check when PS-2076 and PS-2106 is done # TODO is it till preclose or tillrestperiod? @Skip @TestRailId:C3259 Scenario: Verify Interest recalculation - EARLY repayment, adjust NEXT installment - UC9: 360/30, interest modification after early repayment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE_PMT_ALLOC_1" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -3800,7 +3751,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | false | false | | 15 January 2024 | Repayment | 17.01 | 16.75 | 0.26 | 0.0 | 0.0 | 83.25 | false | false | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3269 Scenario: UC1 - Single disbursement, full refund within first installment period @@ -4383,7 +4333,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3288 Scenario: Verify the recalculated EMI after interest rate change on the repayment schedule - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -4404,8 +4353,7 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan When Admin runs inline COB job for Loan When Admin sets the business date to "02 February 2024" When Admin runs inline COB job for Loan - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state - Then Loan Repayment schedule has 6 periods, with the following data for periods: + Then Loan Repayment schedule has 6 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 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | | 1 | 31 | 01 February 2024 | 01 February 2024 | 83.57 | 16.43 | 0.58 | 0.0 | 0.0 | 17.01 | 17.01 | 0.0 | 0.0 | 0.0 | @@ -4735,7 +4683,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3297 Scenario: Verify the Loan reschedule - Interest modification - UC1: Interest modification after early payment with Adjustment to NEXT installment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -4785,8 +4732,7 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan When Admin runs inline COB job for Loan When Admin sets the business date to "20 January 2024" When Admin runs inline COB job for Loan - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state - Then Loan Repayment schedule has 6 periods, with the following data for periods: + Then Loan Repayment schedule has 6 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 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | | 1 | 31 | 01 February 2024 | 15 January 2024 | 83.25 | 16.75 | 0.26 | 0.0 | 0.0 | 17.01 | 17.01 | 17.01 | 0.0 | 0.0 | @@ -4807,7 +4753,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3298 Scenario: Verify the Loan reschedule - Interest modification - UC2: Interest modification after early partial payment with Adjustment to NEXT installment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -4857,8 +4802,7 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan When Admin runs inline COB job for Loan When Admin sets the business date to "20 January 2024" When Admin runs inline COB job for Loan - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state - Then Loan Repayment schedule has 6 periods, with the following data for periods: + Then Loan Repayment schedule has 6 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 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | | 1 | 31 | 01 February 2024 | | 83.24 | 16.76 | 0.25 | 0.0 | 0.0 | 17.01 | 17.0 | 17.0 | 0.0 | 0.01 | @@ -4879,7 +4823,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3311 Scenario: Verify the Loan reschedule - Interest modification - UC2: Interest modification after early partial payment with Adjustment to LAST installment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE" loan product "DEFAULT" transaction type to "LAST_INSTALLMENT" future installment allocation rule @@ -4930,8 +4873,7 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan When Admin runs inline COB job for Loan When Admin sets the business date to "20 January 2024" When Admin runs inline COB job for Loan - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state - Then Loan Repayment schedule has 6 periods, with the following data for periods: + Then Loan Repayment schedule has 6 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 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | | 1 | 31 | 01 February 2024 | | 83.64 | 16.36 | 0.44 | 0.0 | 0.0 | 16.8 | 0.0 | 0.0 | 0.0 | 16.8 | @@ -4953,7 +4895,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan @TestRailId:C3299 Scenario: Verify the Loan reschedule - Interest modification - UC2: Interest modification after first installment with Adjustment to NEXT installment - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 January 2024" When Admin creates a client with random data When Admin set "LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE" loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation rule @@ -5004,7 +4945,6 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan When Admin runs inline COB job for Loan When Admin sets the business date to "16 February 2024" When Admin runs inline COB job for Loan - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state Then Loan Repayment schedule has 6 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 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | @@ -5164,4 +5104,4 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | 22 January 2021 | Interest Refund | 5.7 | 0.0 | 5.7 | 0.0 | 0.0 | 0.0 | true | false | | 22 January 2021 | Accrual | 5.7 | 0.0 | 5.7 | 0.0 | 0.0 | 0.0 | false | false | Then In Loan Transactions the "2"th Transaction has Transaction type="Merchant Issued Refund" and is reverted - Then In Loan Transactions the "3"th Transaction has Transaction type="Interest Refund" and is reverted \ No newline at end of file + Then In Loan Transactions the "3"th Transaction has Transaction type="Interest Refund" and is reverted diff --git a/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature b/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature index 4ff7af13d8a..e07a9f22450 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature @@ -6062,7 +6062,6 @@ Feature: Loan And Admin successfully approves the loan on "1 January 2024" with "100" amount and expected disbursement date on "1 January 2024" When Admin successfully disburse the loan on "1 January 2024" with "100" EUR transaction amount When Admin sets the business date to "15 July 2024" - When Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin runs inline COB job for Loan Then Loan Repayment schedule has 6 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 | @@ -6073,7 +6072,6 @@ Feature: Loan | 4 | 30 | 01 May 2024 | | 34.28 | 16.43 | 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 5 | 31 | 01 June 2024 | | 17.85 | 16.43 | 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 6 | 30 | 01 July 2024 | | 0.0 | 17.85 | 0.58 | 0.0 | 0.0 | 18.43 | 0.0 | 0.0 | 0.0 | 18.43 | - When Admin removes "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow Scenario: Interest recalculation - S2 2 overdue Given Global configuration "enable-business-date" is enabled @@ -6085,7 +6083,6 @@ Feature: Loan And Admin successfully approves the loan on "1 January 2024" with "100" amount and expected disbursement date on "1 January 2024" When Admin successfully disburse the loan on "1 January 2024" with "100" EUR transaction amount When Admin sets the business date to "10 March 2024" - When Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin runs inline COB job for Loan Then Loan Repayment schedule has 6 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 | @@ -6096,7 +6093,6 @@ Feature: Loan | 4 | 30 | 01 May 2024 | | 33.87 | 16.71 | 0.3 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 5 | 31 | 01 June 2024 | | 17.06 | 16.81 | 0.2 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 6 | 30 | 01 July 2024 | | 0.0 | 17.06 | 0.1 | 0.0 | 0.0 | 17.16 | 0.0 | 0.0 | 0.0 | 17.16 | - When Admin removes "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow Scenario: Interest recalculation - S3 1 paid, 1 overdue Given Global configuration "enable-business-date" is enabled @@ -6110,7 +6106,6 @@ Feature: Loan When Admin sets the business date to "1 February 2024" And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01 EUR transaction amount When Admin sets the business date to "10 March 2024" - When Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin runs inline COB job for Loan Then Loan Repayment schedule has 6 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 | @@ -6121,7 +6116,6 @@ Feature: Loan | 4 | 30 | 01 May 2024 | | 33.74 | 16.72 | 0.29 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 5 | 31 | 01 June 2024 | | 16.93 | 16.81 | 0.2 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01 | | 6 | 30 | 01 July 2024 | | 0.0 | 16.93 | 0.1 | 0.0 | 0.0 | 17.03 | 0.0 | 0.0 | 0.0 | 17.03 | - When Admin removes "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow Scenario: Loan Details Emi Amount Variations - AssociationsAll Given Global configuration "is-interest-to-be-recovered-first-when-greater-than-emi" is enabled diff --git a/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature b/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature index 2e620e88767..78fb7bfd37f 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature @@ -3501,7 +3501,6 @@ Feature: LoanRepayment @TestRailId:C3224 Scenario: Verify that interest recalculation works properly when triggered by COB - Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into LOAN_CLOSE_OF_BUSINESS workflow When Admin sets the business date to "01 April 2024" When Admin creates a client with random data When Admin creates a fully customized loan with the following data: @@ -3549,7 +3548,6 @@ Feature: LoanRepayment | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | | 05 April 2024 | Disbursement | 500.0 | 0.0 | 0.0 | 0.0 | 0.0 | 500.0 | | 20 April 2024 | Accrual | 2.47 | 0.0 | 2.47 | 0.0 | 0.0 | 0.0 | - Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state @TestRailId:C3225 Scenario: Verify that payment allocation is correct in case of fee charged on an OVERPAID Loan and payment is backdated