This is an automated email from the ASF dual-hosted git repository.
arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git
The following commit(s) were added to refs/heads/develop by this push:
new b2636aaf25 FINERACT-2519: Refactor CreditBureauIntegration tests to
use fineract-client
b2636aaf25 is described below
commit b2636aaf25d3a9afe21deea995119370842126cd
Author: DeathGun44 <[email protected]>
AuthorDate: Tue Mar 3 09:12:12 2026 +0530
FINERACT-2519: Refactor CreditBureauIntegration tests to use fineract-client
---
.../fineract/client/util/FineractClient.java | 3 ++
.../api/CreditBureauIntegrationApiResource.java | 2 +
.../integrationtests/CreditBureauTest.java | 18 ++------
.../common/CreditBureauIntegrationHelper.java | 53 ++++------------------
4 files changed, 18 insertions(+), 58 deletions(-)
diff --git
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
index a10c5c6959..6f47fffb87 100644
---
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
+++
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
@@ -59,6 +59,7 @@ import org.apache.fineract.client.services.ClientsAddressApi;
import org.apache.fineract.client.services.CodeValuesApi;
import org.apache.fineract.client.services.CodesApi;
import org.apache.fineract.client.services.CreditBureauConfigurationApi;
+import org.apache.fineract.client.services.CreditBureauIntegrationApi;
import org.apache.fineract.client.services.CurrencyApi;
import org.apache.fineract.client.services.DataTablesApi;
import org.apache.fineract.client.services.DefaultApi;
@@ -202,6 +203,7 @@ public final class FineractClient {
public final ChargesApi charges;
public final ClientApi clients;
public final CreditBureauConfigurationApi creditBureauConfiguration;
+ public final CreditBureauIntegrationApi creditBureauIntegration;
public final ClientSearchV2Api clientSearchV2;
public final ClientChargesApi clientCharges;
@@ -338,6 +340,7 @@ public final class FineractClient {
charges = retrofit.create(ChargesApi.class);
clients = retrofit.create(ClientApi.class);
creditBureauConfiguration =
retrofit.create(CreditBureauConfigurationApi.class);
+ creditBureauIntegration =
retrofit.create(CreditBureauIntegrationApi.class);
clientSearchV2 = retrofit.create(ClientSearchV2Api.class);
clientCharges = retrofit.create(ClientChargesApi.class);
clientIdentifiers = retrofit.create(ClientIdentifierApi.class);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/api/CreditBureauIntegrationApiResource.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/api/CreditBureauIntegrationApiResource.java
index 528c1b1b4f..7914b8e2dc 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/api/CreditBureauIntegrationApiResource.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/creditbureau/api/CreditBureauIntegrationApiResource.java
@@ -24,6 +24,7 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
+import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
@@ -64,6 +65,7 @@ import org.springframework.web.bind.annotation.RequestParam;
@Path("/v1/creditBureauIntegration")
@Component
+@Tag(name = "Credit Bureau Integration", description = "")
@RequiredArgsConstructor
public class CreditBureauIntegrationApiResource {
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CreditBureauTest.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CreditBureauTest.java
index a752cb17d9..25990ff409 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CreditBureauTest.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CreditBureauTest.java
@@ -28,11 +28,6 @@ import
com.github.tomakehurst.wiremock.junit5.WireMockExtension;
import com.google.gson.Gson;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;
-import io.restassured.builder.RequestSpecBuilder;
-import io.restassured.builder.ResponseSpecBuilder;
-import io.restassured.http.ContentType;
-import io.restassured.specification.RequestSpecification;
-import io.restassured.specification.ResponseSpecification;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatterBuilder;
@@ -53,8 +48,6 @@ import org.slf4j.LoggerFactory;
public class CreditBureauTest {
private static final Logger LOG =
LoggerFactory.getLogger(CreditBureauTest.class);
- private ResponseSpecification responseSpec;
- private RequestSpecification requestSpec;
private static final ObjectMapper MAPPER = new ObjectMapper();
@@ -64,9 +57,6 @@ public class CreditBureauTest {
@BeforeEach
public void setup() {
Utils.initializeRESTAssured();
- this.requestSpec = new
RequestSpecBuilder().setContentType(ContentType.JSON).build();
- this.requestSpec.header("Authorization", "Basic " +
Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
- this.responseSpec = new
ResponseSpecBuilder().expectStatusCode(200).build();
configureCreditBureauService();
}
@@ -128,11 +118,11 @@ public class CreditBureauTest {
+ "\"Gender\":\"male\"," + "\"Address\":\"Test
Address\"" + "}," + "\"CreditScore\": {\"Score\": \"500\"},"
+ "\"ActiveLoans\": [\"Loan1\", \"Loan2\"]," +
"\"WriteOffLoans\": [\"Loan3\", \"Loan4\"]" + "}}", 200)));
- Object serviceResult =
CreditBureauIntegrationHelper.getCreditReport(this.requestSpec,
this.responseSpec, "1", "NRC213");
+ String serviceResult =
CreditBureauIntegrationHelper.getCreditReport("1", "NRC213");
Assertions.assertNotNull(serviceResult);
Gson gson = new Gson();
CreditBureauReportData responseData = gson.fromJson(
-
gson.toJson(JsonParser.parseString(String.valueOf(serviceResult)).getAsJsonObject().get("creditBureauReportData")),
+
gson.toJson(JsonParser.parseString(serviceResult).getAsJsonObject().get("creditBureauReportData")),
CreditBureauReportData.class);
Assertions.assertEquals("\"Test Name\"", responseData.getName());
Assertions.assertEquals("{\"Score\":\"500\"}",
responseData.getCreditScore());
@@ -166,11 +156,11 @@ public class CreditBureauTest {
+ "\"Name\":\"Test Name\"," + "\"Gender\":\"male\"," +
"\"Address\":\"Test Address\"" + "},"
+ "\"CreditScore\": {\"Score\": \"500\"}," +
"\"ActiveLoans\": []," + "\"WriteOffLoans\": []" + "}}", 200)));
- Object serviceResult =
CreditBureauIntegrationHelper.getCreditReport(this.requestSpec,
this.responseSpec, "1", "NRC213");
+ String serviceResult =
CreditBureauIntegrationHelper.getCreditReport("1", "NRC213");
Assertions.assertNotNull(serviceResult);
Gson gson = new Gson();
CreditBureauReportData responseData = gson.fromJson(
-
gson.toJson(JsonParser.parseString(String.valueOf(serviceResult)).getAsJsonObject().get("creditBureauReportData")),
+
gson.toJson(JsonParser.parseString(serviceResult).getAsJsonObject().get("creditBureauReportData")),
CreditBureauReportData.class);
Assertions.assertEquals("\"Test Name\"", responseData.getName());
Assertions.assertEquals("{\"Score\":\"500\"}",
responseData.getCreditScore());
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/CreditBureauIntegrationHelper.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/CreditBureauIntegrationHelper.java
index 974f25bb25..bc3223025a 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/CreditBureauIntegrationHelper.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/CreditBureauIntegrationHelper.java
@@ -18,64 +18,29 @@
*/
package org.apache.fineract.integrationtests.common;
-import static io.restassured.RestAssured.given;
-
-import com.google.gson.Gson;
-import io.restassured.specification.RequestSpecification;
-import io.restassured.specification.ResponseSpecification;
-import java.io.File;
import java.util.HashMap;
+import org.apache.fineract.client.services.CreditBureauIntegrationApi;
+import org.apache.fineract.client.util.Calls;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class CreditBureauIntegrationHelper {
+public final class CreditBureauIntegrationHelper {
private static final Logger LOG =
LoggerFactory.getLogger(CreditBureauIntegrationHelper.class);
- private final RequestSpecification requestSpec;
- private final ResponseSpecification responseSpec;
-
- // 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 CreditBureauIntegrationHelper(final RequestSpecification
requestSpec, final ResponseSpecification responseSpec) {
- this.requestSpec = requestSpec;
- this.responseSpec = responseSpec;
- }
- // 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 Object getCreditReport(final RequestSpecification
requestSpec, final ResponseSpecification responseSpec,
- final String creditBureauId, String nrc) {
- LOG.info("---------------------------------CREATING A
CREDIT_BUREAU_CONFIGURATION---------------------------------------------");
- final String CREDITBUREAU_CONFIGURATION_URL =
"/fineract-provider/api/v1/creditBureauIntegration/creditReport?"
- + Utils.TENANT_IDENTIFIER;
- return Utils.performServerPost(requestSpec, responseSpec,
CREDITBUREAU_CONFIGURATION_URL,
- createGetCreditReportAsJson(creditBureauId, nrc), null);
- }
+ private CreditBureauIntegrationHelper() {}
- public static String uploadCreditReport(final RequestSpecification
requestSpec, final ResponseSpecification responseSpec,
- final String creditBureauId, File file) {
- LOG.info("---------------------------------CREATING A
CREDIT_BUREAU_CONFIGURATION---------------------------------------------");
- final String CREDITBUREAU_CONFIGURATION_URL =
"/fineract-provider/api/v1/creditBureauIntegration/addCreditReport?"
- + Utils.TENANT_IDENTIFIER;
- return given().spec(requestSpec).queryParam("creditBureauId",
creditBureauId).contentType("multipart/form-data")
- .multiPart("file",
file).expect().spec(responseSpec).log().ifError().when().post(CREDITBUREAU_CONFIGURATION_URL).andReturn()
- .asString();
+ private static CreditBureauIntegrationApi api() {
+ return
FineractClientHelper.getFineractClient().creditBureauIntegration;
}
- // 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 String createGetCreditReportAsJson(final String
creditBureauId, final String nrc) {
+ public static String getCreditReport(final String creditBureauId, final
String nrc) {
+ LOG.info("---------------------------------FETCHING CREDIT
REPORT---------------------------------------------");
final HashMap<String, String> map = new HashMap<>();
map.put("creditBureauID", creditBureauId);
map.put("NRC", nrc);
LOG.info("map : {}", map);
- return new Gson().toJson(map);
+ return Calls.ok(api().fetchCreditReport((Object) map));
}
}