Cosmic Module

O

Qubits of DPK

April 7, 2026

Core Open Source
https://github.com/apache/fineract/pull/5675

Title

FINERACT-2454: Migrate Integration Tests from RestAssured to Feign Client

1. Overview

This PR is another step in the FINERACT-2454 integration test modernization initiative.
The purpose of this PR is to replace RestAssured-based integration tests with the Fineract Feign client.
By migrating tests to the Feign client, Apache Fineract improves:
  • test maintainability
  • type safety
  • code readability
  • consistency across integration tests
This PR continues the systematic migration of tests to the new client-based testing architecture.

2. What This PR Changes

This PR updates integration tests that previously used RestAssured HTTP calls.
The migration replaces:
plain text
QUBITS OF DPK
1RestAssured based API testing
with
plain text
QUBITS OF DPK
1Fineract Feign client based API testing
Instead of manually constructing HTTP requests, tests now call typed Java API interfaces.

3. Problem in the Old Implementation

Previously, integration tests relied on RestAssured.
Example implementation:
plain text
QUBITS OF DPK
1Response response =
2given()
3.body(request)
4.post("/savingsaccounts");

Issues with this approach

Because of this, integration tests required extra boilerplate code and were harder to maintain.

4. Old Test Flow (RestAssured)

Before the migration, the architecture looked like this:
plain text
QUBITS OF DPK
1Integration Test
23RestAssured
45Manual HTTP Request
67Savings Account API Endpoint
89JSON Response Parsing
The test itself handled:
  • request construction
  • JSON serialization
  • response parsing
This made the test logic more complex than necessary.

5. New Implementation (Feign Client)

After the migration, tests use the Fineract Feign client.
Example usage:
plain text
QUBITS OF DPK
1SavingsAccountsApi savingsApi = client.savingsAccountsApi();
2
3savingsApi.createSavingsAccount(request);
The Feign client automatically performs:
  • HTTP request creation
  • request serialization
  • response deserialization
The integration test now focuses only on verifying business functionality.

6. Code Structure Before vs After

Before (RestAssured)

plain text
QUBITS OF DPK
1Response response =
2given()
3.body(request)
4.post("/savingsaccounts");
Characteristics:
  • manual HTTP request
  • string-based endpoint
  • manual response handling

After (Feign Client)

plain text
QUBITS OF DPK
1SavingsAccountsApi savingsApi = client.savingsAccountsApi();
2
3savingsApi.createSavingsAccount(request);
Characteristics:
  • typed API interface
  • request objects automatically serialized
  • responses mapped to DTO models

7. Internal Flow After Migration

plain text
QUBITS OF DPK
1Integration Test
23SavingsAccountsApi.createSavingsAccount()
45Fineract Feign Client
67HTTP request generated automatically
89Savings Account REST Controller
The test code no longer interacts directly with HTTP.
Instead, the Feign client handles communication with the REST API.

8. Benefits of This Change

9. Impact on Fineract Codebase

This PR contributes to the gradual removal of RestAssured from the integration test suite.
Benefits for the project include:
  • standardized API interaction in tests
  • improved maintainability
  • reduced duplication of HTTP code
This is another step toward the long-term goal of fully modernizing Fineract’s integration testing framework.