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 7c80bf2ff FINERACT-1724: Client search API fix when external ID is null
7c80bf2ff is described below
commit 7c80bf2ffc968d9824c0c39b4d5639d8f529d133
Author: Arnold Galovics <[email protected]>
AuthorDate: Mon Jul 24 14:44:23 2023 +0200
FINERACT-1724: Client search API fix when external ID is null
---
.../jersey/converter/ExternalIdJsonConverter.java | 2 ++
.../integrationtests/client/ClientSearchTest.java | 26 ++++++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/jersey/converter/ExternalIdJsonConverter.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/jersey/converter/ExternalIdJsonConverter.java
index b8e089d65..054715163 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/jersey/converter/ExternalIdJsonConverter.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/jersey/converter/ExternalIdJsonConverter.java
@@ -42,6 +42,8 @@ public class ExternalIdJsonConverter implements
JsonConverter<ExternalId> {
public void convertToJson(ExternalId value, JsonGenerator generator)
throws IOException {
if (value != null && !value.isEmpty()) {
generator.writeString(value.getValue());
+ } else {
+ generator.writeNull();
}
}
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ClientSearchTest.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ClientSearchTest.java
index e37908f7d..5d26ed4cb 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ClientSearchTest.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ClientSearchTest.java
@@ -73,6 +73,32 @@ public class ClientSearchTest {
assertThat(result.getTotalPages()).isEqualTo(3);
}
+ @Test
+ public void testClientSearchWorks_WhenNoExternalIdForClients() {
+ // given
+ String lastname = Utils.randomStringGenerator("Client_LastName_", 5);
+ PostClientsRequest request1 =
ClientHelper.defaultClientCreationRequest();
+ request1.setExternalId(null);
+ request1.setLastname(lastname);
+ clientHelper.createClient(request1);
+
+ PostClientsRequest request2 =
ClientHelper.defaultClientCreationRequest();
+ request2.setExternalId(null);
+ request2.setLastname(lastname);
+ clientHelper.createClient(request2);
+
+ PostClientsRequest request3 =
ClientHelper.defaultClientCreationRequest();
+ request3.setExternalId(null);
+ request3.setLastname(lastname);
+ clientHelper.createClient(request3);
+ // when
+ PageClientSearchData result = clientHelper.searchClients(lastname, 0,
1);
+ // then
+ assertThat(result.getTotalElements()).isEqualTo(3);
+ assertThat(result.getNumberOfElements()).isEqualTo(1);
+ assertThat(result.getTotalPages()).isEqualTo(3);
+ }
+
@Test
public void testClientSearchWorks_WithLastnameTextOnDefaultOrdering() {
// given