namespace Flaro.Api.Tests; /// Eine Uhr, die man weiterstellt, statt zu warten. /// /// /// Weil manche Regeln an der verstrichenen Zeit hängen. Das /// Sehprotokoll deckelt den Zuwachs auf die Zeit zwischen zwei Meldungen — /// zwei Minuten Film lassen sich nicht in fünf Millisekunden sehen, und das /// ist richtig so. Prüfen lässt es sich damit nur, wenn der Test die Zeit /// vergehen lassen kann, ohne sie zu verbringen. /// /// Nur vorwärts: eine Uhr, die zurückläuft, prüft nichts, was vorkommt. /// public sealed class Stelluhr(DateTimeOffset start) : TimeProvider { private DateTimeOffset _jetzt = start; public override DateTimeOffset GetUtcNow() => _jetzt; /// Lässt Zeit vergehen. public void Weiter(TimeSpan spanne) { if (spanne < TimeSpan.Zero) throw new ArgumentOutOfRangeException(nameof(spanne)); _jetzt += spanne; } }