Files
natsnet/dotnet/tests/ZB.MOM.NatsNet.Server.Tests/ImplBacklog/ImpltestsBacklogAssertions.cs

18 lines
568 B
C#

namespace ZB.MOM.NatsNet.Server.Tests.ImplBacklog;
internal static class ImpltestsBacklogAssertions
{
public static void SpinWaitUntil(Func<bool> condition, TimeSpan timeout, TimeSpan? poll = null)
{
var deadline = DateTime.UtcNow + timeout;
var interval = poll ?? TimeSpan.FromMilliseconds(10);
while (DateTime.UtcNow < deadline)
{
if (condition())
return;
Thread.Sleep(interval);
}
throw new TimeoutException("Condition was not satisfied within the timeout.");
}
}