using GFramework.Core.Abstractions.time; namespace GFramework.Core.Tests.time; /// /// 可控制的时间提供者,用于测试 /// public sealed class FakeTimeProvider : ITimeProvider { private DateTime _currentTime; /// /// 创建可控制的时间提供者 /// /// 初始时间,默认为 2024-01-01 00:00:00 UTC public FakeTimeProvider(DateTime? initialTime = null) { _currentTime = initialTime ?? new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc); } /// /// 获取当前时间 /// public DateTime UtcNow => _currentTime; /// /// 前进指定的时间 /// public void Advance(TimeSpan duration) { _currentTime = _currentTime.Add(duration); } /// /// 设置当前时间 /// public void SetTime(DateTime time) { _currentTime = time; } }