blob: 8475680a71ea7a783d2e7ad4ca304f469ba380f0 [file] [log] [blame]
package edu.bjtu.groupone.backend;
import edu.bjtu.groupone.backend.domain.entity.User;
import edu.bjtu.groupone.backend.mapper.UserMapper;
import edu.bjtu.groupone.backend.service.impl.UserServImpl;
import edu.bjtu.groupone.backend.utils.EmailUtil;
import org.junit.jupiter.api.BeforeEach;
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 java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
class UserServiceImplTest {
@Mock
private UserMapper userMapper;
@InjectMocks
private UserServImpl userService;
@Mock
private EmailUtil emailUtil;
private User testUser;
private User user;
@BeforeEach
void setUp() {
testUser = new User();
testUser.setUserId(1);
testUser.setUsername("testuser");
testUser.setEmail("test@example.com");
user = new User();
user.setUserId(1);
user.setEmail("test@example.com");
}
@Test
void deleteUser_shouldCallMapper() {
// 模拟
when(userMapper.deleteUser(1)).thenReturn(1);
// 调用
userService.deleteUser(1);
// 验证
verify(userMapper, times(1)).deleteUser(1);
}
@Test
void updateUser_shouldCallMapper() {
// 模拟
when(userMapper.updateUser(any(User.class))).thenReturn(1);
// 调用
userService.updateUser(testUser);
// 验证
verify(userMapper, times(1)).updateUser(any(User.class));
}
@Test
void getUserById_shouldReturnUser() {
// 模拟
when(userMapper.selectUserById(1)).thenReturn(testUser);
// 调用
User result = userService.getUserById(1);
// 验证
assertEquals(testUser, result);
verify(userMapper, times(1)).selectUserById(1);
}
@Test
void getAllUsers_shouldReturnList() {
// 模拟
List<User> users = Arrays.asList(testUser, new User());
when(userMapper.selectAllUsers()).thenReturn(users);
// 调用
List<User> result = userService.getAllUsers();
// 验证
assertEquals(2, result.size());
verify(userMapper, times(1)).selectAllUsers();
}
@Test
void getRemainingTasks_Success() {
when(userMapper.selectUserById(1)).thenReturn(user);
when(userMapper.countRemainingTasks(1)).thenReturn(3);
int result = userService.getRemainingTasks(1);
assertEquals(3, result);
}
@Test
void getRemainingTasks_UserNotFound() {
when(userMapper.selectUserById(999)).thenReturn(null);
int result = userService.getRemainingTasks(999);
assertEquals(-1, result);
}
}