public async Task Dynamo_Connection_Exception_Returns_Unhealthy() { _awsDynamo.DescribeTableAsync(Arg.Any <string>()).Throws(new Exception("No Table for You!")); var check = new DynamoDbHealthCheck(_pocoDynamo, new NullLoggerFactory()); var health = await check.CheckHealthAsync(new HealthCheckContext()); Assert.Equal(HealthStatus.Unhealthy, health.Status); }
public async Task CheckHealthAsyncTestSucceeds() { _mockClient.Setup(x => x.DescribeTableAsync("Models", default)).ReturnsAsync(new DescribeTableResponse()); var sut = new DynamoDbHealthCheck <TestModelDb>(_mockClient.Object); var result = await sut.CheckHealthAsync(new HealthCheckContext()).ConfigureAwait(false); result.Status.Should().Be(HealthStatus.Healthy); }
public async Task CheckHealthAsyncTestFails() { var ex = new Exception("Something bad happened"); _mockClient.Setup(x => x.DescribeTableAsync("Models", default)).ThrowsAsync(ex); var sut = new DynamoDbHealthCheck <TestModelDb>(_mockClient.Object); var result = await sut.CheckHealthAsync(new HealthCheckContext()).ConfigureAwait(false); result.Status.Should().Be(HealthStatus.Unhealthy); result.Exception.Should().Be(ex); }
public async Task Inactive_Table_Dynamo_Returns_Unhealthy() { _awsDynamo.DescribeTableAsync(Arg.Any <string>()).Returns(new DescribeTableResponse { Table = new TableDescription { TableStatus = TableStatus.CREATING } }); var check = new DynamoDbHealthCheck(_pocoDynamo, new NullLoggerFactory()); var health = await check.CheckHealthAsync(new HealthCheckContext()); Assert.Equal(HealthStatus.Unhealthy, health.Status); }
public void DynamoDbHealthCheckConstructorTestFails() { Action act = () => _ = new DynamoDbHealthCheck <TestModel>(_mockClient.Object); act.Should().Throw <ArgumentException>().WithMessage($"Type {typeof(TestModel).Name} does not have the DynamoDBTable attribute applied to it."); }