using BuildFlow.Platform.Application.Users.DTOs;
using BuildFlow.Platform.Application.Users.Queries;
using MediatR;
namespace BuildFlow.IM.Integration.Tests;
///
/// 进程内用户摘要查询处理器。测试前可预置用户展示名和头像,由 MediatR 按用户 ID 批量返回。
///
public sealed class InMemoryUserSummaryQueryHandler
: IRequestHandler>
{
private readonly Dictionary _users = new();
///
/// 预置一个用户摘要。
///
public void SetUser(Guid userId, string username, string? avatar = null) =>
_users[userId] = new UserSummaryDto(userId, username, avatar);
public Task> Handle(
GetUserSummariesQuery request,
CancellationToken ct)
{
IReadOnlyDictionary result = request.UserIds
.Distinct()
.Where(_users.ContainsKey)
.ToDictionary(userId => userId, userId => _users[userId]);
return Task.FromResult(result);
}
}