public async Task TestCallbacksAll()
        {
            var callbacks      = new HealthMonitorCallbacks(_logger);
            var healthyCount   = 0;
            var degradedCount  = 0;
            var unhealthyCount = 0;

            callbacks.AddCallback("Check1", HealthMonitorStatus.Healthy, (result) => { healthyCount++; return(Task.CompletedTask); });
            callbacks.AddCallback("Check2", HealthMonitorStatus.Degraded, (result) => { degradedCount++; return(Task.CompletedTask); });
            callbacks.AddCallback("Check3", HealthMonitorStatus.Unhealthy, (result) => { unhealthyCount++; return(Task.CompletedTask); });

            await callbacks.ProcessCallbacks(Data());

            Assert.Equal(1, healthyCount);
            Assert.Equal(1, degradedCount);
            Assert.Equal(1, unhealthyCount);
        }
        public async Task UnhealthyResultWithCallback()
        {
            var opts = Options();

            opts.HealthChecks[0].Uri = "unhealthy";

            var count     = 0;
            var callbacks = new HealthMonitorCallbacks(_callbackLogger);

            callbacks.AddCallback("Check1", HealthMonitorStatus.Unhealthy, (result) => { count++; return(Task.CompletedTask); });

            var data = await RunTest(opts, callbacks);

            Assert.Equal(3, data.MonitorResults.Count);
            Assert.Equal(HealthMonitorStatus.Unhealthy, data.MonitorResults["Check1"].Status);
            Assert.Equal(HealthMonitorStatus.Healthy, data.MonitorResults["Check2"].Status);
            Assert.Equal(HealthMonitorStatus.Healthy, data.MonitorResults["Check3"].Status);
            Assert.Equal(1, count);
        }