Files
ClawdDotNet/tests/ClawdDotNet.Core.Tests/Infrastructure/FakeTimeProvider.cs
T

20 lines
660 B
C#

namespace ClawdDotNet.Core.Tests.Infrastructure;
/// <summary>
/// Ein steuerbarer <see cref="TimeProvider"/> für die Zeit-abhängigen Tests (R2 der
/// Teststrategie). Bewusst schlank: die Tests treiben den Scanner über
/// <c>ScanOnceAsync</c> direkt, sie brauchen nur eine feste, verstellbare Uhr.
/// </summary>
internal sealed class FakeTimeProvider : TimeProvider
{
private DateTimeOffset _now;
public FakeTimeProvider(DateTimeOffset start) => _now = start;
public override DateTimeOffset GetUtcNow() => _now;
public void SetUtcNow(DateTimeOffset value) => _now = value;
public void Advance(TimeSpan delta) => _now += delta;
}