File size: 2,028 Bytes
d09b3be | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 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;
@ExtendWith(MockitoExtension.class)
class LeaveServiceImplTest {
@Mock
private LeaveRequestRepository leaveRequestRepository;
@Mock
private UserContextProvider userContextProvider;
@Mock
private LeaveScheduleService leaveScheduleService;
@Mock
private LeaveRequestResponseMapper leaveRequestResponseMapper;
@InjectMocks
private LeaveServiceImpl leaveService;
@Test
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());
}
}
|