using Baya.Domain.Entities.Verification;
namespace Baya.Test.Foundation.Verification;
///
/// Helpers for the verification handler/aggregator tests. Entity ids have a protected setter (they are
/// assigned by EF on save); these set them via reflection so a mocked repository can return graphs with
/// stable ids without a real DbContext.
///
internal static class VerificationTestSupport
{
public static T WithId(this T entity, long id)
{
var setter = typeof(T).GetProperty("Id")!.GetSetMethod(nonPublic: true)!;
setter.Invoke(entity, [id]);
return entity;
}
public static VerificationStepType StepType(long id, string code, bool automated, bool required = true)
=> new VerificationStepType
{
Code = code,
DisplayName = code,
IsAutomated = automated,
IsRequired = required,
IsActive = true,
SortOrder = (int)id
}.WithId(id);
public static VerificationStep Step(long id, VerificationStepType type, VerificationStepStatus status)
=> new VerificationStep
{
StepTypeId = type.Id,
StepType = type,
Status = status,
IsAutomated = type.IsAutomated
}.WithId(id);
}