public async Task NoHealthCheckRequired_RunAsync_NeverCallsGetClusterHealthChunkAsync() { _context.Manifest.Options.CheckClusterHealthWaitTime = null; var cluster = new Mock <IClusterClient>(); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); cluster.Verify(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None), Times.Never); }
public async Task ValidConnection_RunAsync_CallsInnerCommandRunAsync() { var cluster = new Mock <IClusterClient>(); var healthChunkResult = Task.FromResult(new ClusterHealthChunk(HealthState.Ok)); cluster.Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)).Returns(healthChunkResult); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); InnerCommand.Verify(c => c.RunAsync(), Times.Once); }
public async Task ConnectionCheckOk_RunAsync_LogsSuccess() { var cluster = new Mock <IClusterClient>(); var healthChunkResult = Task.FromResult(new ClusterHealthChunk(HealthState.Ok)); cluster.Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)).Returns(healthChunkResult); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); ShouldContainsLogMessage("Connection to the cluster succeeded"); }
public async Task UnhealthyCluster_RunAsync_NeverInnerCommandRunAsync() { var cluster = new Mock <IClusterClient>(); var healthChunkResult = Task.FromResult(new ClusterHealthChunk(HealthState.Warning)); cluster.Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)).Returns(healthChunkResult); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); InnerCommand.Verify(c => c.RunAsync(), Times.Never); }
public async Task UnhealthyClusterState_RunAsync_LogsFailure(HealthState status) { var cluster = new Mock <IClusterClient>(); var healthChunkResult = Task.FromResult(new ClusterHealthChunk(status)); cluster.Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)).Returns(healthChunkResult); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); ShouldContainsLogMessage($"The cluster failed to become healthy within 1 seconds"); }
public async Task ConnectionCheckException_RunAsync_NeverInnerCommandRunAsync() { var cluster = new Mock <IClusterClient>(); cluster .Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)) .Throws(new Exception("Connection failed.")); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); InnerCommand.Verify(c => c.RunAsync(), Times.Never); }
public async Task ConnectionCheckException_RunAsync_LogsFailure() { var cluster = new Mock <IClusterClient>(); cluster .Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)) .Throws(new Exception("Connection failed.")); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); ShouldContainsLogMessage("Connection failed."); }
public async Task NoHealthCheckRequired_RunAsync_CallsInnerCommandRunAsync() { _context.Manifest.Options.CheckClusterHealthWaitTime = null; var cluster = new Mock <IClusterClient>(); var healthChunkResult = Task.FromResult(new ClusterHealthChunk(HealthState.Ok)); cluster.Setup(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)).Returns(healthChunkResult); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); InnerCommand.Verify(c => c.RunAsync(), Times.Once); }
public async Task HealthyClusterStateSecondTime_RunAsync_LogsSuccess() { var cluster = new Mock <IClusterClient>(); var healthChunkResult1 = Task.FromResult(new ClusterHealthChunk(HealthState.Unknown)); var healthChunkResult2 = Task.FromResult(new ClusterHealthChunk(HealthState.Ok)); cluster .SetupSequence(c => c.GetClusterHealthChunkAsync(60, CancellationToken.None)) .Returns(healthChunkResult1) .Returns(healthChunkResult2); FabricClient.Setup(c => c.Cluster).Returns(cluster.Object); await _command.RunAsync(); ShouldContainsLogMessage("Cluster is healthy"); }