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)