From a910709798ab2831aa648a7fabc833500ccc8bbc Mon Sep 17 00:00:00 2001 From: Filip Izydorczyk Date: Thu, 21 Jan 2021 16:15:01 +0100 Subject: [PATCH] partly accepted statistics --- .../com/plannaplan/services/UserService.java | 7 ++++ .../controllers/StatisticsController.java | 13 ++++++- .../controllers/StatisticsControllerTest.java | 36 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) diff --git a/buisnesslogic/src/main/java/com/plannaplan/services/UserService.java b/buisnesslogic/src/main/java/com/plannaplan/services/UserService.java index 90cf92c..932607b 100755 --- a/buisnesslogic/src/main/java/com/plannaplan/services/UserService.java +++ b/buisnesslogic/src/main/java/com/plannaplan/services/UserService.java @@ -219,4 +219,11 @@ public class UserService { } + /** + * @return ammount of how many users have partly or none schedule accepted + */ + public Integer getAmmountOfUsersWithNoAcceptedSchedules() { + return this.getAllStudents().size() - this.getAmmountOfUsersWithAcceptedSchedules(); + } + } diff --git a/restservice/src/main/java/com/plannaplan/controllers/StatisticsController.java b/restservice/src/main/java/com/plannaplan/controllers/StatisticsController.java index 1d5eb8b..e60fa71 100755 --- a/restservice/src/main/java/com/plannaplan/controllers/StatisticsController.java +++ b/restservice/src/main/java/com/plannaplan/controllers/StatisticsController.java @@ -67,7 +67,7 @@ public class StatisticsController { } /** - * @return amount of registered to some groups + * @return amount of students that have fully accepted schedules */ @PreAuthorize("hasRole('ROLE_DEANERY')") @GetMapping(path = "/users/accepted") @@ -77,4 +77,15 @@ public class StatisticsController { return new ResponseEntity<>(response, HttpStatus.OK); } + /** + * @return amount of students that have purtly accepted schedules + */ + @PreAuthorize("hasRole('ROLE_DEANERY')") + @GetMapping(path = "/users/accepted/partly") + public ResponseEntity getAcceptedPartlyAmmounts() { + final StatisticSimpleNumberResponse response = new StatisticSimpleNumberResponse( + this.userService.getAmmountOfUsersWithNoAcceptedSchedules()); + return new ResponseEntity<>(response, HttpStatus.OK); + } + } diff --git a/restservice/src/test/java/com/plannaplan/controllers/StatisticsControllerTest.java b/restservice/src/test/java/com/plannaplan/controllers/StatisticsControllerTest.java index a0418fe..fd380b3 100755 --- a/restservice/src/test/java/com/plannaplan/controllers/StatisticsControllerTest.java +++ b/restservice/src/test/java/com/plannaplan/controllers/StatisticsControllerTest.java @@ -26,6 +26,7 @@ public class StatisticsControllerTest extends AbstractControllerTest { private static final String USER_ASSIGNED_AMMOUNTS_ENDPOINT = "/api/v1/statistics/users/registered"; private static final String USER_NO_ASSIGNED_AMMOUNTS_ENDPOINT = "/api/v1/statistics/users/noregistered"; private static final String USER_ACCEPTED_AMMOUNTS_ENDPOINT = "/api/v1/statistics/users/accepted"; + private static final String USER_PARTLY_ACCEPTED_AMMOUNTS_ENDPOINT = "/api/v1/statistics/users/accepted/partly"; @Autowired private UserService userService; @@ -169,4 +170,39 @@ public class StatisticsControllerTest extends AbstractControllerTest { mockMvc.perform(get(USER_ACCEPTED_AMMOUNTS_ENDPOINT)).andExpect(status().is4xxClientError()); } + + /* USERS PARTLY ACCPTED TESTS */ + + @Test + public void shouldFailWithWrongAccessPartlyAcceptedStudentsAmmount() throws Exception { + final String mail = "shouldFailWithWrongAccessPartlyAcceptedStudentsAmmount@StatisticsController.test"; + final User usr = this.userService.save(new User(null, null, mail, UserRoles.TEST_USER)); + + final String token = this.userService.login(usr).getToken(); + + MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build(); + mockMvc.perform(get(USER_PARTLY_ACCEPTED_AMMOUNTS_ENDPOINT).header("Authorization", "Bearer " + token)) + .andExpect(status().is4xxClientError()); + + } + + @Test + public void shouldOkGettingPartlyAcceptedStudentsAmmount() throws Exception { + final String mail = "shouldOkGettingPartlyAcceptedStudentsAmmount@StatisticsController.test"; + final User usr = this.userService.save(new User(null, null, mail, UserRoles.DEANERY)); + + final String token = this.userService.login(usr).getToken(); + + MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build(); + mockMvc.perform(get(USER_PARTLY_ACCEPTED_AMMOUNTS_ENDPOINT).header("Authorization", "Bearer " + token)) + .andExpect(status().isOk()); + + } + + @Test + public void shouldFailWithNoTokenPartlyAcceptedStudentsAmmount() throws Exception { + MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).apply(springSecurity()).build(); + mockMvc.perform(get(USER_PARTLY_ACCEPTED_AMMOUNTS_ENDPOINT)).andExpect(status().is4xxClientError()); + + } }