public static HealthCheckBuilder AddHttpEndpointCheck(this HealthCheckBuilder builder, string name, Action <HttpCheckSettingsBuilder> configureAction) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } if (configureAction == null) { throw new ArgumentNullException(nameof(configureAction)); } var settingsBuilder = new HttpCheckSettingsBuilder(name); configureAction(settingsBuilder); var settingsCollection = settingsBuilder.Build(); for (int i = 0; i < settingsCollection.Requests.Count; i++) { var request = settingsCollection.Requests[i]; var settingsName = settingsCollection.Requests.Count > 1 ? $"{settingsCollection.Name} {i+1}" : settingsCollection.Name; var settings = new HttpCheckSettings(settingsName, settingsCollection.Critical, settingsCollection.Frequency, settingsCollection.Tags, request, settingsCollection.BeforeSend); builder.AddHttpEndpointCheck(settings); } return(builder); }
public async Task CheckHealthAsync_Unhealthy_ThrowsException() { var check = new HttpCheck(); var httpSettings = new HttpRequestSettings() { HttpMethod = HttpMethod.Get, Uri = new Uri("http://localhost") }; var settings = new HttpCheckSettings("http", false, 0, null, httpSettings); var context = new HealthCheckContext(settings); var httpHandler = new TestHttpMessageHandler(); httpHandler.Sender = r => throw new HttpRequestException(); settings.HttpHandler = httpHandler; await Assert.ThrowsAsync <HttpRequestException>(async() => await check.CheckHealthAsync(context, settings)); }
public async Task CheckHealthAsync_UnhealthyStatusCode_CheckFailed() { var check = new HttpCheck(); var httpSettings = new HttpRequestSettings() { HttpMethod = HttpMethod.Get, Uri = new Uri("http://localhost") }; var settings = new HttpCheckSettings("http", false, 0, null, httpSettings); var context = new HealthCheckContext(settings); var httpHandler = new TestHttpMessageHandler(); httpHandler.Sender = r => new HttpResponseMessage(HttpStatusCode.BadRequest); settings.HttpHandler = httpHandler; await check.CheckHealthAsync(context, settings); Assert.False(context.HasSucceeded); }
public static HealthCheckBuilder AddHttpEndpointCheck(this HealthCheckBuilder builder, HttpCheckOptions options) { var settings = new HttpCheckSettings(options.Name, options.Critical, options.Frequency, options.Tags, options.Request); return(builder.Add <HttpCheck>(settings)); }
private static HealthCheckBuilder AddHttpEndpointCheck(this HealthCheckBuilder builder, HttpCheckSettings settings) { return(builder.Add <HttpCheck>(settings)); }