35 lines
998 B
C#
35 lines
998 B
C#
using MoShiro.Probe;
|
|
|
|
namespace MoShiro.Probe.Tests;
|
|
|
|
public sealed class ProbeReconnectBackoffTests
|
|
{
|
|
[Fact]
|
|
public void Next_UsesRequestedEscalationThenCapsAtOneMinute()
|
|
{
|
|
var backoff = new ProbeReconnectBackoff();
|
|
TimeSpan[] expected =
|
|
[
|
|
TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(4),
|
|
TimeSpan.FromSeconds(8), TimeSpan.FromSeconds(16),
|
|
TimeSpan.FromSeconds(32), TimeSpan.FromSeconds(32), TimeSpan.FromSeconds(32),
|
|
TimeSpan.FromSeconds(32), TimeSpan.FromSeconds(32),
|
|
TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1),
|
|
];
|
|
|
|
Assert.Equal(expected, expected.Select(_ => backoff.Next()));
|
|
}
|
|
|
|
[Fact]
|
|
public void Reset_RestartsAtOneSecond()
|
|
{
|
|
var backoff = new ProbeReconnectBackoff();
|
|
_ = backoff.Next();
|
|
_ = backoff.Next();
|
|
|
|
backoff.Reset();
|
|
|
|
Assert.Equal(TimeSpan.FromSeconds(1), backoff.Next());
|
|
}
|
|
}
|