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}")