From 0641fc6b99832025fc009e64aa94aa52b6666dc3 Mon Sep 17 00:00:00 2001 From: Peter Bagrij Date: Fri, 22 Mar 2024 19:19:09 +0100 Subject: [PATCH] FINERACT-1971: Fixing AggregateId of LoanOwnershipTransferBusinessEvent --- .../domain/InvestorBusinessEvent.java | 2 +- .../externalevents/ExternalEventHelper.java | 12 ++++++++++++ ...nitiateExternalAssetOwnerTransferTest.java | 19 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/fineract-investor/src/main/java/org/apache/fineract/investor/domain/InvestorBusinessEvent.java b/fineract-investor/src/main/java/org/apache/fineract/investor/domain/InvestorBusinessEvent.java index 76ccb5b2e..1d033a196 100644 --- a/fineract-investor/src/main/java/org/apache/fineract/investor/domain/InvestorBusinessEvent.java +++ b/fineract-investor/src/main/java/org/apache/fineract/investor/domain/InvestorBusinessEvent.java @@ -40,6 +40,6 @@ public abstract class InvestorBusinessEvent extends AbstractBusinessEvent updatedConfigurations = ExternalEventConfigurationHelper.updateExternalEventConfigurations(requestSpec, + responseSpec, "{\"externalEventConfigurations\":{\"" + eventName + "\":" + status + "}}\n"); + Assertions.assertEquals(updatedConfigurations.size(), 1); + Assertions.assertTrue(updatedConfigurations.containsKey(eventName)); + Assertions.assertEquals(status, updatedConfigurations.get(eventName)); + } + } diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java index 646d455ce..3c759d36e 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/investor/externalassetowner/InitiateExternalAssetOwnerTransferTest.java @@ -62,6 +62,7 @@ import org.apache.fineract.client.models.PostInitiateTransferRequest; import org.apache.fineract.client.models.PostInitiateTransferResponse; import org.apache.fineract.client.models.PostLoansLoanIdTransactionsRequest; import org.apache.fineract.client.util.CallFailedRuntimeException; +import org.apache.fineract.infrastructure.event.external.service.validation.ExternalEventDTO; import org.apache.fineract.integrationtests.common.BusinessDateHelper; import org.apache.fineract.integrationtests.common.BusinessStepHelper; import org.apache.fineract.integrationtests.common.ClientHelper; @@ -74,11 +75,14 @@ import org.apache.fineract.integrationtests.common.accounting.Account; import org.apache.fineract.integrationtests.common.accounting.AccountHelper; import org.apache.fineract.integrationtests.common.accounting.FinancialActivityAccountHelper; import org.apache.fineract.integrationtests.common.charges.ChargesHelper; +import org.apache.fineract.integrationtests.common.externalevents.ExternalEventHelper; +import org.apache.fineract.integrationtests.common.externalevents.ExternalEventsExtension; import org.apache.fineract.integrationtests.common.loans.LoanApplicationTestBuilder; import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder; import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker; import org.apache.fineract.integrationtests.common.loans.LoanTestLifecycleExtension; import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper; +import org.hamcrest.Matchers; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; @@ -86,7 +90,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @SuppressWarnings("rawtypes") -@ExtendWith(LoanTestLifecycleExtension.class) +@ExtendWith({ LoanTestLifecycleExtension.class, ExternalEventsExtension.class }) public class InitiateExternalAssetOwnerTransferTest { private static ResponseSpecification RESPONSE_SPEC; @@ -146,6 +150,10 @@ public class InitiateExternalAssetOwnerTransferTest { GlobalConfigurationHelper.manageConfigurations(REQUEST_SPEC, RESPONSE_SPEC, GlobalConfigurationHelper.ENABLE_AUTOGENERATED_EXTERNAL_ID, true); setInitialBusinessDate("2020-03-02"); + + ExternalEventHelper.deleteAllExternalEvents(REQUEST_SPEC, new ResponseSpecBuilder().expectStatusCode(Matchers.is(204)).build()); + ExternalEventHelper.changeEventState(REQUEST_SPEC, RESPONSE_SPEC, "LoanOwnershipTransferBusinessEvent", true); + Integer clientID = createClient(); Integer loanID = createLoanForClient(clientID); addPenaltyForLoan(loanID, "10"); @@ -208,6 +216,15 @@ public class InitiateExternalAssetOwnerTransferTest { "9999-12-31", true, new BigDecimal("15767.420000"), new BigDecimal("15000.000000"), new BigDecimal("757.420000"), new BigDecimal("10.000000"), new BigDecimal("0.000000"), new BigDecimal("0.000000"))); + + List allExternalEvents = ExternalEventHelper.getAllExternalEvents(REQUEST_SPEC, RESPONSE_SPEC); + Assertions.assertEquals(1, allExternalEvents.size()); + Assertions.assertEquals("LoanOwnershipTransferBusinessEvent", allExternalEvents.get(0).getType()); + Assertions.assertEquals(Long.valueOf(loanID), allExternalEvents.get(0).getAggregateRootId()); + + ExternalEventHelper.deleteAllExternalEvents(REQUEST_SPEC, new ResponseSpecBuilder().expectStatusCode(Matchers.is(204)).build()); + ExternalEventHelper.changeEventState(REQUEST_SPEC, RESPONSE_SPEC, "LoanOwnershipTransferBusinessEvent", true); + getAndValidateThereIsActiveMapping(loanID); retrieveResponse = EXTERNAL_ASSET_OWNER_HELPER.retrieveTransfersByLoanId(loanID.longValue()); LocalDate expectedDate = LocalDate.of(2020, 3, 2);