From 20520a2fe610ade64fe679b5ebec0884d7cb0414 Mon Sep 17 00:00:00 2001 From: Likitha Date: Sun, 29 Mar 2026 19:52:28 +0530 Subject: [PATCH 1/2] FINERACT: Migrate NotificationHelper to fineract-client --- .../common/NotificationHelper.java | 37 ++++--------------- 1 file changed, 7 insertions(+), 30 deletions(-) diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java index 745f933a976..4d645e532f9 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java @@ -1,39 +1,17 @@ -/** - * 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.integrationtests.common; import static org.awaitility.Awaitility.await; -import com.google.gson.Gson; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; import java.time.Duration; import lombok.extern.slf4j.Slf4j; import org.apache.fineract.client.models.GetNotificationsResponse; -import org.apache.fineract.client.util.JSON; +import org.apache.fineract.client.util.Calls; @Slf4j public final class NotificationHelper { - private static final String NOTIFICATION_API_URL = "/fineract-provider/api/v1/notifications?" + Utils.TENANT_IDENTIFIER; - private static final Gson GSON = new JSON().getGson(); - private NotificationHelper() {} // TODO: Rewrite to use fineract-client instead! @@ -41,27 +19,26 @@ private NotificationHelper() {} // org.apache.fineract.client.models.PostLoansLoanIdRequest) @Deprecated(forRemoval = true) public static GetNotificationsResponse getNotifications(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { - final String GET_NOTIFICATIONS_URL = NOTIFICATION_API_URL; + final ResponseSpecification responseSpec) { log.info("-----------------------------GET NOTIFICATIONS-----------------------------------"); - String response = Utils.performServerGet(requestSpec, responseSpec, GET_NOTIFICATIONS_URL); - return GSON.fromJson(response, GetNotificationsResponse.class); + return Calls.ok(FineractClientHelper.getFineractClient().notifications.getAllNotifications(null, null, null, null, null)); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) @Deprecated(forRemoval = true) - public static boolean areNotificationsAvailable(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { + public static boolean areNotificationsAvailable(final RequestSpecification requestSpec, + final ResponseSpecification responseSpec) { return getNotifications(requestSpec, responseSpec).getPageItems().size() > 0; } // Waiting for notifications to be available is needed due to the asynchronous event processing public static void waitUntilNotificationsAreAvailable(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { + final ResponseSpecification responseSpec) { await().atMost(Duration.ofSeconds(30)) // .pollInterval(Duration.ofSeconds(5)) // .pollDelay(Duration.ofSeconds(5)) // .until(() -> NotificationHelper.areNotificationsAvailable(requestSpec, responseSpec)); } -} +} \ No newline at end of file From b16dac49ceaaa8e2d10dcafc7c68f5f8b79bbbca Mon Sep 17 00:00:00 2001 From: lliikkii7722-ops Date: Tue, 31 Mar 2026 20:14:11 +0530 Subject: [PATCH 2/2] FINERACT-2571: Preserve request headers in NotificationHelper --- .../common/NotificationHelper.java | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java index 4d645e532f9..94daf8efe72 100644 --- a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java +++ b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/NotificationHelper.java @@ -1,10 +1,31 @@ +/** + * 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.integrationtests.common; import static org.awaitility.Awaitility.await; +import io.restassured.specification.FilterableRequestSpecification; import io.restassured.specification.RequestSpecification; import io.restassured.specification.ResponseSpecification; import java.time.Duration; +import java.util.HashMap; +import java.util.Map; import lombok.extern.slf4j.Slf4j; import org.apache.fineract.client.models.GetNotificationsResponse; import org.apache.fineract.client.util.Calls; @@ -19,26 +40,32 @@ private NotificationHelper() {} // org.apache.fineract.client.models.PostLoansLoanIdRequest) @Deprecated(forRemoval = true) public static GetNotificationsResponse getNotifications(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { + final ResponseSpecification responseSpec) { log.info("-----------------------------GET NOTIFICATIONS-----------------------------------"); - return Calls.ok(FineractClientHelper.getFineractClient().notifications.getAllNotifications(null, null, null, null, null)); + + FilterableRequestSpecification filterableRequestSpec = (FilterableRequestSpecification) requestSpec; + + Map headers = new HashMap<>(); + headers.put("Authorization", filterableRequestSpec.getHeaders().getValue("Authorization")); + headers.put("Fineract-Platform-TenantId", filterableRequestSpec.getHeaders().getValue("Fineract-Platform-TenantId")); + + return Calls.ok(FineractClientHelper.getFineractClient().notifications.getAllNotifications(null, 1, 0, null, null, headers)); } // TODO: Rewrite to use fineract-client instead! // Example: org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper.disburseLoan(java.lang.Long, // org.apache.fineract.client.models.PostLoansLoanIdRequest) @Deprecated(forRemoval = true) - public static boolean areNotificationsAvailable(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { + public static boolean areNotificationsAvailable(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) { return getNotifications(requestSpec, responseSpec).getPageItems().size() > 0; } // Waiting for notifications to be available is needed due to the asynchronous event processing public static void waitUntilNotificationsAreAvailable(final RequestSpecification requestSpec, - final ResponseSpecification responseSpec) { + final ResponseSpecification responseSpec) { await().atMost(Duration.ofSeconds(30)) // .pollInterval(Duration.ofSeconds(5)) // .pollDelay(Duration.ofSeconds(5)) // .until(() -> NotificationHelper.areNotificationsAvailable(requestSpec, responseSpec)); } -} \ No newline at end of file +}