FINERACT-2073: Client search v2 using Client Identifiers

This commit is contained in:
Jose Alberto Hernandez
2024-05-21 11:32:15 +02:00
committed by Adam Saghy
parent 63ee58aabd
commit e13a9cba01
15 changed files with 62 additions and 1 deletions
@@ -27,6 +27,8 @@ import io.restassured.specification.RequestSpecification;
import io.restassured.specification.ResponseSpecification;
import org.apache.fineract.client.models.GetClientsClientIdResponse;
import org.apache.fineract.client.models.PageClientSearchData;
import org.apache.fineract.client.models.PostClientsClientIdIdentifiersRequest;
import org.apache.fineract.client.models.PostClientsClientIdIdentifiersResponse;
import org.apache.fineract.client.models.PostClientsRequest;
import org.apache.fineract.client.models.PostClientsResponse;
import org.apache.fineract.client.models.SortOrder;
@@ -242,4 +244,29 @@ public class ClientSearchTest {
assertThat(result.getTotalElements()).isEqualTo(0);
assertThat(result.getContent()).isEmpty();
}
@Test
public void testClientSearchWorks_ByClientIdentifier() {
// given
PostClientsRequest request1 = ClientHelper.defaultClientCreationRequest();
request1.setMobileNo(Utils.randomNumberGenerator(8).toString());
PostClientsResponse clientResponse = clientHelper.createClient(request1);
final Long documentType = 1L;
PostClientsClientIdIdentifiersRequest identifierRequest = ClientHelper.createClientIdentifer(documentType);
final String documentKey = identifierRequest.getDocumentKey();
PostClientsClientIdIdentifiersResponse clientIdentifierResponse = clientHelper.createClientIdentifer(clientResponse.getClientId(),
identifierRequest);
PostClientsRequest request2 = ClientHelper.defaultClientCreationRequest();
clientHelper.createClient(request2);
PostClientsRequest request3 = ClientHelper.defaultClientCreationRequest();
clientHelper.createClient(request3);
// when
PageClientSearchData result = clientHelper.searchClients(documentKey);
// then
assertThat(result.getTotalElements()).isEqualTo(1);
assertThat(result.getContent().get(0).getMobileNo()).isEqualTo(request1.getMobileNo());
}
}
@@ -52,6 +52,8 @@ import org.apache.fineract.client.models.PageClientSearchData;
import org.apache.fineract.client.models.PagedRequestClientTextSearch;
import org.apache.fineract.client.models.PostClientClientIdAddressesRequest;
import org.apache.fineract.client.models.PostClientClientIdAddressesResponse;
import org.apache.fineract.client.models.PostClientsClientIdIdentifiersRequest;
import org.apache.fineract.client.models.PostClientsClientIdIdentifiersResponse;
import org.apache.fineract.client.models.PostClientsClientIdResponse;
import org.apache.fineract.client.models.PostClientsClientIdTransactionsTransactionIdResponse;
import org.apache.fineract.client.models.PostClientsRequest;
@@ -105,6 +107,11 @@ public class ClientHelper extends IntegrationTest {
return ok(fineract().clients.create6(request));
}
public PostClientsClientIdIdentifiersResponse createClientIdentifer(final Long clientId,
final PostClientsClientIdIdentifiersRequest request) {
return ok(fineract().clientIdentifiers.createClientIdentifier(clientId, request));
}
public PageClientSearchData searchClients(String text) {
ClientTextSearch clientTextSearch = new ClientTextSearch();
clientTextSearch.setText(text);
@@ -875,4 +882,10 @@ public class ClientHelper extends IntegrationTest {
public GetLoanAccountLockResponse retrieveLockedAccounts(int page, int limit) {
return ok(fineract().loanAccountLockApi.retrieveLockedAccounts(page, limit));
}
public static PostClientsClientIdIdentifiersRequest createClientIdentifer(final Long documentType) {
return new PostClientsClientIdIdentifiersRequest().documentTypeId(documentType).documentKey(Utils.randomStringGenerator("ID_", 10))
.description(Utils.randomStringGenerator("Desc_", 50)).status("Active");
}
}