public void Invoke_HandlesExceptions_ReturnsExpectedHealth()
        {
            var contributors = new List <IHealthContributor>()
            {
                new TestContributor("h1"), new TestContributor("h2", true), new TestContributor("h3")
            };
            var ep = new HealthEndpointCore(options, aggregator, contributors, ServiceOptions(), provider);

            var info = ep.Invoke(null);

            foreach (var contrib in contributors)
            {
                var tc = (TestContributor)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 contributors = new List <IHealthContributor>();
            var ep           = new HealthEndpointCore(options, aggregator, contributors, ServiceOptions(), provider, GetLogger <HealthEndpoint>());

            var health = ep.Invoke(null);

            Assert.NotNull(health);
            Assert.Equal(HealthStatus.UNKNOWN, health.Status);
        }
        public void Invoke_CallsAllContributors()
        {
            var contributors = new List <IHealthContributor>()
            {
                new TestContributor("h1"), new TestContributor("h2"), new TestContributor("h3")
            };
            var ep = new HealthEndpointCore(options, aggregator, contributors, ServiceOptions(), provider);

            var info = ep.Invoke(null);

            foreach (var contrib in contributors)
            {
                var tc = (TestContributor)contrib;
                Assert.True(tc.Called);
            }
        }
Ejemplo n.º 4
0
        public void InvokeWithInvalidGroupReturnsAllContributors()
        {
            var contribs = new List <IHealthContributor>()
            {
                new DiskSpaceContributor(), new OutOfSserviceContributor(), new UnknownContributor(), new UpContributor()
            };
            var ep      = new HealthEndpointCore(options, new HealthRegistrationsAggregator(), contribs, ServiceProviderWithMSFTHealth(), provider);
            var context = Substitute.For <ISecurityContext>();

            context.GetRequestComponents().Returns(new string[] { "health", "iNvAlId" });

            var result = ep.Invoke(context);

            Assert.Equal(6, result.Details.Keys.Count);
            Assert.Equal(2, result.Groups.Count());
        }
Ejemplo n.º 5
0
        public void InvokeWithReadinessGroupReturnsGroupResults2()
        {
            var appAvailability = new ApplicationAvailability();
            var contribs        = new List <IHealthContributor>()
            {
                new UnknownContributor(), new UpContributor(), new ReadinessHealthContributor(appAvailability)
            };
            var ep      = new HealthEndpointCore(options, aggregator, contribs, ServiceProviderWithMSFTHealth(), provider);
            var context = Substitute.For <ISecurityContext>();

            context.GetRequestComponents().Returns(new string[] { "actuator", "health", "readiness" });
            appAvailability.SetAvailabilityState(appAvailability.ReadinessKey, ReadinessState.AcceptingTraffic, null);

            var result = ep.Invoke(context);

            Assert.Equal(HealthStatus.UP, result.Status);
            Assert.Single(result.Details.Keys);
            Assert.Equal(2, result.Groups.Count());
        }
Ejemplo n.º 6
0
        public void InvokeWithLivenessGroupReturnsGroupResults()
        {
            var appAvailability = new ApplicationAvailability();
            var contribs        = new List <IHealthContributor>()
            {
                new DiskSpaceContributor(), new LivenessHealthContributor(appAvailability)
            };
            var ep      = new HealthEndpointCore(options, aggregator, contribs, ServiceOptions(), provider);
            var context = Substitute.For <ISecurityContext>();

            context.GetRequestComponents().Returns(new string[] { "cloudfoundryapplication", "health", "liVeness" });
            appAvailability.SetAvailabilityState(appAvailability.LivenessKey, LivenessState.Correct, null);

            var result = ep.Invoke(context);

            Assert.Equal(HealthStatus.UP, result.Status);
            Assert.Single(result.Details.Keys);
            Assert.Equal(2, result.Groups.Count());
        }
        public void GetStatusCode_ReturnsExpected()
        {
            var contribs = new List <IHealthContributor>()
            {
                new DiskSpaceContributor()
            };
            var ep = new HealthEndpointCore(options, aggregator, contribs, ServiceOptions(), provider);

            Assert.Equal(503, ep.GetStatusCode(new HealthCheckResult {
                Status = HealthStatus.DOWN
            }));
            Assert.Equal(503, ep.GetStatusCode(new HealthCheckResult {
                Status = HealthStatus.OUT_OF_SERVICE
            }));
            Assert.Equal(200, ep.GetStatusCode(new HealthCheckResult {
                Status = HealthStatus.UP
            }));
            Assert.Equal(200, ep.GetStatusCode(new HealthCheckResult {
                Status = HealthStatus.UNKNOWN
            }));
        }
Ejemplo n.º 8
0
        public void InvokeWithGroupFiltersMSFTResults()
        {
            options.Groups.Add("msft", new HealthGroupOptions {
                Include = "up,privatememory"
            });
            var contribs = new List <IHealthContributor>()
            {
                new UnknownContributor(), new UpContributor()
            };
            var ep      = new HealthEndpointCore(options, new HealthRegistrationsAggregator(), contribs, ServiceProviderWithMSFTHealth(), provider);
            var context = Substitute.For <ISecurityContext>();

            context.GetRequestComponents().Returns(new string[] { "actuator", "health", "msft" });

            var result = ep.Invoke(context);

            Assert.Equal(2, result.Details.Keys.Count);
            Assert.Contains("Up", result.Details.Keys);
            Assert.Contains("privatememory", result.Details.Keys);
            Assert.Equal(3, result.Groups.Count());
        }