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 e4e5fc0ce FINERACT-1658:GroupFilter_In_Center
e4e5fc0ce is described below

commit e4e5fc0cebd71d5f3fca74fb4b9272e2c9541f20
Author: rrpawar96 <[email protected]>
AuthorDate: Tue Jul 12 17:47:29 2022 +0530

    FINERACT-1658:GroupFilter_In_Center
---
 .../service/GroupReadPlatformServiceImpl.java      |  9 +++++---
 .../integrationtests/CenterIntegrationTest.java    | 25 ++++++++++++++++++++++
 .../integrationtests/common/GroupHelper.java       |  9 ++++++++
 3 files changed, 40 insertions(+), 3 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupReadPlatformServiceImpl.java
index 1230ddb69..9e6674036 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupReadPlatformServiceImpl.java
@@ -185,6 +185,12 @@ public class GroupReadPlatformServiceImpl implements 
GroupReadPlatformService {
 
         sqlBuilder.append(" ").append(extraCriteria.getSQLTemplate());
 
+        if (searchParameters != null) {
+            if (searchParameters.isOrphansOnly()) {
+                sqlBuilder.append(" and g.parent_id is NULL");
+            }
+        }
+
         if (parameters != null) {
             if (parameters.isOrderByRequested()) {
                 sqlBuilder.append(parameters.orderBySql());
@@ -226,9 +232,6 @@ public class GroupReadPlatformServiceImpl implements 
GroupReadPlatformService {
         }
         extraCriteria.addNonNullCriteria("g.staff_id =", 
searchCriteria.getStaffId());
 
-        if (searchCriteria.isOrphansOnly()) {
-            extraCriteria.addNonNullCriteria("g.parent_id IS", "NULL");
-        }
         return extraCriteria;
     }
 
diff --git 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
index 425929672..af85542df 100644
--- 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
+++ 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
@@ -32,6 +32,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import org.apache.fineract.integrationtests.common.CenterDomain;
 import org.apache.fineract.integrationtests.common.CenterHelper;
+import org.apache.fineract.integrationtests.common.GroupHelper;
 import org.apache.fineract.integrationtests.common.OfficeHelper;
 import org.apache.fineract.integrationtests.common.Utils;
 import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
@@ -259,4 +260,28 @@ public class CenterIntegrationTest {
 
     }
 
+    @Test
+    public void testCentersOrphanGroups() {
+
+        int officeId = new OfficeHelper(requestSpec, 
responseSpec).createOffice("01 July 2007");
+
+        String name = "TestBasicCreation" + new Timestamp(new 
java.util.Date().getTime());
+        int resourceId = CenterHelper.createCenter(name, officeId, 
requestSpec, responseSpec);
+        CenterDomain center = CenterHelper.retrieveByID(resourceId, 
requestSpec, responseSpec);
+
+        Assertions.assertNotNull(center);
+
+        int id = CenterHelper.listCenters(requestSpec, 
responseSpec).get(0).getId();
+        Assertions.assertTrue(id > 0);
+
+        CenterDomain retrievedCenter = CenterHelper.retrieveByID(id, 
requestSpec, responseSpec);
+        Assertions.assertNotNull(retrievedCenter);
+        Assertions.assertNotNull(retrievedCenter.getName());
+        Assertions.assertNotNull(retrievedCenter.getHierarchy());
+        Assertions.assertNotNull(retrievedCenter.getOfficeName());
+
+        int[] groupMembers = generateGroupMembers(2, officeId);
+        CenterHelper.associateGroups(resourceId, groupMembers, requestSpec, 
responseSpec);
+        GroupHelper.verifyOrphanGroupDetails(requestSpec, responseSpec, 
officeId);
+    }
 }
diff --git 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/GroupHelper.java
 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/GroupHelper.java
index 5affaacf2..1148ed326 100644
--- 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/GroupHelper.java
+++ 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/common/GroupHelper.java
@@ -230,6 +230,15 @@ public class GroupHelper {
         assertTrue(list.toString().contains("id=" + groupMember.toString()), 
"ERROR IN GROUP MEMBER");
     }
 
+    public static void verifyOrphanGroupDetails(final RequestSpecification 
requestSpec, final ResponseSpecification responseSpec,
+            int officeId) {
+        LOG.info("------------------------------CHECK ORPHAN GROUP 
DETAILS------------------------------------\n");
+        final String GROUP_URL = "/fineract-provider/api/v1/groups" + 
"?officeId=" + officeId + "&orphansOnly=true&"
+                + Utils.TENANT_IDENTIFIER;
+        final String responseValue = Utils.performGetTextResponse(requestSpec, 
responseSpec, GROUP_URL);
+        assertEquals("[]", responseValue); // Since, all groups got center as 
Parent, OrphanGroups is null.
+    }
+
     public static void verifyEmptyGroupMembers(final RequestSpecification 
requestSpec, final ResponseSpecification responseSpec,
             final Integer generatedGroupID) {
         List<String> list = new ArrayList<>();

Reply via email to