Files
annotations/Azaion.Test/ThrottleTest.cs
T
dzaitsev d92da6afa4 Errors sending to UI
notifying client of AI model conversion
2025-05-14 12:43:50 +03:00

57 lines
1.5 KiB
C#

using Azaion.Common.Extensions;
using FluentAssertions;
using Xunit;
namespace Azaion.Annotator.Test;
public class ThrottleTest
{
private readonly Guid _testTaskId = Guid.NewGuid();
[Fact]
public async Task TestScheduleAfterCooldown()
{
var calls = new List<DateTime>();
Console.WriteLine($"Start time: {DateTime.Now}");
for (int i = 0; i < 10; i++)
{
ThrottleExt.Throttle(() =>
{
calls.Add(DateTime.Now);
return Task.CompletedTask;
}, _testTaskId, TimeSpan.FromSeconds(1), scheduleCallAfterCooldown: true);
}
await Task.Delay(TimeSpan.FromSeconds(2));
Console.WriteLine(string.Join(',', calls));
calls.Count.Should().Be(2);
}
[Fact]
public async Task TestScheduleAfterCooldown2()
{
var calls = new List<DateTime>();
Console.WriteLine($"Start time: {DateTime.Now}");
ThrottleExt.Throttle(() =>
{
calls.Add(DateTime.Now);
return Task.CompletedTask;
}, _testTaskId, TimeSpan.FromSeconds(1), scheduleCallAfterCooldown: true);
await Task.Delay(TimeSpan.FromSeconds(2));
ThrottleExt.Throttle(() =>
{
calls.Add(DateTime.Now);
return Task.CompletedTask;
}, _testTaskId, TimeSpan.FromSeconds(1), scheduleCallAfterCooldown: true);
await Task.Delay(TimeSpan.FromSeconds(2));
Console.WriteLine(string.Join(',', calls));
calls.Count.Should().Be(2);
}
}