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);
}
}