From e542ca6870feda19b2356474af93a23c20007627 Mon Sep 17 00:00:00 2001 From: "adam.magyari" Date: Tue, 18 Feb 2025 14:25:20 +0100 Subject: [PATCH] FINERACT-2081: fix tests event check to use latest relevant event --- .../fineract/test/messaging/store/EventStore.java | 2 +- .../fineract/test/stepdef/loan/LoanStepDef.java | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/store/EventStore.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/store/EventStore.java index 53745f184..ef776e4dd 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/store/EventStore.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/store/EventStore.java @@ -56,7 +56,7 @@ public class EventStore { public > Optional> findEventById(T type, Long id) { List> events = findByType(type); - return events.stream().filter(em -> type.getIdExtractor().apply(em.getData()).equals(id)).findFirst(); + return events.stream().filter(em -> type.getIdExtractor().apply(em.getData()).equals(id)).reduce((first, second) -> second); } public > List> findByType(T type) { diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java index 9e4521467..8afb6eaac 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java @@ -118,6 +118,7 @@ import org.apache.fineract.test.helper.ErrorResponse; import org.apache.fineract.test.helper.Utils; import org.apache.fineract.test.initializer.global.LoanProductGlobalInitializerStep; import org.apache.fineract.test.messaging.EventAssertion; +import org.apache.fineract.test.messaging.config.EventProperties; import org.apache.fineract.test.messaging.event.EventCheckHelper; import org.apache.fineract.test.messaging.event.loan.LoanRescheduledDueAdjustScheduleEvent; import org.apache.fineract.test.messaging.event.loan.LoanStatusChangedEvent; @@ -189,6 +190,9 @@ public class LoanStepDef extends AbstractStepDef { @Autowired private LoanInterestPauseApi loanInterestPauseApi; + @Autowired + private EventProperties eventProperties; + @When("Admin creates a new Loan") public void createLoan() throws IOException { Response clientResponse = testContext().get(TestContextKey.CLIENT_CREATE_RESPONSE); @@ -2233,8 +2237,11 @@ public class LoanStepDef extends AbstractStepDef { long loanId = loanResponse.body().getLoanId(); LoanStatusEnumDataV1 expectedStatus = getExpectedStatus(loanStatus); - eventAssertion.assertEvent(LoanStatusChangedEvent.class, loanId).extractingData(LoanAccountDataV1::getStatus) - .isEqualTo(expectedStatus); + await().pollDelay(Duration.ofSeconds(1L)).pollInterval(Duration.ofSeconds(1L)) + .atMost(Duration.ofSeconds(eventProperties.getEventWaitTimeoutInSec())).untilAsserted(() -> { + eventAssertion.assertEvent(LoanStatusChangedEvent.class, loanId).extractingData(LoanAccountDataV1::getStatus) + .isEqualTo(expectedStatus); + }); } @Then("Loan marked as charged-off on {string}")