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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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");
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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");
        }