public async void Tick_ShouldCallHealthCheck_WhenItNeedsToRun(IHealthCheck check) { check.NeedsToRun.Returns(true); HealthMonitor.AddCheck(check).Should().BeTrue(); HealthMonitor.Tick(); // wait for the queue to run await Task.Delay(5); check.Received(1).RunAsync(); }
public async Task GivenTheHealthCheckCache_WhenCancellationIsRequested_ThenWeDoNotThrowAndReturnLastHealthCheckResult() { // Trigger a health check so as to populate lastResult await _cahcedHealthCheck.CheckHealthAsync(_context, CancellationToken.None); var ctSource = new CancellationTokenSource(); ctSource.Cancel(); HealthCheckResult result = await _cahcedHealthCheck.CheckHealthAsync(_context, ctSource.Token); // Confirm we only called CheckHealthAsync once. await _healthCheck.Received(1).CheckHealthAsync(Arg.Any <HealthCheckContext>(), Arg.Any <CancellationToken>()); Assert.Equal(HealthStatus.Healthy, result.Status); }