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<>();