blob: 8475680a71ea7a783d2e7ad4ca304f469ba380f0 [file] [log] [blame]
Your Name292c25d2025-05-25 01:21:44 +08001package edu.bjtu.groupone.backend;
2
22301014f3cf5d52025-05-29 16:19:04 +08003import edu.bjtu.groupone.backend.domain.entity.User;
晓瑞2231b422362025-06-04 01:09:31 +08004import edu.bjtu.groupone.backend.mapper.UserMapper;
5import edu.bjtu.groupone.backend.service.impl.UserServImpl;
晓瑞223e046c3a2025-06-05 22:08:29 +08006import edu.bjtu.groupone.backend.utils.EmailUtil;
Your Name292c25d2025-05-25 01:21:44 +08007import org.junit.jupiter.api.BeforeEach;
8import org.junit.jupiter.api.Test;
9import org.junit.jupiter.api.extension.ExtendWith;
10import org.mockito.InjectMocks;
11import org.mockito.Mock;
12import org.mockito.junit.jupiter.MockitoExtension;
13
晓瑞2231b422362025-06-04 01:09:31 +080014import java.util.Arrays;
15import java.util.List;
Your Name292c25d2025-05-25 01:21:44 +080016
晓瑞2231b422362025-06-04 01:09:31 +080017import static org.junit.jupiter.api.Assertions.*;
18import static org.mockito.ArgumentMatchers.any;
Your Name292c25d2025-05-25 01:21:44 +080019import static org.mockito.Mockito.*;
20
Your Name292c25d2025-05-25 01:21:44 +080021@ExtendWith(MockitoExtension.class)
晓瑞2231b422362025-06-04 01:09:31 +080022class UserServiceImplTest {
Your Name292c25d2025-05-25 01:21:44 +080023
24 @Mock
25 private UserMapper userMapper;
26
Your Name292c25d2025-05-25 01:21:44 +080027 @InjectMocks
28 private UserServImpl userService;
晓瑞223e046c3a2025-06-05 22:08:29 +080029 @Mock
30 private EmailUtil emailUtil;
Your Name292c25d2025-05-25 01:21:44 +080031
晓瑞2231b422362025-06-04 01:09:31 +080032 private User testUser;
晓瑞223e046c3a2025-06-05 22:08:29 +080033 private User user;
Your Name292c25d2025-05-25 01:21:44 +080034 @BeforeEach
晓瑞2231b422362025-06-04 01:09:31 +080035 void setUp() {
36 testUser = new User();
37 testUser.setUserId(1);
38 testUser.setUsername("testuser");
39 testUser.setEmail("test@example.com");
晓瑞223e046c3a2025-06-05 22:08:29 +080040 user = new User();
41 user.setUserId(1);
42 user.setEmail("test@example.com");
Your Name292c25d2025-05-25 01:21:44 +080043 }
44
45 @Test
晓瑞2231b422362025-06-04 01:09:31 +080046 void deleteUser_shouldCallMapper() {
47 // 模拟
48 when(userMapper.deleteUser(1)).thenReturn(1);
Your Name292c25d2025-05-25 01:21:44 +080049
晓瑞2231b422362025-06-04 01:09:31 +080050 // 调用
51 userService.deleteUser(1);
52
53 // 验证
54 verify(userMapper, times(1)).deleteUser(1);
Your Name292c25d2025-05-25 01:21:44 +080055 }
56
57 @Test
晓瑞2231b422362025-06-04 01:09:31 +080058 void updateUser_shouldCallMapper() {
59 // 模拟
60 when(userMapper.updateUser(any(User.class))).thenReturn(1);
Your Name292c25d2025-05-25 01:21:44 +080061
晓瑞2231b422362025-06-04 01:09:31 +080062 // 调用
63 userService.updateUser(testUser);
Your Name292c25d2025-05-25 01:21:44 +080064
晓瑞2231b422362025-06-04 01:09:31 +080065 // 验证
66 verify(userMapper, times(1)).updateUser(any(User.class));
Your Name292c25d2025-05-25 01:21:44 +080067 }
68
69 @Test
晓瑞2231b422362025-06-04 01:09:31 +080070 void getUserById_shouldReturnUser() {
71 // 模拟
72 when(userMapper.selectUserById(1)).thenReturn(testUser);
Your Name292c25d2025-05-25 01:21:44 +080073
晓瑞2231b422362025-06-04 01:09:31 +080074 // 调用
75 User result = userService.getUserById(1);
Your Name292c25d2025-05-25 01:21:44 +080076
晓瑞2231b422362025-06-04 01:09:31 +080077 // 验证
78 assertEquals(testUser, result);
79 verify(userMapper, times(1)).selectUserById(1);
Your Name292c25d2025-05-25 01:21:44 +080080 }
81
晓瑞2231b422362025-06-04 01:09:31 +080082 @Test
83 void getAllUsers_shouldReturnList() {
84 // 模拟
85 List<User> users = Arrays.asList(testUser, new User());
86 when(userMapper.selectAllUsers()).thenReturn(users);
Your Name292c25d2025-05-25 01:21:44 +080087
晓瑞2231b422362025-06-04 01:09:31 +080088 // 调用
89 List<User> result = userService.getAllUsers();
Your Name292c25d2025-05-25 01:21:44 +080090
晓瑞2231b422362025-06-04 01:09:31 +080091 // 验证
92 assertEquals(2, result.size());
93 verify(userMapper, times(1)).selectAllUsers();
Your Name292c25d2025-05-25 01:21:44 +080094 }
晓瑞223e046c3a2025-06-05 22:08:29 +080095 @Test
96 void getRemainingTasks_Success() {
97 when(userMapper.selectUserById(1)).thenReturn(user);
98 when(userMapper.countRemainingTasks(1)).thenReturn(3);
99
100 int result = userService.getRemainingTasks(1);
101
102 assertEquals(3, result);
103 }
104
105 @Test
106 void getRemainingTasks_UserNotFound() {
107 when(userMapper.selectUserById(999)).thenReturn(null);
108
109 int result = userService.getRemainingTasks(999);
110
111 assertEquals(-1, result);
112 }
晓瑞2231b422362025-06-04 01:09:31 +0800113}