public void Invoke_HandlesExceptions_ReturnsExpectedHealth() { var opts = new HealthEndpointOptions(); var contributors = new List <IHealthContributor>() { new TestContrib("h1"), new TestContrib("h2", true), new TestContrib("h3") }; var ep = new HealthEndpoint(opts, new DefaultHealthAggregator(), contributors); var info = ep.Invoke(null); foreach (var contrib in contributors) { TestContrib tc = (TestContrib)contrib; if (tc.Throws) { Assert.False(tc.Called); } else { Assert.True(tc.Called); } } Assert.Equal(HealthStatus.UP, info.Status); }
public void Invoke_NoContributors_ReturnsExpectedHealth() { var opts = new HealthEndpointOptions(); var contributors = new List <IHealthContributor>(); var agg = new DefaultHealthAggregator(); var ep = new HealthEndpoint(opts, agg, contributors, GetLogger <HealthEndpoint>()); var health = ep.Invoke(null); Assert.NotNull(health); Assert.Equal(HealthStatus.UNKNOWN, health.Status); }
public void Invoke_CallsAllContributors() { var opts = new HealthEndpointOptions(); var contributors = new List <IHealthContributor>() { new TestContrib("h1"), new TestContrib("h2"), new TestContrib("h3") }; var ep = new HealthEndpoint(opts, new DefaultHealthAggregator(), contributors); var info = ep.Invoke(null); foreach (var contrib in contributors) { TestContrib tc = (TestContrib)contrib; Assert.True(tc.Called); } }
public void InvokeWithInvalidGroupReturnsAllContributors() { // arrange var opts = new HealthEndpointOptions(); var contribs = new List <IHealthContributor>() { new DiskSpaceContributor(), new OutOfSserviceContributor(), new UnknownContributor(), new UpContributor() }; var ep = new HealthEndpoint(opts, new DefaultHealthAggregator(), contribs); var context = Substitute.For <ISecurityContext>(); context.GetRequestComponents().Returns(new string[] { "health", "iNvAlId" }); // act var result = ep.Invoke(context); // assert Assert.Equal(HealthStatus.OUT_OF_SERVICE, result.Status); Assert.True(result.Details.Keys.Count == 4); Assert.True(result.Groups.Count() == 2); }
public void InvokeWithReadinessGroupReturnsGroupResults() { // arrange var opts = new HealthEndpointOptions(); var appAvailability = new ApplicationAvailability(); var contribs = new List <IHealthContributor>() { new UnknownContributor(), new UpContributor(), new ReadinessHealthContributor(appAvailability) }; var ep = new HealthEndpoint(opts, new DefaultHealthAggregator(), contribs); var context = Substitute.For <ISecurityContext>(); context.GetRequestComponents().Returns(new string[] { "actuator", "health", "readiness" }); appAvailability.SetAvailabilityState(appAvailability.ReadinessKey, ReadinessState.AcceptingTraffic, null); // act var result = ep.Invoke(context); // assert Assert.Equal(HealthStatus.UP, result.Status); Assert.True(result.Details.Keys.Count == 1); Assert.True(result.Groups.Count() == 2); }
public void InvokeWithLivenessGroupReturnsGroupResults() { // arrange var opts = new HealthEndpointOptions(); var appAvailability = new ApplicationAvailability(); var contribs = new List <IHealthContributor>() { new DiskSpaceContributor(), new LivenessHealthContributor(appAvailability) }; var ep = new HealthEndpoint(opts, new DefaultHealthAggregator(), contribs); var context = Substitute.For <ISecurityContext>(); context.GetRequestComponents().Returns(new string[] { "cloudfoundryapplication", "health", "liVeness" }); appAvailability.SetAvailabilityState(appAvailability.LivenessKey, LivenessState.Correct, null); // act var result = ep.Invoke(context); // assert Assert.Equal(HealthStatus.UP, result.Status); Assert.True(result.Details.Keys.Count == 1); Assert.True(result.Groups.Count() == 2); }