From fe5d17fb2f97967dabdc589af9385a18ec767099 Mon Sep 17 00:00:00 2001 From: VishwajeetK Date: Tue, 21 Jan 2025 10:26:16 +0530 Subject: [PATCH 1/4] test: Add test for remove parking spot --- .../one_to_one/service/EmployeeServiceTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java b/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java index b32de81..ed1cec9 100644 --- a/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java +++ b/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java @@ -152,4 +152,14 @@ void test_assign_parking_spot_to_employee_should_employee_response() { verify(parkingSpotRepository, times(1)).findBySpotNumber("A1"); verify(employeeRepository, times(1)).save(any(Employee.class)); } + + @Test + void test_remove_parking_spot_assign_to_employee() { + when(employeeRepository.findById(1L)).thenReturn(Optional.of(employee)); + when(employeeRepository.save(any(Employee.class))).thenReturn(employee); + + EmployeeResponse employeeResponse = employeeService.removeParkingLot(1L); + assertNotNull(employeeResponse); + assertNull(employeeResponse.getSpotNumber()); + } } From 1f618897f4e4ee2ffa318764d8d5c9199bc3c6d1 Mon Sep 17 00:00:00 2001 From: VishwajeetK Date: Tue, 21 Jan 2025 10:26:40 +0530 Subject: [PATCH 2/4] feat: Implement method removeParkingLot and make test pass --- .../one_to_one/service/EmployeeServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java b/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java index 80fbc6e..6a3088d 100644 --- a/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java +++ b/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java @@ -79,7 +79,12 @@ public EmployeeResponse assignParkingLot(Long employeeId, String spotNumber) { @Override public EmployeeResponse removeParkingLot(Long employeeId) { - return null; + Employee employee = employeeRepository.findById(employeeId).orElseThrow( + () -> new EmployeeNotFoundException("Employee with id: "+employeeId+" not found") + ); + employee.setParkingSpot(null); + Employee removedParkingSpot = employeeRepository.save(employee); + return EmployeeResponse.toEmployeeResponse(removedParkingSpot); } @Override From 45138b926d67e3497ffda272a15f38037871572e Mon Sep 17 00:00:00 2001 From: VishwajeetK Date: Tue, 21 Jan 2025 11:00:09 +0530 Subject: [PATCH 3/4] test: Create test for find employee with parking spot --- .../one_to_one/service/EmployeeServiceTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java b/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java index ed1cec9..a775b8c 100644 --- a/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java +++ b/app-db-relationships/src/test/java/com/spring/relationship/one_to_one/service/EmployeeServiceTest.java @@ -162,4 +162,18 @@ void test_remove_parking_spot_assign_to_employee() { assertNotNull(employeeResponse); assertNull(employeeResponse.getSpotNumber()); } + + @Test + void test_find_employee_with_parking_spot() { + parkingSpot.setEmployee(employee); + parkingSpot.setAssigned(true); + employee.setParkingSpot(parkingSpot); + when(employeeRepository.findById(1L)).thenReturn(Optional.of(employee)); + when(parkingSpotRepository.findBySpotNumber("A1")).thenReturn(Optional.of(parkingSpot)); + + Optional employeeResponse = employeeService.findEmployeeWithParkingSpot(1L); + assertNotNull(employeeResponse); + assertEquals(employee.getEmployeeName(), employeeResponse.get().getEmployeeName()); + assertEquals(employee.getParkingSpot().getSpotNumber(), employeeResponse.get().getSpotNumber()); + } } From 6dc037c5d19e9ffceb3a52833bca2c1169fd9877 Mon Sep 17 00:00:00 2001 From: VishwajeetK Date: Tue, 21 Jan 2025 11:00:41 +0530 Subject: [PATCH 4/4] feat: Implement method findEmployeeWithParkingSpot and make test pass --- .../relationship/one_to_one/service/EmployeeServiceImpl.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java b/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java index 6a3088d..14dc190 100644 --- a/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java +++ b/app-db-relationships/src/main/java/com/spring/relationship/one_to_one/service/EmployeeServiceImpl.java @@ -89,6 +89,9 @@ public EmployeeResponse removeParkingLot(Long employeeId) { @Override public Optional findEmployeeWithParkingSpot(Long employeeId) { - return Optional.empty(); + Employee employee = employeeRepository.findById(employeeId).orElseThrow( + () -> new EmployeeNotFoundException("Employee with id: "+employeeId+" not found") + ); + return Optional.of(EmployeeResponse.toEmployeeResponse(employee)); } }