using System;
using System.Linq;
using System.Threading.Tasks;
using My.Company;
using Xunit;
public class TestPatternServicesAsyncSleep
{
[Fact]
public async void ReturnAfterMs()
{
using var s = ServiceAsyncSleep.Create();
var r = await s.ReturnAfterMs(123, 500);
Assert.Equal(r, 123u);
}
[Fact]
public async void SupportsMultipleParallelCalls()
{
using var s = ServiceAsyncSleep.Create();
var tasks = Enumerable.Range(0, 10).Select(async _ =>
{
var x = Random.Shared.Next(100, 1000);
var ms = Random.Shared.Next(100, 1000);
var r = await s.ReturnAfterMs((ulong)x, (ulong)ms);
Assert.Equal((int)r, x);
}).ToList();
await Task.WhenAll(tasks);
}
}