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

Reply via email to