Files
KArtSell.Aegis/docs/Design/kbx-foundation-v36/backend/Shared/Operations/Tests/ReconcilePolicyTests.cs
T

29 lines
873 B
C#

using Shared.Operations;
using Xunit;
namespace Shared.Operations.Tests;
public sealed class ReconcilePolicyTests
{
[Fact]
public void Equal_values_are_matched_immediately()
{
var now = DateTimeOffset.UtcNow;
Assert.Equal("matched", ReconcilePolicy.DecideStatus(true, now, now, TimeSpan.FromSeconds(30)));
}
[Fact]
public void Mismatch_inside_eventual_consistency_window_is_pending()
{
var changed = DateTimeOffset.UtcNow;
Assert.Equal("pending", ReconcilePolicy.DecideStatus(false, changed, changed.AddSeconds(10), TimeSpan.FromSeconds(30)));
}
[Fact]
public void Mismatch_after_grace_period_is_actionable()
{
var changed = DateTimeOffset.UtcNow;
Assert.Equal("mismatch", ReconcilePolicy.DecideStatus(false, changed, changed.AddMinutes(2), TimeSpan.FromSeconds(30)));
}
}