public void DisposeAndStateDoesNotChangeAfterHartbeatTest() { var mocker = new AutoMocker(); var serverIdentifier = new ServerIdentifier(); mocker.Use(serverIdentifier); var options = new RaftOptions(); options.Hartbeat.FromMilliseconds = 50; options.Hartbeat.ToMilliseconds = 50; var timer = new HartbeatTimer(options, mocker.Get<ILoggerFactory>(), serverIdentifier); var state = ServerStateType.Leader; var dispose = timer.Subscribe((s) => { state = s; }); dispose.Dispose(); Thread.Sleep(100); Assert.Equal(ServerStateType.Leader, state); }
public void SubscribeTest() { var mocker = new AutoMocker(); var serverIdentifier = new ServerIdentifier(); mocker.Use(serverIdentifier); var options = new RaftOptions(); options.Hartbeat.FromMilliseconds = 0; options.Hartbeat.ToMilliseconds = 0; var timer = new HartbeatTimer(options, mocker.Get<ILoggerFactory>(), serverIdentifier); var state = ServerStateType.Leader; timer.Subscribe((s) => { state = s; }); Thread.Sleep(100); Assert.Equal(ServerStateType.Candidate, state); }