DXLabAIAttendance / src /test /java /com /attendenceSystem /module /attendance /service /LeaveServiceImplTest.java
| package com.attendenceSystem.module.attendance.service; | |
| import java.time.LocalDate; | |
| import org.junit.jupiter.api.Test; | |
| import org.junit.jupiter.api.extension.ExtendWith; | |
| import org.mockito.InjectMocks; | |
| import org.mockito.Mock; | |
| import org.mockito.junit.jupiter.MockitoExtension; | |
| import com.attendenceSystem.module.attendance.dto.request.CreateLeaveRequest; | |
| import com.attendenceSystem.module.attendance.dto.response.LeaveRequestResponse; | |
| import com.attendenceSystem.module.attendance.mapper.response.LeaveRequestResponseMapper; | |
| import com.attendenceSystem.module.attendance.repository.LeaveRequestRepository; | |
| import com.attendenceSystem.module.attendance.service.impl.LeaveServiceImpl; | |
| import com.attendenceSystem.module.user.entity.User; | |
| import com.attendenceSystem.module.user.provider.UserContextProvider; | |
| import static org.mockito.Mockito.verify; | |
| import static org.mockito.Mockito.when; | |
| class LeaveServiceImplTest { | |
| private LeaveRequestRepository leaveRequestRepository; | |
| private UserContextProvider userContextProvider; | |
| private LeaveScheduleService leaveScheduleService; | |
| private LeaveRequestResponseMapper leaveRequestResponseMapper; | |
| private LeaveServiceImpl leaveService; | |
| void testCreateLeaveRequestCallsValidateBlackoutPeriod() { | |
| // Arrange | |
| CreateLeaveRequest request = new CreateLeaveRequest(); | |
| request.setStartDate(LocalDate.now().plusDays(1)); | |
| request.setEndDate(LocalDate.now().plusDays(2)); | |
| User user = new User(); | |
| when(userContextProvider.getCurrentUserEntity()).thenReturn(user); | |
| when(leaveRequestResponseMapper.fromEntity(org.mockito.ArgumentMatchers.any())) | |
| .thenReturn(org.mockito.Mockito.mock(LeaveRequestResponse.class)); | |
| // Act | |
| leaveService.createLeaveRequest(request); | |
| // Assert | |
| verify(leaveScheduleService).validateBlackoutPeriod(request.getStartDate()); | |
| } | |
| } | |