Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 1 | package edu.bjtu.groupone.backend; |
| 2 | |
22301014 | f3cf5d5 | 2025-05-29 16:19:04 +0800 | [diff] [blame] | 3 | import edu.bjtu.groupone.backend.domain.entity.User; |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 4 | import edu.bjtu.groupone.backend.mapper.UserMapper; |
| 5 | import edu.bjtu.groupone.backend.service.impl.UserServImpl; |
晓瑞223 | e046c3a | 2025-06-05 22:08:29 +0800 | [diff] [blame^] | 6 | import edu.bjtu.groupone.backend.utils.EmailUtil; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 7 | import org.junit.jupiter.api.BeforeEach; |
| 8 | import org.junit.jupiter.api.Test; |
| 9 | import org.junit.jupiter.api.extension.ExtendWith; |
| 10 | import org.mockito.InjectMocks; |
| 11 | import org.mockito.Mock; |
| 12 | import org.mockito.junit.jupiter.MockitoExtension; |
| 13 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 14 | import java.util.Arrays; |
| 15 | import java.util.List; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 16 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 17 | import static org.junit.jupiter.api.Assertions.*; |
| 18 | import static org.mockito.ArgumentMatchers.any; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 19 | import static org.mockito.Mockito.*; |
| 20 | |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 21 | @ExtendWith(MockitoExtension.class) |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 22 | class UserServiceImplTest { |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 23 | |
| 24 | @Mock |
| 25 | private UserMapper userMapper; |
| 26 | |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 27 | @InjectMocks |
| 28 | private UserServImpl userService; |
晓瑞223 | e046c3a | 2025-06-05 22:08:29 +0800 | [diff] [blame^] | 29 | @Mock |
| 30 | private EmailUtil emailUtil; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 31 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 32 | private User testUser; |
晓瑞223 | e046c3a | 2025-06-05 22:08:29 +0800 | [diff] [blame^] | 33 | private User user; |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 34 | @BeforeEach |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 35 | void setUp() { |
| 36 | testUser = new User(); |
| 37 | testUser.setUserId(1); |
| 38 | testUser.setUsername("testuser"); |
| 39 | testUser.setEmail("test@example.com"); |
晓瑞223 | e046c3a | 2025-06-05 22:08:29 +0800 | [diff] [blame^] | 40 | user = new User(); |
| 41 | user.setUserId(1); |
| 42 | user.setEmail("test@example.com"); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 43 | } |
| 44 | |
| 45 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 46 | void deleteUser_shouldCallMapper() { |
| 47 | // 模拟 |
| 48 | when(userMapper.deleteUser(1)).thenReturn(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 49 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 50 | // 调用 |
| 51 | userService.deleteUser(1); |
| 52 | |
| 53 | // 验证 |
| 54 | verify(userMapper, times(1)).deleteUser(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 55 | } |
| 56 | |
| 57 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 58 | void updateUser_shouldCallMapper() { |
| 59 | // 模拟 |
| 60 | when(userMapper.updateUser(any(User.class))).thenReturn(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 61 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 62 | // 调用 |
| 63 | userService.updateUser(testUser); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 64 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 65 | // 验证 |
| 66 | verify(userMapper, times(1)).updateUser(any(User.class)); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 67 | } |
| 68 | |
| 69 | @Test |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 70 | void getUserById_shouldReturnUser() { |
| 71 | // 模拟 |
| 72 | when(userMapper.selectUserById(1)).thenReturn(testUser); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 73 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 74 | // 调用 |
| 75 | User result = userService.getUserById(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 76 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 77 | // 验证 |
| 78 | assertEquals(testUser, result); |
| 79 | verify(userMapper, times(1)).selectUserById(1); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 80 | } |
| 81 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 82 | @Test |
| 83 | void getAllUsers_shouldReturnList() { |
| 84 | // 模拟 |
| 85 | List<User> users = Arrays.asList(testUser, new User()); |
| 86 | when(userMapper.selectAllUsers()).thenReturn(users); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 87 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 88 | // 调用 |
| 89 | List<User> result = userService.getAllUsers(); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 90 | |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 91 | // 验证 |
| 92 | assertEquals(2, result.size()); |
| 93 | verify(userMapper, times(1)).selectAllUsers(); |
Your Name | 292c25d | 2025-05-25 01:21:44 +0800 | [diff] [blame] | 94 | } |
晓瑞223 | e046c3a | 2025-06-05 22:08:29 +0800 | [diff] [blame^] | 95 | @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 | } |
晓瑞223 | 1b42236 | 2025-06-04 01:09:31 +0800 | [diff] [blame] | 113 | } |