diff --git a/sugoi-api-rest-services/src/main/java/fr/insee/sugoi/services/controller/GroupController.java b/sugoi-api-rest-services/src/main/java/fr/insee/sugoi/services/controller/GroupController.java index 1f3365526..e524e62a2 100644 --- a/sugoi-api-rest-services/src/main/java/fr/insee/sugoi/services/controller/GroupController.java +++ b/sugoi-api-rest-services/src/main/java/fr/insee/sugoi/services/controller/GroupController.java @@ -17,8 +17,10 @@ import fr.insee.sugoi.core.model.ProviderResponse; import fr.insee.sugoi.core.model.ProviderResponse.ProviderResponseStatus; import fr.insee.sugoi.core.model.SugoiUser; +import fr.insee.sugoi.core.service.ApplicationService; import fr.insee.sugoi.core.service.GroupService; import fr.insee.sugoi.model.Group; +import fr.insee.sugoi.model.exceptions.ApplicationNotFoundException; import fr.insee.sugoi.model.exceptions.IdNotMatchingException; import fr.insee.sugoi.model.paging.PageResult; import fr.insee.sugoi.model.paging.PageableResult; @@ -67,6 +69,8 @@ public class GroupController { @Autowired private GroupService groupService; + @Autowired private ApplicationService applicationService; + @GetMapping( path = {"/realms/{realm}/applications/{application}/groups"}, produces = {MediaType.APPLICATION_JSON_VALUE}) @@ -111,8 +115,14 @@ public ResponseEntity> getGroups( filterGroup.setName(name); filterGroup.setDescription(description); PageableResult pageableResult = new PageableResult(size, offset, searchCookie); + PageResult foundGroups = null; + try { + applicationService.findById(realm, applicationName); - PageResult foundGroups = + } catch (ApplicationNotFoundException e) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); + } + foundGroups = groupService.findByProperties(realm, applicationName, filterGroup, pageableResult); if (foundGroups.isHasMoreResult()) { diff --git a/sugoi-api-rest-services/src/test/java/fr/insee/sugoi/services/controller/GroupControllerTest.java b/sugoi-api-rest-services/src/test/java/fr/insee/sugoi/services/controller/GroupControllerTest.java index 75fa001f6..adbd872b3 100644 --- a/sugoi-api-rest-services/src/test/java/fr/insee/sugoi/services/controller/GroupControllerTest.java +++ b/sugoi-api-rest-services/src/test/java/fr/insee/sugoi/services/controller/GroupControllerTest.java @@ -24,6 +24,7 @@ import fr.insee.sugoi.commons.services.controller.technics.SugoiAdviceController; import fr.insee.sugoi.core.model.ProviderResponse; import fr.insee.sugoi.core.model.ProviderResponse.ProviderResponseStatus; +import fr.insee.sugoi.core.service.ApplicationService; import fr.insee.sugoi.core.service.GroupService; import fr.insee.sugoi.model.Group; import fr.insee.sugoi.model.exceptions.GroupAlreadyExistException; @@ -58,6 +59,8 @@ public class GroupControllerTest { @MockBean private GroupService groupService; + @MockBean private ApplicationService applicationService; + ObjectMapper objectMapper = new ObjectMapper(); Group group1, group2, group2Updated; PageResult pageResult; diff --git a/sugoi-api-test/src/test/resources/scenario/group_scenario_sync.feature b/sugoi-api-test/src/test/resources/scenario/group_scenario_sync.feature index 58b9ff252..2a9f725be 100644 --- a/sugoi-api-test/src/test/resources/scenario/group_scenario_sync.feature +++ b/sugoi-api-test/src/test/resources/scenario/group_scenario_sync.feature @@ -11,6 +11,10 @@ Feature: Groups scenario admin Then the client receives status code 200 Then the client expect to receive a list of groups + Scenario: Get groups application not exist + When the client perform GET request on url /realms/domaine1/applications/non/groups + Then the client receives status code 404 + Scenario: Get group When the client perform GET request on url /realms/domaine1/applications/applitest/groups/Administrateurs_AppliTest And show body received @@ -22,6 +26,10 @@ Feature: Groups scenario admin And show body received Then the client receives status code 200 + Scenario: Get group application not exist + When the client perform GET request on url /realms/domaine1/applications/non/groups/Administrateurs_AppliTest + Then the client receives status code 404 + Scenario: Post group When the client perform POST request with body on url /realms/domaine1/applications/applitest/groups body: """