Commit 3235b4e70754a428ef24860c6aeee9762d447241

Authored by YunaiV
1 parent 40c9449f

fix: 优化对 JDK8 的兼容性

yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/dal/mysql/message/ImGroupMessageMapperTest.java
1 1 package cn.iocoder.yudao.module.im.dal.mysql.message;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
4 5 import cn.iocoder.yudao.module.im.dal.dataobject.message.ImGroupMessageDO;
5 6 import cn.iocoder.yudao.module.im.enums.message.ImGroupMessageReceiptStatusEnum;
... ... @@ -10,7 +11,6 @@ import org.junit.jupiter.api.Test;
10 11 import java.time.LocalDateTime;
11 12 import java.util.List;
12 13  
13   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
14 14 import static org.junit.jupiter.api.Assertions.*;
15 15  
16 16 /**
... ... @@ -36,7 +36,7 @@ public class ImGroupMessageMapperTest extends BaseDbUnitTest {
36 36 mapper.insert(msg20);
37 37  
38 38 // 调用:只查群 10
39   - List<ImGroupMessageDO> result = mapper.selectListByMinId(listOf(10L), 0L, FAR_PAST, 100);
  39 + List<ImGroupMessageDO> result = mapper.selectListByMinId(ListUtil.of(10L), 0L, FAR_PAST, 100);
40 40  
41 41 // 断言:只有 msg10
42 42 assertEquals(1, result.size());
... ... @@ -51,7 +51,7 @@ public class ImGroupMessageMapperTest extends BaseDbUnitTest {
51 51 ImGroupMessageDO recalled = buildMessage(10L, 1L, ImMessageStatusEnum.RECALL);
52 52 mapper.insert(recalled);
53 53  
54   - List<ImGroupMessageDO> result = mapper.selectListByMinId(listOf(10L), 0L, FAR_PAST, 100);
  54 + List<ImGroupMessageDO> result = mapper.selectListByMinId(ListUtil.of(10L), 0L, FAR_PAST, 100);
55 55  
56 56 // 断言:撤回消息一并返回,由客户端按 status 切换渲染
57 57 assertEquals(2, result.size());
... ... @@ -67,7 +67,7 @@ public class ImGroupMessageMapperTest extends BaseDbUnitTest {
67 67 outWindow.setSendTime(LocalDateTime.now().minusDays(40));
68 68 mapper.insert(outWindow);
69 69  
70   - List<ImGroupMessageDO> result = mapper.selectListByMinId(listOf(10L), 0L,
  70 + List<ImGroupMessageDO> result = mapper.selectListByMinId(ListUtil.of(10L), 0L,
71 71 LocalDateTime.now().minusDays(30), 100);
72 72  
73 73 assertEquals(1, result.size());
... ... @@ -85,7 +85,7 @@ public class ImGroupMessageMapperTest extends BaseDbUnitTest {
85 85 mapper.insert(m3);
86 86  
87 87 // 调用:size=2,返回 id 最小的 2 条
88   - List<ImGroupMessageDO> result = mapper.selectListByMinId(listOf(10L), 0L, FAR_PAST, 2);
  88 + List<ImGroupMessageDO> result = mapper.selectListByMinId(ListUtil.of(10L), 0L, FAR_PAST, 2);
89 89  
90 90 assertEquals(2, result.size());
91 91 assertTrue(result.get(0).getId() < result.get(1).getId());
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/friend/ImFriendRequestServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.friend;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
5 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
... ... @@ -24,7 +25,6 @@ import java.time.LocalDateTime;
24 25 import java.util.List;
25 26  
26 27 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
27   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
28 28 import static org.junit.jupiter.api.Assertions.*;
29 29 import static org.mockito.ArgumentMatchers.any;
30 30 import static org.mockito.ArgumentMatchers.anyInt;
... ... @@ -229,7 +229,7 @@ public class ImFriendRequestServiceImplTest extends BaseMockitoUnitTest {
229 229 friendRequestService.agreeFriendRequest(2L, 100L);
230 230  
231 231 // 断言:双向建立好友 + 推 APPROVED 给发起方
232   - verify(adminUserApi).validateUserList(listOf(1L, 2L));
  232 + verify(adminUserApi).validateUserList(ListUtil.of(1L, 2L));
233 233 verify(friendService).becomeFriends(request);
234 234 verify(websocketService).sendPrivateMessageAsync(eq(1L), any(ImPrivateMessageDTO.class));
235 235 }
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/friend/ImFriendServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.friend;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
5 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
... ... @@ -22,7 +23,6 @@ import java.util.Collections;
22 23 import java.util.List;
23 24  
24 25 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.FRIEND_NOT_FRIEND;
25   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
26 26 import static org.junit.jupiter.api.Assertions.*;
27 27 import static org.mockito.ArgumentMatchers.*;
28 28 import static org.mockito.Mockito.never;
... ... @@ -249,7 +249,7 @@ public class ImFriendServiceImplTest extends BaseMockitoUnitTest {
249 249  
250 250 @Test
251 251 public void testGetFriendList() {
252   - List<ImFriendDO> list = listOf(
  252 + List<ImFriendDO> list = ListUtil.of(
253 253 ImFriendDO.builder().id(1L).userId(1L).friendUserId(2L)
254 254 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
255 255 ImFriendDO.builder().id(2L).userId(1L).friendUserId(3L)
... ... @@ -277,9 +277,9 @@ public class ImFriendServiceImplTest extends BaseMockitoUnitTest {
277 277 ImFriendDO friend3 = ImFriendDO.builder().id(2L).userId(1L).friendUserId(3L)
278 278 .status(CommonStatusEnum.ENABLE.getStatus()).build();
279 279 when(imFriendMapper.selectListByUserIdAndStatus(1L, CommonStatusEnum.ENABLE.getStatus()))
280   - .thenReturn(listOf(friend2, friend3));
  280 + .thenReturn(ListUtil.of(friend2, friend3));
281 281 when(imFriendMapper.selectListByUserIdsAndFriendUserIdAndStatus(anyCollection(), eq(1L),
282   - eq(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(listOf(
  282 + eq(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(ListUtil.of(
283 283 ImFriendDO.builder().userId(2L).friendUserId(1L)
284 284 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
285 285  
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/group/ImGroupMemberServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.group;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
5 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
... ... @@ -18,7 +19,6 @@ import org.springframework.dao.DuplicateKeyException;
18 19 import java.util.List;
19 20  
20 21 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_NOT_IN_GROUP;
21   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
22 22 import static org.junit.jupiter.api.Assertions.*;
23 23 import static org.mockito.ArgumentMatchers.*;
24 24 import static org.mockito.Mockito.*;
... ... @@ -117,10 +117,10 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
117 117 ImGroupMemberDO exist4 = ImGroupMemberDO.builder().id(40L).groupId(10L).userId(4L)
118 118 .status(CommonStatusEnum.ENABLE.getStatus()).build();
119 119 when(groupMemberMapper.selectListByGroupIdAndUserIds(eq(10L), anyCollection()))
120   - .thenReturn(listOf(exist3, exist4));
  120 + .thenReturn(ListUtil.of(exist3, exist4));
121 121  
122 122 // 调用
123   - groupMemberService.addGroupMembers(10L, listOf(2L, 3L, 4L));
  123 + groupMemberService.addGroupMembers(10L, ListUtil.of(2L, 3L, 4L));
124 124  
125 125 // 断言:updates 只有用户 3;inserts 只有用户 2
126 126 verify(groupMemberMapper).updateRejoinFields(eq(30L), eq(CommonStatusEnum.ENABLE.getStatus()),
... ... @@ -132,7 +132,7 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
132 132 @Test
133 133 public void testAddGroupMembers_allExisting_onlyUpdates() {
134 134 // 准备:传入的 3 个用户都已有记录(全部 DISABLE) → 只做 update,不做 insert
135   - List<ImGroupMemberDO> existing = listOf(
  135 + List<ImGroupMemberDO> existing = ListUtil.of(
136 136 ImGroupMemberDO.builder().id(1L).groupId(10L).userId(2L)
137 137 .status(CommonStatusEnum.DISABLE.getStatus()).build(),
138 138 ImGroupMemberDO.builder().id(2L).groupId(10L).userId(3L)
... ... @@ -141,7 +141,7 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
141 141 when(groupMemberMapper.selectListByGroupIdAndUserIds(eq(10L), anyCollection()))
142 142 .thenReturn(existing);
143 143  
144   - groupMemberService.addGroupMembers(10L, listOf(2L, 3L));
  144 + groupMemberService.addGroupMembers(10L, ListUtil.of(2L, 3L));
145 145  
146 146 verify(groupMemberMapper, times(2)).updateRejoinFields(anyLong(), eq(CommonStatusEnum.ENABLE.getStatus()),
147 147 any(), eq(ImGroupMemberRoleEnum.NORMAL.getRole()), isNull(), isNull());
... ... @@ -152,9 +152,9 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
152 152 public void testAddGroupMembers_allNew_onlyInserts() {
153 153 // 准备:都不存在 → 只做 insert
154 154 when(groupMemberMapper.selectListByGroupIdAndUserIds(eq(10L), anyCollection()))
155   - .thenReturn(listOf());
  155 + .thenReturn(ListUtil.of());
156 156  
157   - groupMemberService.addGroupMembers(10L, listOf(2L, 3L));
  157 + groupMemberService.addGroupMembers(10L, ListUtil.of(2L, 3L));
158 158  
159 159 verify(groupMemberMapper, never()).updateRejoinFields(anyLong(), anyInt(), any(), anyInt(), any(), any());
160 160 verify(groupMemberMapper).insertBatch(anyList());
... ... @@ -163,14 +163,14 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
163 163 @Test
164 164 public void testAddGroupMembers_allExistingEnabled_nothingHappens() {
165 165 // 准备:都已存在且 ENABLE → 既不 update 也不 insert
166   - List<ImGroupMemberDO> existing = listOf(
  166 + List<ImGroupMemberDO> existing = ListUtil.of(
167 167 ImGroupMemberDO.builder().id(1L).groupId(10L).userId(2L)
168 168 .status(CommonStatusEnum.ENABLE.getStatus()).build()
169 169 );
170 170 when(groupMemberMapper.selectListByGroupIdAndUserIds(eq(10L), anyCollection()))
171 171 .thenReturn(existing);
172 172  
173   - groupMemberService.addGroupMembers(10L, listOf(2L));
  173 + groupMemberService.addGroupMembers(10L, ListUtil.of(2L));
174 174  
175 175 verify(groupMemberMapper, never()).updateRejoinFields(anyLong(), anyInt(), any(), anyInt(), any(), any());
176 176 verify(groupMemberMapper, never()).insertBatch(anyList());
... ... @@ -180,14 +180,14 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
180 180 public void testAddGroupMembers_batchInsertDuplicateFallback() {
181 181 // 准备:两个新增成员,批量插入失败时降级为逐个 addGroupMember
182 182 when(groupMemberMapper.selectListByGroupIdAndUserIds(eq(10L), anyCollection()))
183   - .thenReturn(listOf());
  183 + .thenReturn(ListUtil.of());
184 184 doThrow(new DuplicateKeyException("concurrent batch insert"))
185 185 .when(groupMemberMapper).insertBatch(anyList());
186 186 // addGroupMember 单条兜底逻辑
187 187 when(groupMemberMapper.selectByGroupIdAndUserId(eq(10L), anyLong())).thenReturn(null);
188 188  
189 189 // 调用
190   - groupMemberService.addGroupMembers(10L, listOf(2L, 3L));
  190 + groupMemberService.addGroupMembers(10L, ListUtil.of(2L, 3L));
191 191  
192 192 // 断言:降级为逐条调用 insert
193 193 verify(groupMemberMapper, times(2)).insert(any(ImGroupMemberDO.class));
... ... @@ -245,7 +245,7 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
245 245 // 公开字段昵称变化 → 全员广播 GROUP_MEMBER_NICKNAME_UPDATE
246 246 verify(groupMessageService).sendGroupMessage(eq(1L), any(cn.iocoder.yudao.module.im.service.message.dto.ImGroupMessageSendDTO.class));
247 247 // 个人字段 silent 变化 → 仅自己多端同步 GROUP_MEMBER_SETTING_UPDATE
248   - verify(groupMessageService).sendGroupMessage(eq(1L), eq(listOf(1L)),
  248 + verify(groupMessageService).sendGroupMessage(eq(1L), eq(ListUtil.of(1L)),
249 249 any(cn.iocoder.yudao.module.im.service.message.dto.ImGroupMessageSendDTO.class));
250 250 }
251 251  
... ... @@ -279,7 +279,7 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
279 279  
280 280 @Test
281 281 public void testRemoveGroupMembers_batch() {
282   - groupMemberService.removeGroupMembers(10L, listOf(2L, 3L));
  282 + groupMemberService.removeGroupMembers(10L, ListUtil.of(2L, 3L));
283 283  
284 284 ArgumentCaptor<ImGroupMemberDO> captor = ArgumentCaptor.forClass(ImGroupMemberDO.class);
285 285 verify(groupMemberMapper).updateByGroupIdAndUserIdsAndStatus(eq(10L), anyCollection(),
... ... @@ -304,7 +304,7 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
304 304 @Test
305 305 public void testGetActiveGroupMemberUserIdsByGroupId_extractsUserIds() {
306 306 // 准备:3 个 ENABLE 成员
307   - List<ImGroupMemberDO> members = listOf(
  307 + List<ImGroupMemberDO> members = ListUtil.of(
308 308 ImGroupMemberDO.builder().groupId(10L).userId(1L)
309 309 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
310 310 ImGroupMemberDO.builder().groupId(10L).userId(2L)
... ... @@ -319,13 +319,13 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
319 319 List<Long> userIds = groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L);
320 320  
321 321 // 断言:只返回 userId、顺序保留
322   - assertEquals(listOf(1L, 2L, 3L), userIds);
  322 + assertEquals(ListUtil.of(1L, 2L, 3L), userIds);
323 323 }
324 324  
325 325 @Test
326 326 public void testGetActiveGroupMemberUserIdsByGroupId_emptyList() {
327 327 when(groupMemberMapper.selectListByGroupIdAndStatus(
328   - 10L, CommonStatusEnum.ENABLE.getStatus())).thenReturn(listOf());
  328 + 10L, CommonStatusEnum.ENABLE.getStatus())).thenReturn(ListUtil.of());
329 329  
330 330 List<Long> userIds = groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L);
331 331  
... ... @@ -334,8 +334,8 @@ public class ImGroupMemberServiceImplTest extends BaseMockitoUnitTest {
334 334  
335 335 @Test
336 336 public void testGetGroupMemberListByOwnerAndAdmin_passesRoles() {
337   - List<Integer> roles = listOf(ImGroupMemberRoleEnum.OWNER.getRole(), ImGroupMemberRoleEnum.ADMIN.getRole());
338   - List<ImGroupMemberDO> members = listOf(ImGroupMemberDO.builder().groupId(10L).userId(1L).build());
  337 + List<Integer> roles = ListUtil.of(ImGroupMemberRoleEnum.OWNER.getRole(), ImGroupMemberRoleEnum.ADMIN.getRole());
  338 + List<ImGroupMemberDO> members = ListUtil.of(ImGroupMemberDO.builder().groupId(10L).userId(1L).build());
339 339 when(groupMemberMapper.selectListByGroupIdAndStatusAndRoles(10L, CommonStatusEnum.ENABLE.getStatus(), roles))
340 340 .thenReturn(members);
341 341  
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/group/ImGroupRequestServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.group;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
  4 +import cn.hutool.core.map.MapUtil;
3 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 6 import cn.iocoder.yudao.framework.common.exception.ServiceException;
5 7 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
... ... @@ -28,7 +30,6 @@ import java.util.Collection;
28 30 import java.util.List;
29 31  
30 32 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
31   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
32 33 import static org.junit.jupiter.api.Assertions.*;
33 34 import static org.mockito.ArgumentMatchers.*;
34 35 import static org.mockito.Mockito.*;
... ... @@ -94,7 +95,7 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
94 95 .status(CommonStatusEnum.ENABLE.getStatus()).build();
95 96 when(groupService.validateGroupExists(10L)).thenReturn(group);
96 97 // 群里有 owner + 一个 admin,作为 1503 推送目标
97   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  98 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
98 99 ImGroupMemberDO.builder().groupId(10L).userId(99L)
99 100 .role(ImGroupMemberRoleEnum.OWNER.getRole())
100 101 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
... ... @@ -126,7 +127,7 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
126 127 .joinApproval(true)
127 128 .status(CommonStatusEnum.ENABLE.getStatus()).build();
128 129 when(groupService.validateGroupExists(10L)).thenReturn(group);
129   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  130 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
130 131 ImGroupMemberDO.builder().groupId(10L).userId(99L)
131 132 .role(ImGroupMemberRoleEnum.OWNER.getRole())
132 133 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
... ... @@ -191,7 +192,7 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
191 192 ImGroupDO group = ImGroupDO.builder().id(10L).ownerUserId(99L)
192 193 .status(CommonStatusEnum.ENABLE.getStatus()).build();
193 194 when(groupService.getGroup(10L)).thenReturn(group);
194   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  195 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
195 196 ImGroupMemberDO.builder().groupId(10L).userId(99L)
196 197 .role(ImGroupMemberRoleEnum.OWNER.getRole())
197 198 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
... ... @@ -269,7 +270,7 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
269 270 ImGroupDO group = ImGroupDO.builder().id(10L).ownerUserId(1L)
270 271 .status(CommonStatusEnum.ENABLE.getStatus()).build();
271 272 when(groupService.getGroup(10L)).thenReturn(group);
272   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  273 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
273 274 ImGroupMemberDO.builder().groupId(10L).userId(1L)
274 275 .role(ImGroupMemberRoleEnum.OWNER.getRole())
275 276 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
... ... @@ -290,16 +291,17 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
290 291 .status(CommonStatusEnum.ENABLE.getStatus()).build();
291 292 when(groupService.validateGroupExists(10L)).thenReturn(group);
292 293 when(groupRequestMapper.selectByGroupIdAndUserId(eq(10L), anyLong())).thenReturn(null);
293   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  294 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
294 295 ImGroupMemberDO.builder().groupId(10L).userId(99L)
295 296 .role(ImGroupMemberRoleEnum.OWNER.getRole())
296 297 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
297   - when(adminUserApi.getUserMap(anyCollection())).thenReturn(mapOf(
298   - 2L, buildUser(2L, "用户A"),
299   - 3L, buildUser(3L, "用户B")));
  298 + when(adminUserApi.getUserMap(anyCollection())).thenReturn(MapUtil.<Long, AdminUserRespDTO>builder()
  299 + .put(2L, buildUser(2L, "用户A"))
  300 + .put(3L, buildUser(3L, "用户B"))
  301 + .build());
300 302  
301 303 // 调用:邀请人 1L 邀请 2L、3L(都没有旧记录)
302   - groupRequestService.createInviteRequestList(10L, 1L, listOf(2L, 3L));
  304 + groupRequestService.createInviteRequestList(10L, 1L, ListUtil.of(2L, 3L));
303 305  
304 306 // 断言:插入 2 条 + 推 1503 给 owner(每条 1 帧)共 2 帧
305 307 ArgumentCaptor<ImGroupRequestDO> captor = ArgumentCaptor.forClass(ImGroupRequestDO.class);
... ... @@ -324,14 +326,14 @@ public class ImGroupRequestServiceImplTest extends BaseMockitoUnitTest {
324 326 .setHandleResult(ImGroupRequestHandleResultEnum.REFUSED.getResult());
325 327 when(groupRequestMapper.selectByGroupIdAndUserId(10L, 2L)).thenReturn(null, old);
326 328 when(groupRequestMapper.insert(any(ImGroupRequestDO.class))).thenThrow(new DuplicateKeyException("dup"));
327   - when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(listOf(
  329 + when(groupMemberService.getGroupMemberListByOwnerAndAdmin(10L)).thenReturn(ListUtil.of(
328 330 ImGroupMemberDO.builder().groupId(10L).userId(99L)
329 331 .role(ImGroupMemberRoleEnum.OWNER.getRole())
330 332 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
331   - when(adminUserApi.getUserMap(anyCollection())).thenReturn(mapOf(2L, buildUser(2L, "用户A")));
  333 + when(adminUserApi.getUserMap(anyCollection())).thenReturn(MapUtil.of(2L, buildUser(2L, "用户A")));
332 334  
333 335 // 调用
334   - groupRequestService.createInviteRequestList(10L, 1L, listOf(2L));
  336 + groupRequestService.createInviteRequestList(10L, 1L, ListUtil.of(2L));
335 337  
336 338 // 断言:复用并重置旧邀请申请
337 339 verify(groupRequestMapper).updateInviteByIdReset(eq(50L), eq(1L),
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/group/ImGroupServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.group;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.collection.ListUtil;
  5 +import cn.hutool.core.map.MapUtil;
3 6 import cn.hutool.extra.spring.SpringUtil;
4 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 8 import cn.iocoder.yudao.framework.common.exception.ServiceException;
... ... @@ -43,7 +46,6 @@ import java.util.Map;
43 46 import java.util.Set;
44 47  
45 48 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
46   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
47 49 import static org.junit.jupiter.api.Assertions.*;
48 50 import static org.mockito.ArgumentMatchers.*;
49 51 import static org.mockito.Mockito.*;
... ... @@ -109,13 +111,13 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
109 111 // 准备:创建者 + 2 个初始成员,都是好友
110 112 ImGroupCreateReqVO reqVO = new ImGroupCreateReqVO();
111 113 reqVO.setName("测试群");
112   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
  114 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
113 115 when(groupMapper.insert(any(ImGroupDO.class))).thenAnswer(invocation -> {
114 116 ImGroupDO group = invocation.getArgument(0);
115 117 group.setId(100L);
116 118 return 1;
117 119 });
118   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  120 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
119 121 ImFriendDO.builder().userId(1L).friendUserId(2L)
120 122 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
121 123 ImFriendDO.builder().userId(1L).friendUserId(3L)
... ... @@ -141,15 +143,15 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
141 143 // 准备:初始成员里有非好友
142 144 ImGroupCreateReqVO reqVO = new ImGroupCreateReqVO();
143 145 reqVO.setName("测试群");
144   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
  146 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
145 147 // 只有 2 是好友,3 不是
146   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  148 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
147 149 ImFriendDO.builder().userId(1L).friendUserId(2L)
148 150 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
149 151 AdminUserRespDTO u3 = new AdminUserRespDTO();
150 152 u3.setId(3L);
151 153 u3.setNickname("李四");
152   - when(adminUserApi.getUserMap(anyCollection())).thenReturn(mapOf(3L, u3));
  154 + when(adminUserApi.getUserMap(anyCollection())).thenReturn(MapUtil.of(3L, u3));
153 155  
154 156 // 调用并断言
155 157 ServiceException exception = assertThrows(ServiceException.class,
... ... @@ -328,8 +330,8 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
328 330 // 被邀请人 2 和 3 都是好友
329 331 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
330 332 reqVO.setGroupId(10L);
331   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
332   - List<ImFriendDO> friends = listOf(
  333 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
  334 + List<ImFriendDO> friends = ListUtil.of(
333 335 ImFriendDO.builder().userId(1L).friendUserId(2L)
334 336 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
335 337 ImFriendDO.builder().userId(1L).friendUserId(3L)
... ... @@ -367,7 +369,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
367 369 ImGroupMemberDO.builder().groupId(10L).userId(1L)
368 370 .role(ImGroupMemberRoleEnum.NORMAL.getRole())
369 371 .status(CommonStatusEnum.ENABLE.getStatus()).build());
370   - when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(listOf(
  372 + when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(ListUtil.of(
371 373 ImGroupMemberDO.builder().groupId(10L).userId(99L)
372 374 .role(ImGroupMemberRoleEnum.OWNER.getRole())
373 375 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
... ... @@ -377,8 +379,8 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
377 379  
378 380 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
379 381 reqVO.setGroupId(10L);
380   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
381   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  382 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
  383 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
382 384 ImFriendDO.builder().userId(1L).friendUserId(2L)
383 385 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
384 386 ImFriendDO.builder().userId(1L).friendUserId(3L)
... ... @@ -409,15 +411,15 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
409 411 ImGroupMemberDO.builder().groupId(10L).userId(1L)
410 412 .role(ImGroupMemberRoleEnum.OWNER.getRole())
411 413 .status(CommonStatusEnum.ENABLE.getStatus()).build());
412   - when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(listOf(
  414 + when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(ListUtil.of(
413 415 ImGroupMemberDO.builder().groupId(10L).userId(1L)
414 416 .role(ImGroupMemberRoleEnum.OWNER.getRole())
415 417 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
416 418  
417 419 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
418 420 reqVO.setGroupId(10L);
419   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
420   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  421 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
  422 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
421 423 ImFriendDO.builder().userId(1L).friendUserId(2L)
422 424 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
423 425 ImFriendDO.builder().userId(1L).friendUserId(3L)
... ... @@ -446,18 +448,18 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
446 448 .status(CommonStatusEnum.ENABLE.getStatus()).build();
447 449 when(groupMapper.selectById(10L)).thenReturn(group);
448 450 when(groupMemberService.getActiveGroupMemberListByGroupId(10L))
449   - .thenReturn(listOf(ImGroupMemberDO.builder().groupId(10L).userId(1L)
  451 + .thenReturn(ListUtil.of(ImGroupMemberDO.builder().groupId(10L).userId(1L)
450 452 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
451 453  
452 454 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
453 455 reqVO.setGroupId(10L);
454   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L, 3L)));
  456 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L, 3L)));
455 457 // 只有 2 是好友,3 不是
456   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  458 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
457 459 ImFriendDO.builder().userId(1L).friendUserId(2L)
458 460 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
459 461 AdminUserRespDTO u3 = new AdminUserRespDTO(); u3.setId(3L); u3.setNickname("李四");
460   - when(adminUserApi.getUserMap(anyCollection())).thenReturn(mapOf(3L, u3));
  462 + when(adminUserApi.getUserMap(anyCollection())).thenReturn(MapUtil.of(3L, u3));
461 463  
462 464 ServiceException exception = assertThrows(ServiceException.class,
463 465 () -> groupService.inviteGroupMember(1L, reqVO));
... ... @@ -485,9 +487,9 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
485 487  
486 488 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
487 489 reqVO.setGroupId(10L);
488   - reqVO.setMemberUserIds(new ArrayList<>(listOf(600L, 601L)));
  490 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(600L, 601L)));
489 491 // 被邀请人都是好友
490   - when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(listOf(
  492 + when(friendService.getActiveFriendList(eq(1L), anyCollection())).thenReturn(ListUtil.of(
491 493 ImFriendDO.builder().userId(1L).friendUserId(600L)
492 494 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
493 495 ImFriendDO.builder().userId(1L).friendUserId(601L)
... ... @@ -513,7 +515,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
513 515 .status(CommonStatusEnum.ENABLE.getStatus()).build();
514 516 when(groupMapper.selectById(10L)).thenReturn(group);
515 517 // 用户 2 已在群中
516   - when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(listOf(
  518 + when(groupMemberService.getActiveGroupMemberListByGroupId(10L)).thenReturn(ListUtil.of(
517 519 ImGroupMemberDO.builder().groupId(10L).userId(1L)
518 520 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
519 521 ImGroupMemberDO.builder().groupId(10L).userId(2L)
... ... @@ -522,7 +524,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
522 524  
523 525 ImGroupMemberInviteReqVO reqVO = new ImGroupMemberInviteReqVO();
524 526 reqVO.setGroupId(10L);
525   - reqVO.setMemberUserIds(new ArrayList<>(listOf(2L))); // 只邀请 2,他已在群中
  527 + reqVO.setMemberUserIds(new ArrayList<>(ListUtil.of(2L))); // 只邀请 2,他已在群中
526 528  
527 529 // 调用
528 530 groupService.inviteGroupMember(1L, reqVO);
... ... @@ -607,7 +609,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
607 609  
608 610 ImGroupMemberRemoveReqVO reqVO = new ImGroupMemberRemoveReqVO();
609 611 reqVO.setGroupId(10L);
610   - reqVO.setMemberUserIds(listOf(1L, 2L));
  612 + reqVO.setMemberUserIds(ListUtil.of(1L, 2L));
611 613  
612 614 ServiceException exception = assertThrows(ServiceException.class,
613 615 () -> groupService.removeGroupMember(1L, reqVO));
... ... @@ -629,7 +631,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
629 631 ImGroupMemberDO.builder().groupId(10L).userId(1L)
630 632 .role(ImGroupMemberRoleEnum.OWNER.getRole()).build());
631 633 // 目标:两个普通成员
632   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  634 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
633 635 ImGroupMemberDO.builder().groupId(10L).userId(2L)
634 636 .role(ImGroupMemberRoleEnum.NORMAL.getRole())
635 637 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
... ... @@ -639,7 +641,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
639 641  
640 642 ImGroupMemberRemoveReqVO reqVO = new ImGroupMemberRemoveReqVO();
641 643 reqVO.setGroupId(10L);
642   - reqVO.setMemberUserIds(listOf(2L, 3L));
  644 + reqVO.setMemberUserIds(ListUtil.of(2L, 3L));
643 645  
644 646 groupService.removeGroupMember(1L, reqVO);
645 647  
... ... @@ -666,14 +668,14 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
666 668 ImGroupMemberDO.builder().groupId(10L).userId(1L)
667 669 .role(ImGroupMemberRoleEnum.ADMIN.getRole()).build());
668 670 // 目标:另一个管理员
669   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  671 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
670 672 ImGroupMemberDO.builder().groupId(10L).userId(2L)
671 673 .role(ImGroupMemberRoleEnum.ADMIN.getRole())
672 674 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
673 675  
674 676 ImGroupMemberRemoveReqVO reqVO = new ImGroupMemberRemoveReqVO();
675 677 reqVO.setGroupId(10L);
676   - reqVO.setMemberUserIds(listOf(2L));
  678 + reqVO.setMemberUserIds(ListUtil.of(2L));
677 679  
678 680 ServiceException exception = assertThrows(ServiceException.class,
679 681 () -> groupService.removeGroupMember(1L, reqVO));
... ... @@ -695,14 +697,14 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
695 697 when(groupMemberService.validateMemberInGroup(10L, 1L)).thenReturn(
696 698 ImGroupMemberDO.builder().groupId(10L).userId(1L)
697 699 .role(ImGroupMemberRoleEnum.OWNER.getRole()).build());
698   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  700 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
699 701 ImGroupMemberDO.builder().groupId(10L).userId(99L)
700 702 .role(ImGroupMemberRoleEnum.OWNER.getRole())
701 703 .status(CommonStatusEnum.ENABLE.getStatus()).build()));
702 704  
703 705 ImGroupMemberRemoveReqVO reqVO = new ImGroupMemberRemoveReqVO();
704 706 reqVO.setGroupId(10L);
705   - reqVO.setMemberUserIds(listOf(99L));
  707 + reqVO.setMemberUserIds(ListUtil.of(99L));
706 708  
707 709 ServiceException exception = assertThrows(ServiceException.class,
708 710 () -> groupService.removeGroupMember(1L, reqVO));
... ... @@ -724,7 +726,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
724 726 ImGroupMemberDO.builder().groupId(10L).userId(1L)
725 727 .role(ImGroupMemberRoleEnum.OWNER.getRole()).build());
726 728 // 目标:2L 有效普通成员;3L 已退群(DISABLE)的历史管理员,应被跳过而非拦截整批
727   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  729 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
728 730 ImGroupMemberDO.builder().groupId(10L).userId(2L)
729 731 .role(ImGroupMemberRoleEnum.NORMAL.getRole())
730 732 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
... ... @@ -734,17 +736,17 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
734 736  
735 737 ImGroupMemberRemoveReqVO reqVO = new ImGroupMemberRemoveReqVO();
736 738 reqVO.setGroupId(10L);
737   - reqVO.setMemberUserIds(listOf(2L, 3L));
  739 + reqVO.setMemberUserIds(ListUtil.of(2L, 3L));
738 740  
739 741 groupService.removeGroupMember(1L, reqVO);
740 742  
741 743 // 仅有效成员 2L 进入移除 / 已读清理,已退群的 3L 被跳过
742 744 ArgumentCaptor<Collection> removeCaptor = ArgumentCaptor.forClass(Collection.class);
743 745 verify(groupMemberService).removeGroupMembers(eq(10L), removeCaptor.capture());
744   - assertEquals(setOf(2L), setCopyOf(removeCaptor.getValue()));
  746 + assertEquals(CollUtil.newHashSet(2L), CollUtil.newHashSet(removeCaptor.getValue()));
745 747 ArgumentCaptor<Collection> readCaptor = ArgumentCaptor.forClass(Collection.class);
746 748 verify(groupMessageService).deleteReadMaxMessageIds(eq(10L), readCaptor.capture());
747   - assertEquals(setOf(2L), setCopyOf(readCaptor.getValue()));
  749 + assertEquals(CollUtil.newHashSet(2L), CollUtil.newHashSet(readCaptor.getValue()));
748 750 }
749 751 }
750 752  
... ... @@ -760,7 +762,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
760 762 .status(CommonStatusEnum.ENABLE.getStatus()).build();
761 763 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
762 764 // 目标 3 是普通成员
763   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  765 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
764 766 ImGroupMemberDO.builder().userId(3L).status(CommonStatusEnum.ENABLE.getStatus())
765 767 .role(ImGroupMemberRoleEnum.NORMAL.getRole()).build()));
766 768 // 群里已有 1 个 ADMIN,1 + 1 ≤ 3 不超上限
... ... @@ -771,7 +773,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
771 773  
772 774 ImGroupAdminAddReqVO reqVO = new ImGroupAdminAddReqVO();
773 775 reqVO.setId(10L);
774   - reqVO.setUserIds(listOf(3L));
  776 + reqVO.setUserIds(ListUtil.of(3L));
775 777  
776 778 groupService.addGroupAdmin(1L, reqVO);
777 779  
... ... @@ -790,7 +792,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
790 792 ImGroupDO group = ImGroupDO.builder().id(10L).ownerUserId(1L)
791 793 .status(CommonStatusEnum.ENABLE.getStatus()).build();
792 794 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
793   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  795 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
794 796 ImGroupMemberDO.builder().userId(5L).status(CommonStatusEnum.ENABLE.getStatus())
795 797 .role(ImGroupMemberRoleEnum.NORMAL.getRole()).build()));
796 798 // 群里已有 3 个 ADMIN(达到上限),再加 1 会超
... ... @@ -799,7 +801,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
799 801  
800 802 ImGroupAdminAddReqVO reqVO = new ImGroupAdminAddReqVO();
801 803 reqVO.setId(10L);
802   - reqVO.setUserIds(listOf(5L));
  804 + reqVO.setUserIds(ListUtil.of(5L));
803 805  
804 806 ServiceException exception = assertThrows(ServiceException.class,
805 807 () -> groupService.addGroupAdmin(1L, reqVO));
... ... @@ -817,13 +819,13 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
817 819 ImGroupDO group = ImGroupDO.builder().id(10L).ownerUserId(1L)
818 820 .status(CommonStatusEnum.ENABLE.getStatus()).build();
819 821 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
820   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  822 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
821 823 ImGroupMemberDO.builder().userId(1L).status(CommonStatusEnum.ENABLE.getStatus())
822 824 .role(ImGroupMemberRoleEnum.OWNER.getRole()).build()));
823 825  
824 826 ImGroupAdminAddReqVO reqVO = new ImGroupAdminAddReqVO();
825 827 reqVO.setId(10L);
826   - reqVO.setUserIds(listOf(1L));
  828 + reqVO.setUserIds(ListUtil.of(1L));
827 829  
828 830 ServiceException exception = assertThrows(ServiceException.class,
829 831 () -> groupService.addGroupAdmin(1L, reqVO));
... ... @@ -841,13 +843,13 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
841 843 .status(CommonStatusEnum.ENABLE.getStatus()).build();
842 844 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
843 845 // 目标已是 ADMIN:再加无需操作
844   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  846 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
845 847 ImGroupMemberDO.builder().userId(2L).status(CommonStatusEnum.ENABLE.getStatus())
846 848 .role(ImGroupMemberRoleEnum.ADMIN.getRole()).build()));
847 849  
848 850 ImGroupAdminAddReqVO reqVO = new ImGroupAdminAddReqVO();
849 851 reqVO.setId(10L);
850   - reqVO.setUserIds(listOf(2L));
  852 + reqVO.setUserIds(ListUtil.of(2L));
851 853  
852 854 groupService.addGroupAdmin(1L, reqVO);
853 855  
... ... @@ -867,7 +869,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
867 869 ImGroupDO group = ImGroupDO.builder().id(10L).ownerUserId(1L)
868 870 .status(CommonStatusEnum.ENABLE.getStatus()).build();
869 871 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
870   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  872 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
871 873 ImGroupMemberDO.builder().userId(2L).status(CommonStatusEnum.ENABLE.getStatus())
872 874 .role(ImGroupMemberRoleEnum.ADMIN.getRole()).build()));
873 875 when(groupMemberService.updateGroupMemberRole(eq(10L), anyCollection(),
... ... @@ -875,7 +877,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
875 877  
876 878 ImGroupAdminRemoveReqVO reqVO = new ImGroupAdminRemoveReqVO();
877 879 reqVO.setId(10L);
878   - reqVO.setUserIds(listOf(2L));
  880 + reqVO.setUserIds(ListUtil.of(2L));
879 881  
880 882 groupService.removeGroupAdmin(1L, reqVO);
881 883  
... ... @@ -895,13 +897,13 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
895 897 .status(CommonStatusEnum.ENABLE.getStatus()).build();
896 898 when(groupMapper.selectByIdForUpdate(10L)).thenReturn(group);
897 899 // 目标已是 MEMBER:撤销无需操作
898   - when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(listOf(
  900 + when(groupMemberService.getGroupMembers(eq(10L), anyCollection())).thenReturn(ListUtil.of(
899 901 ImGroupMemberDO.builder().userId(2L).status(CommonStatusEnum.ENABLE.getStatus())
900 902 .role(ImGroupMemberRoleEnum.NORMAL.getRole()).build()));
901 903  
902 904 ImGroupAdminRemoveReqVO reqVO = new ImGroupAdminRemoveReqVO();
903 905 reqVO.setId(10L);
904   - reqVO.setUserIds(listOf(2L));
  906 + reqVO.setUserIds(ListUtil.of(2L));
905 907  
906 908 groupService.removeGroupAdmin(1L, reqVO);
907 909  
... ... @@ -923,9 +925,9 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
923 925 when(groupMemberService.validateMemberInGroup(10L, 2L)).thenReturn(
924 926 ImGroupMemberDO.builder().groupId(10L).userId(2L)
925 927 .role(ImGroupMemberRoleEnum.NORMAL.getRole()).build());
926   - when(groupMemberService.updateGroupMemberRole(eq(10L), eq(setOf(2L)),
  928 + when(groupMemberService.updateGroupMemberRole(eq(10L), eq(CollUtil.newHashSet(2L)),
927 929 eq(ImGroupMemberRoleEnum.OWNER.getRole()))).thenReturn(1);
928   - when(groupMemberService.updateGroupMemberRole(eq(10L), eq(setOf(1L)),
  930 + when(groupMemberService.updateGroupMemberRole(eq(10L), eq(CollUtil.newHashSet(1L)),
929 931 eq(ImGroupMemberRoleEnum.NORMAL.getRole()))).thenReturn(1);
930 932  
931 933 ImGroupTransferOwnerReqVO reqVO = new ImGroupTransferOwnerReqVO();
... ... @@ -939,9 +941,9 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
939 941 verify(groupMapper).updateById(groupCaptor.capture());
940 942 assertEquals(2L, groupCaptor.getValue().getOwnerUserId());
941 943 // 旧群主 → MEMBER;新群主 → OWNER
942   - verify(groupMemberService).updateGroupMemberRole(eq(10L), eq(setOf(1L)),
  944 + verify(groupMemberService).updateGroupMemberRole(eq(10L), eq(CollUtil.newHashSet(1L)),
943 945 eq(ImGroupMemberRoleEnum.NORMAL.getRole()));
944   - verify(groupMemberService).updateGroupMemberRole(eq(10L), eq(setOf(2L)),
  946 + verify(groupMemberService).updateGroupMemberRole(eq(10L), eq(CollUtil.newHashSet(2L)),
945 947 eq(ImGroupMemberRoleEnum.OWNER.getRole()));
946 948 }
947 949 }
... ... @@ -1121,7 +1123,7 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
1121 1123 @Test
1122 1124 public void testGetMyGroupList_success() {
1123 1125 // 活跃群成员
1124   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(new ArrayList<>(listOf(
  1126 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(new ArrayList<>(ListUtil.of(
1125 1127 ImGroupMemberDO.builder().groupId(10L).userId(1L)
1126 1128 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
1127 1129 ImGroupMemberDO.builder().groupId(20L).userId(1L)
... ... @@ -1129,11 +1131,11 @@ public class ImGroupServiceImplTest extends BaseMockitoUnitTest {
1129 1131 )));
1130 1132 // 最近退群成员(最近 30 天内)
1131 1133 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
1132   - .thenReturn(new ArrayList<>(listOf(
  1134 + .thenReturn(new ArrayList<>(ListUtil.of(
1133 1135 ImGroupMemberDO.builder().groupId(30L).userId(1L)
1134 1136 .status(CommonStatusEnum.DISABLE.getStatus()).build()
1135 1137 )));
1136   - List<ImGroupDO> groups = listOf(
  1138 + List<ImGroupDO> groups = ListUtil.of(
1137 1139 ImGroupDO.builder().id(10L).status(CommonStatusEnum.ENABLE.getStatus()).build(),
1138 1140 ImGroupDO.builder().id(20L).status(CommonStatusEnum.ENABLE.getStatus()).build(),
1139 1141 ImGroupDO.builder().id(30L).status(CommonStatusEnum.ENABLE.getStatus()).build()
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/message/ImGroupMessageServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.message;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.collection.ListUtil;
3 5 import cn.hutool.extra.spring.SpringUtil;
4 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 7 import cn.iocoder.yudao.framework.common.exception.ServiceException;
... ... @@ -34,7 +36,6 @@ import java.time.LocalDateTime;
34 36 import java.util.*;
35 37  
36 38 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
37   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
38 39 import static org.junit.jupiter.api.Assertions.*;
39 40 import static org.mockito.ArgumentMatchers.*;
40 41 import static org.mockito.Mockito.*;
... ... @@ -97,7 +98,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
97 98 when(groupMemberService.validateMemberInGroup(10L, 1L)).thenReturn(member);
98 99  
99 100 when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L))
100   - .thenReturn(listOf(1L, 2L, 3L));
  101 + .thenReturn(ListUtil.of(1L, 2L, 3L));
101 102 when(groupMessageMapper.insert(any(ImGroupMessageDO.class))).thenAnswer(invocation -> {
102 103 ImGroupMessageDO msg = invocation.getArgument(0);
103 104 msg.setId(99L);
... ... @@ -169,7 +170,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
169 170 .groupId(10L).userId(1L)
170 171 .status(CommonStatusEnum.ENABLE.getStatus())
171 172 .joinTime(joinTime).build();
172   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  173 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
173 174  
174 175 // 入群前 1 条 + 入群后 1 条
175 176 ImGroupMessageDO beforeJoin = ImGroupMessageDO.builder()
... ... @@ -178,11 +179,11 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
178 179 ImGroupMessageDO afterJoin = ImGroupMessageDO.builder()
179 180 .id(2L).groupId(10L).senderId(2L)
180 181 .sendTime(now.minusHours(1)).build();
181   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  182 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
182 183 any(LocalDateTime.class), eq(100)))
183   - .thenReturn(listOf(beforeJoin, afterJoin));
  184 + .thenReturn(ListUtil.of(beforeJoin, afterJoin));
184 185 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
185   - .thenReturn(listOf());
  186 + .thenReturn(ListUtil.of());
186 187  
187 188 // 调用
188 189 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 0L, 100);
... ... @@ -201,26 +202,26 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
201 202 .groupId(10L).userId(1L)
202 203 .status(CommonStatusEnum.ENABLE.getStatus())
203 204 .joinTime(joinTime).build();
204   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  205 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
205 206  
206 207 ImGroupMessageDO beforeJoin = ImGroupMessageDO.builder()
207 208 .id(1L).groupId(10L).senderId(2L)
208 209 .sendTime(now.minusHours(3)).build();
209 210 ImGroupMessageDO directedMsg = ImGroupMessageDO.builder()
210 211 .id(2L).groupId(10L).senderId(2L)
211   - .receiverUserIds(listOf(2L, 3L))
  212 + .receiverUserIds(ListUtil.of(2L, 3L))
212 213 .sendTime(now.minusHours(2)).build();
213 214 ImGroupMessageDO visibleMsg = ImGroupMessageDO.builder()
214 215 .id(3L).groupId(10L).senderId(2L)
215 216 .sendTime(now.minusMinutes(30)).build();
216   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  217 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
217 218 any(LocalDateTime.class), eq(2)))
218   - .thenReturn(listOf(beforeJoin, directedMsg));
219   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(2L),
  219 + .thenReturn(ListUtil.of(beforeJoin, directedMsg));
  220 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(2L),
220 221 any(LocalDateTime.class), eq(2)))
221   - .thenReturn(listOf(visibleMsg));
  222 + .thenReturn(ListUtil.of(visibleMsg));
222 223 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
223   - .thenReturn(listOf());
  224 + .thenReturn(ListUtil.of());
224 225  
225 226 // 调用
226 227 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 0L, 2);
... ... @@ -228,9 +229,9 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
228 229 // 断言:仅返回第二批的可见消息;两批 selectListByMinId 各被调用一次
229 230 assertEquals(1, result.size());
230 231 assertEquals(3L, result.get(0).getId());
231   - verify(groupMessageMapper).selectListByMinId(eq(listOf(10L)), eq(0L),
  232 + verify(groupMessageMapper).selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
232 233 any(LocalDateTime.class), eq(2));
233   - verify(groupMessageMapper).selectListByMinId(eq(listOf(10L)), eq(2L),
  234 + verify(groupMessageMapper).selectListByMinId(eq(ListUtil.of(10L)), eq(2L),
234 235 any(LocalDateTime.class), eq(2));
235 236 }
236 237  
... ... @@ -242,14 +243,14 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
242 243 .groupId(10L).userId(1L)
243 244 .status(CommonStatusEnum.ENABLE.getStatus())
244 245 .joinTime(now.minusDays(10)).build();
245   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(activeMember));
  246 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(activeMember));
246 247  
247 248 ImGroupMessageDO activeMsg = ImGroupMessageDO.builder()
248 249 .id(5L).groupId(10L).senderId(2L)
249 250 .sendTime(now.minusHours(2)).build();
250   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  251 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
251 252 any(LocalDateTime.class), eq(100)))
252   - .thenReturn(listOf(activeMsg));
  253 + .thenReturn(ListUtil.of(activeMsg));
253 254  
254 255 // 已退群:退群时间在窗口内(minId=0,minQuitTime 直接用 minSendTime)
255 256 LocalDateTime quitTime = now.minusDays(3);
... ... @@ -259,14 +260,14 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
259 260 .joinTime(now.minusDays(20))
260 261 .quitTime(quitTime).build();
261 262 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
262   - .thenReturn(listOf(quitMember));
  263 + .thenReturn(ListUtil.of(quitMember));
263 264  
264 265 ImGroupMessageDO quitGroupMsg = ImGroupMessageDO.builder()
265 266 .id(3L).groupId(20L).senderId(99L)
266 267 .sendTime(now.minusDays(5)).build();
267 268 when(groupMessageMapper.selectListByGroupIdAndMinIdAndQuitTimeBefore(eq(20L), eq(0L),
268 269 any(LocalDateTime.class), eq(quitTime), eq(100)))
269   - .thenReturn(listOf(quitGroupMsg));
  270 + .thenReturn(ListUtil.of(quitGroupMsg));
270 271  
271 272 // 调用
272 273 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 0L, 100);
... ... @@ -281,14 +282,14 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
281 282 public void testPullMessages_quitMemberFilteredByBoundarySendTime() {
282 283 // 准备:minId > 0,边界消息 sendTime 晚于窗口起点,应当被用作 minQuitTime
283 284 LocalDateTime now = LocalDateTime.now();
284   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf());
  285 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of());
285 286  
286 287 LocalDateTime boundarySendTime = now.minusDays(2);
287 288 ImGroupMessageDO boundary = ImGroupMessageDO.builder()
288 289 .id(8L).groupId(10L).senderId(2L).sendTime(boundarySendTime).build();
289 290 when(groupMessageMapper.selectById(8L)).thenReturn(boundary);
290 291 when(groupMemberService.getQuitGroupMemberListByUserId(1L, boundarySendTime))
291   - .thenReturn(listOf());
  292 + .thenReturn(ListUtil.of());
292 293  
293 294 // 调用
294 295 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 8L, 100);
... ... @@ -307,24 +308,24 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
307 308 .groupId(10L).userId(1L)
308 309 .status(CommonStatusEnum.ENABLE.getStatus())
309 310 .joinTime(joinTime).build();
310   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(activeMember));
  311 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(activeMember));
311 312  
312 313 ImGroupMessageDO beforeJoin = ImGroupMessageDO.builder()
313 314 .id(100L).groupId(10L).senderId(2L)
314 315 .sendTime(now.minusHours(3)).build();
315 316 ImGroupMessageDO directedMsg = ImGroupMessageDO.builder()
316 317 .id(101L).groupId(10L).senderId(2L)
317   - .receiverUserIds(listOf(2L, 3L))
  318 + .receiverUserIds(ListUtil.of(2L, 3L))
318 319 .sendTime(now.minusMinutes(50)).build();
319 320 ImGroupMessageDO visibleActiveMsg = ImGroupMessageDO.builder()
320 321 .id(102L).groupId(10L).senderId(2L)
321 322 .sendTime(now.minusMinutes(30)).build();
322   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(8L),
  323 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(8L),
323 324 any(LocalDateTime.class), eq(2)))
324   - .thenReturn(listOf(beforeJoin, directedMsg));
325   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(101L),
  325 + .thenReturn(ListUtil.of(beforeJoin, directedMsg));
  326 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(101L),
326 327 any(LocalDateTime.class), eq(2)))
327   - .thenReturn(listOf(visibleActiveMsg));
  328 + .thenReturn(ListUtil.of(visibleActiveMsg));
328 329  
329 330 LocalDateTime boundarySendTime = now.minusDays(2);
330 331 ImGroupMessageDO boundary = ImGroupMessageDO.builder()
... ... @@ -338,14 +339,14 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
338 339 .joinTime(now.minusDays(10))
339 340 .quitTime(quitTime).build();
340 341 when(groupMemberService.getQuitGroupMemberListByUserId(1L, boundarySendTime))
341   - .thenReturn(listOf(quitMember));
  342 + .thenReturn(ListUtil.of(quitMember));
342 343  
343 344 ImGroupMessageDO quitGroupMsg = ImGroupMessageDO.builder()
344 345 .id(50L).groupId(20L).senderId(99L)
345 346 .sendTime(now.minusDays(1)).build();
346 347 when(groupMessageMapper.selectListByGroupIdAndMinIdAndQuitTimeBefore(eq(20L), eq(8L),
347 348 any(LocalDateTime.class), eq(quitTime), eq(2)))
348   - .thenReturn(listOf(quitGroupMsg));
  349 + .thenReturn(ListUtil.of(quitGroupMsg));
349 350  
350 351 // 调用
351 352 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 8L, 2);
... ... @@ -354,9 +355,9 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
354 355 assertEquals(2, result.size());
355 356 assertEquals(50L, result.get(0).getId());
356 357 assertEquals(102L, result.get(1).getId());
357   - verify(groupMessageMapper).selectListByMinId(eq(listOf(10L)), eq(8L),
  358 + verify(groupMessageMapper).selectListByMinId(eq(ListUtil.of(10L)), eq(8L),
358 359 any(LocalDateTime.class), eq(2));
359   - verify(groupMessageMapper).selectListByMinId(eq(listOf(10L)), eq(101L),
  360 + verify(groupMessageMapper).selectListByMinId(eq(ListUtil.of(10L)), eq(101L),
360 361 any(LocalDateTime.class), eq(2));
361 362 verify(groupMemberService).getQuitGroupMemberListByUserId(1L, boundarySendTime);
362 363 verify(groupMessageMapper).selectListByGroupIdAndMinIdAndQuitTimeBefore(eq(20L), eq(8L),
... ... @@ -373,22 +374,22 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
373 374 .groupId(10L).userId(1L)
374 375 .status(CommonStatusEnum.ENABLE.getStatus())
375 376 .joinTime(now.minusDays(10)).build();
376   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  377 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
377 378  
378 379 // 定向接收消息:只给用户 2 和 3
379 380 ImGroupMessageDO directedMsg = ImGroupMessageDO.builder()
380 381 .id(1L).groupId(10L).senderId(5L)
381   - .receiverUserIds(listOf(2L, 3L))
  382 + .receiverUserIds(ListUtil.of(2L, 3L))
382 383 .sendTime(now.minusHours(2)).build();
383 384 // 全员消息
384 385 ImGroupMessageDO allMsg = ImGroupMessageDO.builder()
385 386 .id(2L).groupId(10L).senderId(5L)
386 387 .sendTime(now.minusHours(1)).build();
387   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  388 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
388 389 any(LocalDateTime.class), eq(100)))
389   - .thenReturn(listOf(directedMsg, allMsg));
  390 + .thenReturn(ListUtil.of(directedMsg, allMsg));
390 391 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
391   - .thenReturn(listOf());
  392 + .thenReturn(ListUtil.of());
392 393  
393 394 // 调用
394 395 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 0L, 100);
... ... @@ -406,24 +407,24 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
406 407 .groupId(10L).userId(1L)
407 408 .status(CommonStatusEnum.ENABLE.getStatus())
408 409 .joinTime(now.minusDays(10)).build();
409   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  410 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
410 411  
411 412 ImGroupMessageDO atMsg = ImGroupMessageDO.builder()
412 413 .id(1L).groupId(10L).senderId(2L)
413   - .atUserIds(listOf(1L, 3L))
  414 + .atUserIds(ListUtil.of(1L, 3L))
414 415 .sendTime(now.minusHours(1)).build();
415   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  416 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
416 417 any(LocalDateTime.class), eq(100)))
417   - .thenReturn(listOf(atMsg));
  418 + .thenReturn(ListUtil.of(atMsg));
418 419 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
419   - .thenReturn(listOf());
  420 + .thenReturn(ListUtil.of());
420 421  
421 422 // 调用
422 423 List<ImGroupMessageDO> result = groupMessageService.pullGroupMessageList(1L, 0L, 100);
423 424  
424 425 // 断言:@ 字段正确返回
425 426 assertEquals(1, result.size());
426   - assertEquals(listOf(1L, 3L), result.get(0).getAtUserIds());
  427 + assertEquals(ListUtil.of(1L, 3L), result.get(0).getAtUserIds());
427 428 }
428 429  
429 430 @Test
... ... @@ -433,15 +434,15 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
433 434 .groupId(10L).userId(1L)
434 435 .status(CommonStatusEnum.ENABLE.getStatus())
435 436 .joinTime(now.minusDays(10)).build();
436   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(activeMember));
  437 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(activeMember));
437 438  
438 439 ImGroupMessageDO activeMsg1 = ImGroupMessageDO.builder()
439 440 .id(1000L).groupId(10L).senderId(2L).sendTime(now.minusHours(2)).build();
440 441 ImGroupMessageDO activeMsg2 = ImGroupMessageDO.builder()
441 442 .id(2000L).groupId(10L).senderId(2L).sendTime(now.minusHours(1)).build();
442   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  443 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
443 444 any(LocalDateTime.class), eq(2)))
444   - .thenReturn(listOf(activeMsg1, activeMsg2));
  445 + .thenReturn(ListUtil.of(activeMsg1, activeMsg2));
445 446  
446 447 LocalDateTime quitTime = now.minusDays(1);
447 448 ImGroupMemberDO quitMember = ImGroupMemberDO.builder()
... ... @@ -450,7 +451,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
450 451 .joinTime(now.minusDays(20))
451 452 .quitTime(quitTime).build();
452 453 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
453   - .thenReturn(listOf(quitMember));
  454 + .thenReturn(ListUtil.of(quitMember));
454 455  
455 456 ImGroupMessageDO quit1 = ImGroupMessageDO.builder()
456 457 .id(150L).groupId(20L).senderId(99L).sendTime(now.minusDays(5)).build();
... ... @@ -458,7 +459,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
458 459 .id(160L).groupId(20L).senderId(99L).sendTime(now.minusDays(4)).build();
459 460 when(groupMessageMapper.selectListByGroupIdAndMinIdAndQuitTimeBefore(eq(20L), eq(0L),
460 461 any(LocalDateTime.class), eq(quitTime), eq(2)))
461   - .thenReturn(listOf(quit1, quit2));
  462 + .thenReturn(ListUtil.of(quit1, quit2));
462 463  
463 464 when(groupMessageReadRedisDAO.getReadMaxMessageId(anyLong(), eq(1L))).thenReturn(null);
464 465  
... ... @@ -476,7 +477,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
476 477 .groupId(10L).userId(1L)
477 478 .status(CommonStatusEnum.ENABLE.getStatus())
478 479 .joinTime(now.minusDays(10)).build();
479   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  480 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
480 481  
481 482 ImGroupMessageDO low = ImGroupMessageDO.builder()
482 483 .id(5L).groupId(10L).senderId(2L).status(ImMessageStatusEnum.UNREAD.getStatus())
... ... @@ -484,11 +485,11 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
484 485 ImGroupMessageDO high = ImGroupMessageDO.builder()
485 486 .id(10L).groupId(10L).senderId(2L).status(ImMessageStatusEnum.UNREAD.getStatus())
486 487 .sendTime(now.minusHours(1)).build();
487   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  488 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
488 489 any(LocalDateTime.class), eq(100)))
489   - .thenReturn(listOf(low, high));
  490 + .thenReturn(ListUtil.of(low, high));
490 491 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
491   - .thenReturn(listOf());
  492 + .thenReturn(ListUtil.of());
492 493  
493 494 when(groupMessageReadRedisDAO.getReadMaxMessageId(10L, 1L)).thenReturn(7L);
494 495  
... ... @@ -506,18 +507,18 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
506 507 .groupId(10L).userId(1L)
507 508 .status(CommonStatusEnum.ENABLE.getStatus())
508 509 .joinTime(now.minusDays(10)).build();
509   - when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(listOf(member));
  510 + when(groupMemberService.getActiveGroupMemberListByUserId(1L)).thenReturn(ListUtil.of(member));
510 511  
511 512 ImGroupMessageDO receiptMsg = ImGroupMessageDO.builder()
512 513 .id(100L).groupId(10L).senderId(1L)
513 514 .status(ImMessageStatusEnum.UNREAD.getStatus())
514 515 .receiptStatus(ImGroupMessageReceiptStatusEnum.PENDING.getStatus())
515 516 .sendTime(now.minusHours(1)).build();
516   - when(groupMessageMapper.selectListByMinId(eq(listOf(10L)), eq(0L),
  517 + when(groupMessageMapper.selectListByMinId(eq(ListUtil.of(10L)), eq(0L),
517 518 any(LocalDateTime.class), eq(100)))
518   - .thenReturn(listOf(receiptMsg));
  519 + .thenReturn(ListUtil.of(receiptMsg));
519 520 when(groupMemberService.getQuitGroupMemberListByUserId(eq(1L), any(LocalDateTime.class)))
520   - .thenReturn(listOf());
  521 + .thenReturn(ListUtil.of());
521 522  
522 523 when(groupMessageReadRedisDAO.getReadMaxMessageId(10L, 1L)).thenReturn(100L);
523 524 Map<Long, Long> positions = new HashMap<>();
... ... @@ -526,7 +527,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
526 527 positions.put(3L, 50L);
527 528 when(groupMessageReadRedisDAO.getReadMaxMessageIdMap(10L)).thenReturn(positions);
528 529  
529   - List<ImGroupMemberDO> allMembers = listOf(
  530 + List<ImGroupMemberDO> allMembers = ListUtil.of(
530 531 member,
531 532 ImGroupMemberDO.builder().groupId(10L).userId(2L)
532 533 .status(CommonStatusEnum.ENABLE.getStatus())
... ... @@ -565,7 +566,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
565 566 when(groupMessageMapper.insert(any(ImGroupMessageDO.class))).thenReturn(1);
566 567  
567 568 when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L))
568   - .thenReturn(listOf(1L, 2L));
  569 + .thenReturn(ListUtil.of(1L, 2L));
569 570  
570 571 // 调用
571 572 ImGroupMessageDO result = groupMessageService.recallGroupMessage(1L, 50L);
... ... @@ -670,7 +671,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
670 671 // 用户 2: 正常,入群在消息之前
671 672 // 用户 3: 正常,但入群在消息之后 → 不可见
672 673 // 用户 5: 发送者,不计入回执
673   - List<ImGroupMemberDO> allMembers = listOf(
  674 + List<ImGroupMemberDO> allMembers = ListUtil.of(
674 675 currentMember,
675 676 ImGroupMemberDO.builder().groupId(10L).userId(1L)
676 677 .status(CommonStatusEnum.ENABLE.getStatus())
... ... @@ -740,7 +741,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
740 741 ImGroupMemberDO member = ImGroupMemberDO.builder()
741 742 .groupId(10L).userId(1L).status(CommonStatusEnum.ENABLE.getStatus()).build();
742 743 when(groupMemberService.validateMemberInGroup(10L, 1L)).thenReturn(member);
743   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(listOf(1L));
  744 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(ListUtil.of(1L));
744 745 when(groupMessageMapper.insert(any(ImGroupMessageDO.class))).thenReturn(1);
745 746  
746 747 // 调用
... ... @@ -822,7 +823,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
822 823 .id(100L).groupId(10L).senderId(2L).sendTime(LocalDateTime.now()).build());
823 824 when(groupMessageReadRedisDAO.getReadMaxMessageId(10L, 1L)).thenReturn(5L);
824 825 // readGroupMessageEvent 内部会调 selectListByGroupIdAndPendingReceipt → 返回空简化流程
825   - when(groupMessageMapper.selectListByGroupIdAndPendingReceipt(10L, 5L, 100L)).thenReturn(listOf());
  826 + when(groupMessageMapper.selectListByGroupIdAndPendingReceipt(10L, 5L, 100L)).thenReturn(ListUtil.of());
826 827  
827 828 // 调用
828 829 groupMessageService.readGroupMessages(1L, 10L, 100L);
... ... @@ -876,7 +877,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
876 877 ImGroupMemberDO member = ImGroupMemberDO.builder()
877 878 .groupId(10L).userId(1L).status(CommonStatusEnum.ENABLE.getStatus()).build();
878 879 when(groupMemberService.validateMemberInGroup(10L, 1L)).thenReturn(member);
879   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(listOf(1L, 2L));
  880 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(ListUtil.of(1L, 2L));
880 881  
881 882 ImGroupMessageDO result = groupMessageService.sendGroupMessage(1L, reqVO);
882 883  
... ... @@ -933,8 +934,8 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
933 934 .receiptStatus(ImGroupMessageReceiptStatusEnum.PENDING.getStatus())
934 935 .status(ImMessageStatusEnum.UNREAD.getStatus()).build();
935 936 when(groupMessageMapper.selectListByGroupIdAndPendingReceipt(10L, 0L, 100L))
936   - .thenReturn(listOf(pending));
937   - List<ImGroupMemberDO> activeMembers = listOf(
  937 + .thenReturn(ListUtil.of(pending));
  938 + List<ImGroupMemberDO> activeMembers = ListUtil.of(
938 939 ImGroupMemberDO.builder().groupId(10L).userId(5L)
939 940 .status(CommonStatusEnum.ENABLE.getStatus())
940 941 .joinTime(LocalDateTime.now().minusDays(10)).build(),
... ... @@ -972,8 +973,8 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
972 973 .receiptStatus(ImGroupMessageReceiptStatusEnum.PENDING.getStatus())
973 974 .status(ImMessageStatusEnum.UNREAD.getStatus()).build();
974 975 when(groupMessageMapper.selectListByGroupIdAndPendingReceipt(10L, 0L, 100L))
975   - .thenReturn(listOf(pending));
976   - List<ImGroupMemberDO> activeMembers = listOf(
  976 + .thenReturn(ListUtil.of(pending));
  977 + List<ImGroupMemberDO> activeMembers = ListUtil.of(
977 978 ImGroupMemberDO.builder().groupId(10L).userId(5L)
978 979 .status(CommonStatusEnum.ENABLE.getStatus())
979 980 .joinTime(LocalDateTime.now().minusDays(10)).build(),
... ... @@ -1007,7 +1008,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1007 1008 .setGroupId(10L).setType(ImMessageTypeEnum.RECALL.getType())
1008 1009 .setContent("{\"messageId\":1}");
1009 1010 when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L))
1010   - .thenReturn(listOf(1L, 2L, 3L, 4L));
  1011 + .thenReturn(ListUtil.of(1L, 2L, 3L, 4L));
1011 1012  
1012 1013 groupMessageService.sendGroupMessage(1L, dto);
1013 1014  
... ... @@ -1024,9 +1025,9 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1024 1025 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1025 1026 .setGroupId(10L).setType(ImMessageTypeEnum.RECALL.getType())
1026 1027 .setContent("{\"messageId\":1}")
1027   - .setReceiverUserIds(listOf(2L, 3L));
  1028 + .setReceiverUserIds(ListUtil.of(2L, 3L));
1028 1029 when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L))
1029   - .thenReturn(listOf(1L, 2L, 3L, 4L));
  1030 + .thenReturn(ListUtil.of(1L, 2L, 3L, 4L));
1030 1031  
1031 1032 groupMessageService.sendGroupMessage(1L, dto);
1032 1033  
... ... @@ -1043,9 +1044,9 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1043 1044 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1044 1045 .setGroupId(10L).setType(ImMessageTypeEnum.RECALL.getType())
1045 1046 .setContent("{\"messageId\":1}")
1046   - .setReceiverUserIds(listOf(2L, 3L));
  1047 + .setReceiverUserIds(ListUtil.of(2L, 3L));
1047 1048 when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L))
1048   - .thenReturn(listOf(1L, 2L, 3L, 4L));
  1049 + .thenReturn(ListUtil.of(1L, 2L, 3L, 4L));
1049 1050  
1050 1051 groupMessageService.sendGroupMessage(99L, dto);
1051 1052  
... ... @@ -1062,7 +1063,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1062 1063 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1063 1064 .setGroupId(10L).setType(ImMessageTypeEnum.RECALL.getType())
1064 1065 .setContent(new RecallMessage().setMessageId(50L));
1065   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(listOf(1L));
  1066 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(ListUtil.of(1L));
1066 1067  
1067 1068 groupMessageService.sendGroupMessage(1L, dto);
1068 1069  
... ... @@ -1086,7 +1087,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1086 1087 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1087 1088 .setGroupId(10L).setType(ImMessageTypeEnum.RECALL.getType())
1088 1089 .setContent("{\"messageId\":50}").setReceipt(true);
1089   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(listOf(1L));
  1090 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(ListUtil.of(1L));
1090 1091  
1091 1092 groupMessageService.sendGroupMessage(1L, dto);
1092 1093  
... ... @@ -1100,7 +1101,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1100 1101 // 准备:persistent=false 类型(RECEIPT 回执)→ 不入库,仅推送
1101 1102 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1102 1103 .setGroupId(10L).setType(ImMessageTypeEnum.RECEIPT.getType());
1103   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(listOf(1L, 2L));
  1104 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(10L)).thenReturn(ListUtil.of(1L, 2L));
1104 1105  
1105 1106 groupMessageService.sendGroupMessage(1L, dto);
1106 1107  
... ... @@ -1111,7 +1112,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1111 1112 @Test
1112 1113 public void testSendGroupMessage_threeArg_explicitTargetsBypassActiveMembers() {
1113 1114 // 准备:调用方传入显式 targets(解散场景成员已被批量 DISABLE,必须按移除前快照推送)
1114   - Set<Long> targets = setOf(1L, 2L, 3L);
  1115 + Set<Long> targets = CollUtil.newHashSet(1L, 2L, 3L);
1115 1116 ImGroupMessageSendDTO dto = new ImGroupMessageSendDTO()
1116 1117 .setGroupId(10L).setType(ImMessageTypeEnum.GROUP_DISSOLVE.getType()).setContent("{}");
1117 1118  
... ... @@ -1139,7 +1140,7 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1139 1140 reqVO.setMaxId(100L);
1140 1141 reqVO.setLimit(20);
1141 1142  
1142   - List<ImGroupMessageDO> mockList = listOf(
  1143 + List<ImGroupMessageDO> mockList = ListUtil.of(
1143 1144 ImGroupMessageDO.builder().id(99L).groupId(10L).senderId(2L)
1144 1145 .sendTime(joinTime.plusMinutes(1)).build()
1145 1146 );
... ... @@ -1182,9 +1183,9 @@ public class ImGroupMessageServiceImplTest extends BaseMockitoUnitTest {
1182 1183  
1183 1184 @Test
1184 1185 public void testDeleteReadMaxMessageIds_delegatesToRedis() {
1185   - groupMessageService.deleteReadMaxMessageIds(10L, listOf(1L, 2L));
  1186 + groupMessageService.deleteReadMaxMessageIds(10L, ListUtil.of(1L, 2L));
1186 1187  
1187   - verify(groupMessageReadRedisDAO).deleteReadMaxMessageIds(10L, listOf(1L, 2L));
  1188 + verify(groupMessageReadRedisDAO).deleteReadMaxMessageIds(10L, ListUtil.of(1L, 2L));
1188 1189 }
1189 1190  
1190 1191 @Test
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/message/ImPrivateMessageServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.message;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4 5 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 6 import cn.iocoder.yudao.module.im.controller.admin.message.vo.privates.ImPrivateMessageListReqVO;
... ... @@ -25,7 +26,6 @@ import java.time.LocalDateTime;
25 26 import java.util.List;
26 27  
27 28 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
28   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
29 29 import static org.junit.jupiter.api.Assertions.*;
30 30 import static org.mockito.ArgumentMatchers.*;
31 31 import static org.mockito.Mockito.*;
... ... @@ -136,7 +136,7 @@ public class ImPrivateMessageServiceImplTest extends BaseMockitoUnitTest {
136 136 @Test
137 137 public void testPullMessages_success() {
138 138 // 准备
139   - List<ImPrivateMessageDO> mockMessages = listOf(
  139 + List<ImPrivateMessageDO> mockMessages = ListUtil.of(
140 140 ImPrivateMessageDO.builder().id(1L).senderId(1L).receiverId(2L).build(),
141 141 ImPrivateMessageDO.builder().id(2L).senderId(2L).receiverId(1L).build()
142 142 );
... ... @@ -416,7 +416,7 @@ public class ImPrivateMessageServiceImplTest extends BaseMockitoUnitTest {
416 416 reqVO.setReceiverId(2L);
417 417 reqVO.setMaxId(100L);
418 418 reqVO.setLimit(20);
419   - List<ImPrivateMessageDO> mockList = listOf(
  419 + List<ImPrivateMessageDO> mockList = ListUtil.of(
420 420 ImPrivateMessageDO.builder().id(99L).senderId(1L).receiverId(2L).build(),
421 421 ImPrivateMessageDO.builder().id(98L).senderId(2L).receiverId(1L).build()
422 422 );
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/rtc/ImRtcCallServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.rtc;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.collection.ListUtil;
  5 +import cn.hutool.core.map.MapUtil;
3 6 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4 7 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
5 8 import cn.iocoder.yudao.module.im.controller.admin.rtc.vo.ImRtcCallCreateReqVO;
... ... @@ -37,7 +40,6 @@ import java.util.concurrent.Callable;
37 40 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.RTC_GROUP_INVITEE_OVER_LIMIT;
38 41 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.RTC_GROUP_INVITEE_REQUIRED;
39 42 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.RTC_SELF_BUSY;
40   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
41 43 import static org.junit.jupiter.api.Assertions.*;
42 44 import static org.mockito.ArgumentMatchers.*;
43 45 import static org.mockito.Mockito.*;
... ... @@ -104,8 +106,8 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
104 106 // 准备:候选非空但每个 CAS 都失败(并发已变状态)
105 107 ImRtcParticipantDO p = buildParticipant(10L, "r1", 100L, ImRtcParticipantStatusEnum.INVITING);
106 108 when(rtcParticipantMapper.selectListByStatusAndInviteTimeBefore(any(), any()))
107   - .thenReturn(listOf(p));
108   - when(adminUserApi.getUserMap(anySet())).thenReturn(mapOf(100L, buildUser(100L)));
  109 + .thenReturn(ListUtil.of(p));
  110 + when(adminUserApi.getUserMap(anySet())).thenReturn(MapUtil.of(100L, buildUser(100L)));
109 111 when(rtcParticipantMapper.updateByIdAndStatus(eq(10L), eq(ImRtcParticipantStatusEnum.INVITING.getStatus()), any()))
110 112 .thenReturn(0);
111 113  
... ... @@ -123,15 +125,15 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
123 125 // 准备:群通话单候选 CAS 成功;shouldCloseGroupRoom 通过 selectListByRoom 多 JOINED 让其返 false,跳过 endSession
124 126 ImRtcParticipantDO p = buildParticipant(10L, "r1", 100L, ImRtcParticipantStatusEnum.INVITING);
125 127 when(rtcParticipantMapper.selectListByStatusAndInviteTimeBefore(any(), any()))
126   - .thenReturn(listOf(p));
127   - when(adminUserApi.getUserMap(anySet())).thenReturn(mapOf(100L, buildUser(100L)));
  128 + .thenReturn(ListUtil.of(p));
  129 + when(adminUserApi.getUserMap(anySet())).thenReturn(MapUtil.of(100L, buildUser(100L)));
128 130 when(rtcParticipantMapper.updateByIdAndStatus(eq(10L), eq(ImRtcParticipantStatusEnum.INVITING.getStatus()), any()))
129 131 .thenReturn(1);
130 132 ImRtcCallDO call = buildCall("r1", 200L, ImConversationTypeEnum.GROUP, 999L);
131 133 when(rtcCallMapper.selectByRoom("r1")).thenReturn(call);
132   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(999L)).thenReturn(listOf(200L, 201L));
  134 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(999L)).thenReturn(ListUtil.of(200L, 201L));
133 135 // 房内 2 个 JOINED + 1 个 INVITING → shouldCloseGroupRoom 返 false
134   - when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(listOf(
  136 + when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(ListUtil.of(
135 137 buildParticipant(20L, "r1", 200L, ImRtcParticipantStatusEnum.JOINED),
136 138 buildParticipant(21L, "r1", 201L, ImRtcParticipantStatusEnum.JOINED),
137 139 buildParticipant(22L, "r1", 202L, ImRtcParticipantStatusEnum.INVITING)
... ... @@ -151,8 +153,8 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
151 153 // 准备:CAS 成功后通话主表缺失(异常兜底场景)
152 154 ImRtcParticipantDO p = buildParticipant(10L, "r1", 100L, ImRtcParticipantStatusEnum.INVITING);
153 155 when(rtcParticipantMapper.selectListByStatusAndInviteTimeBefore(any(), any()))
154   - .thenReturn(listOf(p));
155   - when(adminUserApi.getUserMap(anySet())).thenReturn(mapOf(100L, buildUser(100L)));
  156 + .thenReturn(ListUtil.of(p));
  157 + when(adminUserApi.getUserMap(anySet())).thenReturn(MapUtil.of(100L, buildUser(100L)));
156 158 when(rtcParticipantMapper.updateByIdAndStatus(eq(10L), eq(ImRtcParticipantStatusEnum.INVITING.getStatus()), any()))
157 159 .thenReturn(1);
158 160 when(rtcCallMapper.selectByRoom("r1")).thenReturn(null);
... ... @@ -220,15 +222,15 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
220 222 ImRtcParticipantDO timeoutTarget = buildParticipant(11L, "r1", 101L, ImRtcParticipantStatusEnum.INVITING);
221 223 when(rtcParticipantMapper.selectListByRoomAndStatusAndInviteTimeBefore(
222 224 eq("r1"), eq(ImRtcParticipantStatusEnum.INVITING.getStatus()), any()))
223   - .thenReturn(listOf(timeoutTarget));
224   - when(adminUserApi.getUserMap(anySet())).thenReturn(mapOf(101L, buildUser(101L)));
  225 + .thenReturn(ListUtil.of(timeoutTarget));
  226 + when(adminUserApi.getUserMap(anySet())).thenReturn(MapUtil.of(101L, buildUser(101L)));
225 227 when(rtcParticipantMapper.updateByIdAndStatus(eq(11L), eq(ImRtcParticipantStatusEnum.INVITING.getStatus()), any()))
226 228 .thenReturn(1);
227 229 ImRtcCallDO call = buildCall("r1", 200L, ImConversationTypeEnum.GROUP, 999L);
228 230 when(rtcCallMapper.selectByRoom("r1")).thenReturn(call);
229   - when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(999L)).thenReturn(listOf(200L, 201L));
  231 + when(groupMemberService.getActiveGroupMemberUserIdsByGroupId(999L)).thenReturn(ListUtil.of(200L, 201L));
230 232 // 让 shouldCloseGroupRoom 返 false
231   - when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(listOf(
  233 + when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(ListUtil.of(
232 234 buildParticipant(20L, "r1", 200L, ImRtcParticipantStatusEnum.JOINED),
233 235 buildParticipant(21L, "r1", 201L, ImRtcParticipantStatusEnum.JOINED)
234 236 ));
... ... @@ -254,7 +256,7 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
254 256 ImRtcCallCreateReqVO reqVO = new ImRtcCallCreateReqVO();
255 257 reqVO.setConversationType(ImConversationTypeEnum.GROUP.getType());
256 258 reqVO.setGroupId(10L);
257   - reqVO.setInviteeIds(setOf(100L));
  259 + reqVO.setInviteeIds(CollUtil.newHashSet(100L));
258 260  
259 261 ServiceException exception = assertThrows(ServiceException.class,
260 262 () -> rtcCallService.createCall(100L, reqVO));
... ... @@ -336,14 +338,14 @@ public class ImRtcCallServiceImplTest extends BaseMockitoUnitTest {
336 338 Callable<Void> callable = invocation.getArgument(1);
337 339 return callable.call();
338 340 });
339   - when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(listOf(
  341 + when(rtcParticipantMapper.selectListByRoom("r1")).thenReturn(ListUtil.of(
340 342 buildParticipant(10L, "r1", 200L, ImRtcParticipantStatusEnum.JOINED),
341 343 buildParticipant(11L, "r1", 201L, ImRtcParticipantStatusEnum.JOINED),
342 344 buildParticipant(12L, "r1", 202L, ImRtcParticipantStatusEnum.INVITING)
343 345 ));
344 346 ImRtcCallInviteReqVO reqVO = new ImRtcCallInviteReqVO();
345 347 reqVO.setRoom("r1");
346   - reqVO.setInviteeIds(setOf(203L));
  348 + reqVO.setInviteeIds(CollUtil.newHashSet(203L));
347 349  
348 350 ServiceException exception = assertThrows(ServiceException.class,
349 351 () -> rtcCallService.inviteCall(200L, reqVO));
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/sensitiveword/ImSensitiveWordServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.sensitiveword;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.exception.ServiceException;
5 6 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
... ... @@ -19,7 +20,6 @@ import java.util.List;
19 20 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.MESSAGE_SENSITIVE_WORD_BLOCKED;
20 21 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.SENSITIVE_WORD_DUPLICATED;
21 22 import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.SENSITIVE_WORD_NOT_EXISTS;
22   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
23 23 import static org.junit.jupiter.api.Assertions.*;
24 24 import static org.mockito.Mockito.*;
25 25  
... ... @@ -45,7 +45,7 @@ public class ImSensitiveWordServiceImplTest extends BaseMockitoUnitTest {
45 45 // mock 启用敏感词列表;LoadingCache 在首次 validateText 时懒加载,无需主动 init
46 46 // 用 lenient 避免 null / empty 等不触发 cache load 的用例报 UnnecessaryStubbing
47 47 lenient().when(imSensitiveWordMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()))
48   - .thenReturn(listOf(
  48 + .thenReturn(ListUtil.of(
49 49 ImSensitiveWordDO.builder().id(1L).word("badword")
50 50 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
51 51 ImSensitiveWordDO.builder().id(2L).word("违禁词")
... ... @@ -119,7 +119,7 @@ public class ImSensitiveWordServiceImplTest extends BaseMockitoUnitTest {
119 119  
120 120 // 准备:mapper 返回新词库(额外多一个 newbad),并让 createSensitiveWord 走通
121 121 when(imSensitiveWordMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()))
122   - .thenReturn(listOf(
  122 + .thenReturn(ListUtil.of(
123 123 ImSensitiveWordDO.builder().id(1L).word("badword")
124 124 .status(CommonStatusEnum.ENABLE.getStatus()).build(),
125 125 ImSensitiveWordDO.builder().id(2L).word("违禁词")
... ... @@ -179,7 +179,7 @@ public class ImSensitiveWordServiceImplTest extends BaseMockitoUnitTest {
179 179 when(imSensitiveWordMapper.selectByWord("updatedbad")).thenReturn(null);
180 180 // 准备:reload 时返回新词库
181 181 when(imSensitiveWordMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()))
182   - .thenReturn(listOf(
  182 + .thenReturn(ListUtil.of(
183 183 ImSensitiveWordDO.builder().id(1L).word("updatedbad")
184 184 .status(CommonStatusEnum.ENABLE.getStatus()).build()
185 185 ));
... ... @@ -212,7 +212,7 @@ public class ImSensitiveWordServiceImplTest extends BaseMockitoUnitTest {
212 212 .status(CommonStatusEnum.ENABLE.getStatus()).build());
213 213 // 准备:reload 时返回剩余词库(只剩中文那条)
214 214 when(imSensitiveWordMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()))
215   - .thenReturn(listOf(
  215 + .thenReturn(ListUtil.of(
216 216 ImSensitiveWordDO.builder().id(2L).word("违禁词")
217 217 .status(CommonStatusEnum.ENABLE.getStatus()).build()
218 218 ));
... ... @@ -252,24 +252,24 @@ public class ImSensitiveWordServiceImplTest extends BaseMockitoUnitTest {
252 252  
253 253 // 准备:reload 时返回空词库
254 254 when(imSensitiveWordMapper.selectListByStatus(CommonStatusEnum.ENABLE.getStatus()))
255   - .thenReturn(listOf());
  255 + .thenReturn(ListUtil.of());
256 256  
257 257 // 调用:批量删除,触发 invalidate
258   - sensitiveWordService.deleteSensitiveWordList(listOf(1L, 2L));
  258 + sensitiveWordService.deleteSensitiveWordList(ListUtil.of(1L, 2L));
259 259  
260 260 // 调用 + 断言:所有词都不再命中
261 261 assertDoesNotThrow(() -> sensitiveWordService.validateText("contains badword here"));
262 262 assertDoesNotThrow(() -> sensitiveWordService.validateText("这条消息里有违禁词哦"));
263 263  
264 264 // 断言:deleteByIds 被调用 1 次;selectListByStatus 共 2 次
265   - verify(imSensitiveWordMapper, times(1)).deleteByIds(listOf(1L, 2L));
  265 + verify(imSensitiveWordMapper, times(1)).deleteByIds(ListUtil.of(1L, 2L));
266 266 verify(imSensitiveWordMapper, times(2)).selectListByStatus(CommonStatusEnum.ENABLE.getStatus());
267 267 }
268 268  
269 269 @Test
270 270 public void testDeleteSensitiveWordList_emptyIds_skip() {
271 271 // 调用:空列表直接返回
272   - sensitiveWordService.deleteSensitiveWordList(listOf());
  272 + sensitiveWordService.deleteSensitiveWordList(ListUtil.of());
273 273  
274 274 // 断言:mapper 不被调用
275 275 verify(imSensitiveWordMapper, never()).deleteByIds(anyList());
... ...
yudao-module-im/src/test/java/cn/iocoder/yudao/module/im/service/websocket/ImWebSocketServiceImplTest.java
1 1 package cn.iocoder.yudao.module.im.service.websocket;
2 2  
  3 +import cn.hutool.core.collection.ListUtil;
3 4 import cn.hutool.extra.spring.SpringUtil;
4 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
... ... @@ -18,7 +19,6 @@ import java.util.Arrays;
18 19 import java.util.Collections;
19 20 import java.util.List;
20 21  
21   -import static cn.iocoder.yudao.module.im.util.ImTestCollectionUtils.*;
22 22 import static org.junit.jupiter.api.Assertions.assertEquals;
23 23 import static org.mockito.ArgumentMatchers.eq;
24 24 import static org.mockito.Mockito.*;
... ... @@ -108,7 +108,7 @@ public class ImWebSocketServiceImplTest extends BaseMockitoUnitTest {
108 108 dto.setGroupId(10L);
109 109 dto.setSenderId(1L);
110 110  
111   - imWebSocketService.sendGroupMessageAsync(listOf(1L, 2L, 3L), dto);
  111 + imWebSocketService.sendGroupMessageAsync(ListUtil.of(1L, 2L, 3L), dto);
112 112  
113 113 verify(webSocketMessageSender).sendObject(
114 114 eq(UserTypeEnum.ADMIN.getValue()), eq(1L), eq(ImGroupMessageDTO.TYPE), eq(dto));
... ... @@ -131,7 +131,7 @@ public class ImWebSocketServiceImplTest extends BaseMockitoUnitTest {
131 131 doThrow(new RuntimeException("user offline"))
132 132 .when(webSocketMessageSender).sendObject(anyInt(), eq(1L), anyString(), any());
133 133  
134   - imWebSocketService.sendGroupMessageAsync(listOf(1L, 2L, 3L), dto);
  134 + imWebSocketService.sendGroupMessageAsync(ListUtil.of(1L, 2L, 3L), dto);
135 135  
136 136 // 2L 和 3L 也都被推送
137 137 verify(webSocketMessageSender).sendObject(anyInt(), eq(2L), anyString(), any());
... ...