50 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using IM.Domain.Entities;
using IM.Domain.Enums;
namespace BuildFlow.IM.Tests;
/// <summary>
/// 测试数据工厂。集中处理 IFullAudit 实体的审计字段填充(InMemory 无 AuditInterceptor 自动补值)。
/// </summary>
internal static class ImTestData
{
private const string SystemUser = "system";
private const string LocalIp = "127.0.0.1";
/// <summary>构造一个带参与者的会话,审计字段已补齐。</summary>
internal static Conversation BuildConversation(
Guid id,
ConversationType type,
params (Guid UserId, int UnreadCount)[] participants)
{
var now = DateTime.UtcNow;
var conv = new Conversation
{
Id = id,
Type = type,
CreatedBy = SystemUser,
CreatedAt = now,
UpdatedBy = SystemUser,
UpdatedAt = now,
OperatorIP = LocalIp,
};
foreach (var (userId, unread) in participants)
{
conv.Participants.Add(new ConversationParticipant
{
ConversationId = id,
UserId = userId,
UnreadCount = unread,
JoinedAt = now,
CreatedBy = SystemUser,
CreatedAt = now,
UpdatedBy = SystemUser,
UpdatedAt = now,
});
}
return conv;
}
}