public async Task IndexHealthShouldPartiallySucceededWhenClusterStatusYellow() { var widget = new IndexHealthWidget { NodeUris = new List <string>() { "http://127.0.0.1:9200" }, IndexName = indexName }; var indexHealthResponseMock = new Mock <IndexHealthResponse>(); var elasticsearchHelperMock = new Mock <ElasticsearchHelper>(); var elasticsearchSimpleClientMock = new Mock <ElasticsearchSimpleClient>(MockBehavior.Strict, new object[] { widget }); indexHealthResponseMock.Setup(response => response.IsValid).Returns(true); indexHealthResponseMock.Setup(response => response.Status).Returns(Health.Yellow); elasticsearchHelperMock.Setup(helper => helper.GetElasticClient(It.IsAny <IElasticsearchWidget>())) .Returns(elasticsearchSimpleClientMock.Object); elasticsearchSimpleClientMock.Setup(client => client.IndexHealthAsync(indexName, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(indexHealthResponseMock.Object)); var request = HealthCheckRequest.Create(widget); var handler = new IndexHealthCheck(elasticsearchHelperMock.Object); await handler.Handle(request, CancellationToken.None).ConfigureAwait(false); Assert.AreEqual(State.PartiallySucceeded, request.DataContext.State); elasticsearchHelperMock.Verify(client => client.GetElasticClient(It.IsAny <IElasticsearchWidget>()), Times.Once()); elasticsearchSimpleClientMock.Verify(client => client.IndexHealthAsync(indexName, It.IsAny <CancellationToken>()), Times.Once()); }
public IndexLoaderBackgroundService(IConfiguration config, ILogger <IndexLoaderBackgroundService> logger, IIndexHolder indexHolder, IndexHealthCheck indexHealthCheck) { this.config = config; this.logger = logger; this.indexHolder = indexHolder; this.indexHealthCheck = indexHealthCheck; }