Adam Saghy created FINERACT-2165:
------------------------------------

             Summary: Use `fineract-client` based API calls in integration tests
                 Key: FINERACT-2165
                 URL: https://issues.apache.org/jira/browse/FINERACT-2165
             Project: Apache Fineract
          Issue Type: Improvement
    Affects Versions: 1.11.0
            Reporter: Adam Saghy


`Fineract-client` was introduced as part of 
https://issues.apache.org/jira/browse/FINERACT-1189 and some integration test 
was using it (https://issues.apache.org/jira/browse/FINERACT-1209) but 
unfortunately many were not followed or was never rewritten...

Why Fineract-client is better?
 * Type safety comes out of box!
 ** Type safe requests, and responses!
 * No need to "fabricate" the endpoints!
 * We can move away from the RequestSpecification and ResponseSpecification 
configurations!
 * Fineract-client is automatically generated based on the swagger 
configuration / request / response object!

Why would it be beneficial to rewrite our integration tests?
 * No more struggling with Map<String, Object>-s to fabricate request objects 
and trying to fetch out fields from response Object / Map...
 * No more GSON conversion back and forth
 * No more "is this json string contains XYZ?"
 ** Mostly was done to test exception messages...
 * No more N+1 method with slightly different parameter list
 * *Fineract-client got tested more thoroughly!*
 * *Our swagger configurations got tested more thoroughly!*
 * *Better maintainability!*
 * {*}Better readability!{*}{*}{*}
 * *Less error-prone!*

As part of this story I would like to give an another push to this!
 # step: Marking all the methods as *deprecated* in the Helper classes which is 
using Rest-Assured for communicating with the backend!
 # Inform the Fineract-Dev mail list to not use RestAssured based solutions for 
any of the newly created integration tests!
 # Ask the community to start using the `fineract-client` based communication 
for all the newly created integration tests!
 ## Check in the helper classes whether for the required action there is 
fineract-client based implementation
 ## If yes, kindly use that!
 ## If no, kindly implement it!
 ### If it is broken, example: swagger request or response is not complete -> 
do not list a field or the data type is incorrect -> Fix it!
 # Ask the community and the newcomers to start removing the methods that was 
marked as deprecated and rewrite them to use `fineract-client` instead!
 ## *This means many of the integration tests that were using the deprecated 
methods must be also changed!*



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to