39 lines
1.3 KiB
C#
39 lines
1.3 KiB
C#
using ItWorx.KnowledgeHub.Domain.Runbooks;
|
|
|
|
namespace ItWorx.KnowledgeHub.Domain.Tests;
|
|
|
|
public sealed class RunbookProfileTests
|
|
{
|
|
private static readonly DateTimeOffset Now = new(2026, 8, 1, 12, 0, 0, TimeSpan.Zero);
|
|
|
|
[Fact]
|
|
public void A_never_validated_runbook_is_stale_against_any_revision()
|
|
{
|
|
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Medium, false, null, null, Now);
|
|
|
|
Assert.True(runbook.IsStaleAgainst(1));
|
|
}
|
|
|
|
[Fact]
|
|
public void Validate_records_the_reviewer_and_the_current_revision()
|
|
{
|
|
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.High, true, 30, null, Now);
|
|
var validator = Guid.NewGuid();
|
|
|
|
runbook.Validate(validator, 3, Now);
|
|
|
|
Assert.Equal(validator, runbook.ValidatedBy);
|
|
Assert.Equal(Now, runbook.LastValidatedAt);
|
|
Assert.False(runbook.IsStaleAgainst(3));
|
|
}
|
|
|
|
[Fact]
|
|
public void A_new_content_revision_after_validation_makes_the_runbook_stale_again()
|
|
{
|
|
var runbook = RunbookProfile.Create(Guid.NewGuid(), Guid.NewGuid(), RunbookRiskLevel.Low, false, null, null, Now);
|
|
runbook.Validate(Guid.NewGuid(), 2, Now);
|
|
|
|
Assert.True(runbook.IsStaleAgainst(3));
|
|
}
|
|
}
|