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