From 0e5ab92a4a5e71cfcbfc40beebdc1193edf61321 Mon Sep 17 00:00:00 2001 From: IndexZero Date: Wed, 19 Feb 2025 17:40:12 +0300 Subject: [PATCH] - Reversed lists - MORE TESTS --- .../service/impl/EmployeeServiceImpl.java | 19 +++-- .../service/impl/EntranceServiceImpl.java | 8 +- .../finals/EmployeeControllerTests.java | 82 ++++++++++++++++++- 3 files changed, 97 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java b/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java index e499739..9c2869b 100644 --- a/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java +++ b/src/main/java/com/indexzero/finals/service/impl/EmployeeServiceImpl.java @@ -41,17 +41,22 @@ public class EmployeeServiceImpl implements EmployeeService { try { if (codeRepository.existsByValue(Long.valueOf(code))) { Employee employee = employeeRepository.findByLogin(auth.getName()); - Entrance entrance = new Entrance(); + if(employee.getIsQREnabled()) { + Entrance entrance = new Entrance(); - entrance.setVisitTime(LocalDateTime.now()); - entrance.setReader(codeRepository.findByValue(code)); - entrance.setType("smartphone"); - entrance.setEmployee(employee); + entrance.setVisitTime(LocalDateTime.now()); + entrance.setReader(codeRepository.findByValue(code)); + entrance.setType("smartphone"); + entrance.setEmployee(employee); - entranceRepository.save(entrance); + entranceRepository.save(entrance); - return new ResponseEntity<>(HttpStatus.OK); + return new ResponseEntity<>(HttpStatus.OK); + } + else { + return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); + } } else { return new ResponseEntity<>(HttpStatus.UNAUTHORIZED); diff --git a/src/main/java/com/indexzero/finals/service/impl/EntranceServiceImpl.java b/src/main/java/com/indexzero/finals/service/impl/EntranceServiceImpl.java index 3d6e5d5..fc4f979 100644 --- a/src/main/java/com/indexzero/finals/service/impl/EntranceServiceImpl.java +++ b/src/main/java/com/indexzero/finals/service/impl/EntranceServiceImpl.java @@ -32,7 +32,7 @@ public class EntranceServiceImpl implements EntranceService { public ResponseEntity> getEmployeeEntrances(Pageable pageable, Authentication auth) { Employee employee = employeeRepository.findByLogin(auth.getName()); System.out.println(employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList())); - List entrances = employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()); + List entrances = employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()).reversed(); Page page = new PageImpl<>(entrances, pageable, entrances.size()); return new ResponseEntity<>(page, HttpStatus.OK); } @@ -40,7 +40,7 @@ public class EntranceServiceImpl implements EntranceService { @Override public ResponseEntity getLastEntrance(Authentication auth) { Employee employee = employeeRepository.findByLogin(auth.getName()); - List entrances = employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()); + List entrances = employee.getEntrances().stream().map(EntranceMapper::convertToDTO).toList(); System.out.println(entrances.getLast()); return new ResponseEntity<>(entrances.getLast(), HttpStatus.OK); } @@ -48,7 +48,7 @@ public class EntranceServiceImpl implements EntranceService { @Override public ResponseEntity> getAllEntrances(Pageable pageable) { List entrances = entranceRepository.findAll(); - List entrancesdto = entrances.stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()); + List entrancesdto = entrances.stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()).reversed(); Page page = new PageImpl<>(entrancesdto, pageable, entrances.size()); return new ResponseEntity<>(page, HttpStatus.OK); @@ -59,7 +59,7 @@ public class EntranceServiceImpl implements EntranceService { Employee e = employeeRepository.findByLogin(login); if(e != null) { List entrances = e.getEntrances(); - List entrancesdto = entrances.stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()); + List entrancesdto = entrances.stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()).reversed(); Page page = new PageImpl<>(entrancesdto, pageable, entrances.size()); diff --git a/src/test/java/com/indexzero/finals/EmployeeControllerTests.java b/src/test/java/com/indexzero/finals/EmployeeControllerTests.java index cfe3993..a0063bf 100644 --- a/src/test/java/com/indexzero/finals/EmployeeControllerTests.java +++ b/src/test/java/com/indexzero/finals/EmployeeControllerTests.java @@ -7,7 +7,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -38,6 +38,86 @@ class EmployeeControllerTests { .andExpect(status().isUnauthorized()); } + @Test + void doorOpen() throws Exception { + this.mockMvc.perform( + patch("/api/employee/open") + .param("code", "1234567890123456789") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isOk()); + } + + @Test + void doorOpenWrongCode() throws Exception { + this.mockMvc.perform( + patch("/api/employee/open") + .param("code", "1234567770123456789") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isUnauthorized()); + } + + @Test + void lockAndUnlockUser() throws Exception { + this.mockMvc.perform( + patch("/api/employee/ipetrov/blocked") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isOk()); + this.mockMvc.perform( + patch("/api/employee/ipetrov/active") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isOk()); + } + + @Test + void lockAndUnlockUserNotFound() throws Exception { + this.mockMvc.perform( + patch("/api/employee/PetrTestovich/blocked") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isNotFound()); + this.mockMvc.perform( + patch("/api/employee/PetrTestovich/active") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isNotFound()); + } + + @Test + void lockAndUnlockUserForbidden() throws Exception { + this.mockMvc.perform( + patch("/api/employee/PetrTestovich/blocked") + .with(httpBasic("afedorov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isForbidden()); + this.mockMvc.perform( + patch("/api/employee/PetrTestovich/active") + .with(httpBasic("afedorov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isForbidden()); + } + + @Test + void getAll() throws Exception { + this.mockMvc.perform( + get("/api/employee/all") + .with(httpBasic("pivanov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isOk()); + } + + @Test + void getAllForbidden() throws Exception { + this.mockMvc.perform( + get("/api/employee/all") + .with(httpBasic("afedorov", "HelloWorld1234"))) + .andDo(print()) + .andExpect(status().isForbidden()); + } + }