41 lines
974 B
C#
41 lines
974 B
C#
using Shouldly;
|
|
using Xunit;
|
|
using ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Proxy.Supervisor;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Proxy.Tests;
|
|
|
|
[Trait("Category", "Unit")]
|
|
public sealed class HeartbeatMonitorTests
|
|
{
|
|
[Fact]
|
|
public void Single_miss_does_not_declare_dead()
|
|
{
|
|
var m = new HeartbeatMonitor();
|
|
m.RecordMiss().ShouldBeFalse();
|
|
m.RecordMiss().ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void Three_consecutive_misses_declare_host_dead()
|
|
{
|
|
var m = new HeartbeatMonitor();
|
|
m.RecordMiss().ShouldBeFalse();
|
|
m.RecordMiss().ShouldBeFalse();
|
|
m.RecordMiss().ShouldBeTrue();
|
|
}
|
|
|
|
[Fact]
|
|
public void Ack_resets_the_miss_counter()
|
|
{
|
|
var m = new HeartbeatMonitor();
|
|
m.RecordMiss();
|
|
m.RecordMiss();
|
|
|
|
m.RecordAck(DateTime.UtcNow);
|
|
|
|
m.ConsecutiveMisses.ShouldBe(0);
|
|
m.RecordMiss().ShouldBeFalse();
|
|
m.RecordMiss().ShouldBeFalse();
|
|
}
|
|
}
|