using IM.Domain.Common; namespace BuildFlow.IM.Integration.Tests; /// /// 进程内 替身:避免真实 gRPC 调用到未运行的 SSO 服务。 /// 测试前调用 预置用户展示名/头像,Handler 调用时按 ID 返回。 /// public sealed class InMemoryUserInfoService : IUserInfoService { private readonly Dictionary _users = new(); public void SetUser(Guid userId, string username, string? avatar = null) => _users[userId] = (username, avatar); public Task> GetUsersAsync( IEnumerable userIds, CancellationToken ct = default) { var result = new Dictionary(); foreach (var id in userIds) { if (_users.TryGetValue(id, out var info)) result[id.ToString()] = info; } return Task.FromResult(result); } }