public async Task NodeFileSystemUsageShouldInvalidWhenResponseIsInvalid() { var widget = new FileSystemUsageWidget { NodeUris = new List <string>() { "http://127.0.0.1:9200" }, NodeId = nodeId }; var clusterStatsResponseMock = new Mock <ClusterStatsResponse>(); var elasticsearchHelperMock = new Mock <ElasticsearchHelper>(); var elasticsearchSimpleClientMock = new Mock <ElasticsearchSimpleClient>(MockBehavior.Strict, new object[] { widget }); clusterStatsResponseMock.Setup(response => response.IsValid).Returns(false); elasticsearchHelperMock.Setup(helper => helper.GetElasticClient(It.IsAny <IElasticsearchWidget>())) .Returns(elasticsearchSimpleClientMock.Object); elasticsearchSimpleClientMock.Setup(client => client.StatsAsync("nodes.fs", nodeId, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(clusterStatsResponseMock.Object)); var request = MetricQueryRequest.Create(widget); var handler = new FileSystemUsageHandler(elasticsearchHelperMock.Object); await handler.Handle(request, CancellationToken.None).ConfigureAwait(false); Assert.AreEqual(State.Invalid, widget.State); elasticsearchHelperMock.Verify(client => client.GetElasticClient(It.IsAny <IElasticsearchWidget>()), Times.Once()); elasticsearchSimpleClientMock.Verify(client => client.StatsAsync("nodes.fs", nodeId, It.IsAny <CancellationToken>()), Times.Once()); }
public async Task NodeFileSystemUsageShouldInvalidWhenPercentageUsedHighThenErrorPercentage() { var widget = new FileSystemUsageWidget { NodeUris = new List <string>() { "http://127.0.0.1:9200" }, PercentageType = FileSystemPercentageType.PercentageUsed, NodeId = nodeId, ErrorPercentage = 20 }; var clusterStatsResponseMock = new Mock <ClusterStatsResponse>(); var elasticsearchHelperMock = new Mock <ElasticsearchHelper>(); var elasticsearchSimpleClientMock = new Mock <ElasticsearchSimpleClient>(MockBehavior.Strict, new object[] { widget }); clusterStatsResponseMock.Setup(response => response.Nodes.FileSystem.AvailableInBytes).Returns(30); clusterStatsResponseMock.Setup(response => response.Nodes.FileSystem.TotalInBytes).Returns(100); clusterStatsResponseMock.Setup(response => response.IsValid).Returns(true); elasticsearchHelperMock.Setup(helper => helper.GetElasticClient(It.IsAny <IElasticsearchWidget>())) .Returns(elasticsearchSimpleClientMock.Object); elasticsearchSimpleClientMock.Setup(client => client.StatsAsync("nodes.fs", nodeId, It.IsAny <CancellationToken>())) .Returns(Task.FromResult(clusterStatsResponseMock.Object)); var request = MetricQueryRequest.Create(widget); var handler = new FileSystemUsageHandler(elasticsearchHelperMock.Object); await handler.Handle(request, CancellationToken.None).ConfigureAwait(false); Assert.AreEqual(State.Failed, widget.State); Assert.AreEqual(70, widget.Progress); Assert.AreEqual(70, widget.Value); Assert.AreEqual($"Used 70%{Environment.NewLine}70 bytes used out of 100 bytes", widget.Message); elasticsearchHelperMock.Verify(client => client.GetElasticClient(It.IsAny <IElasticsearchWidget>()), Times.Once()); elasticsearchSimpleClientMock.Verify(client => client.StatsAsync("nodes.fs", nodeId, It.IsAny <CancellationToken>()), Times.Once()); }