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