コード例 #1
0
        public void UpdateHealth_WithPropertySources_ReturnsExpected()
        {
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "true" },
                { "spring:cloud:config:health:timeToLive", "1" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();
            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);
            var health      = new HealthCheckResult();
            var sources     = new List <PropertySource>()
            {
                new PropertySource("foo", new Dictionary <string, object>()),
                new PropertySource("bar", new Dictionary <string, object>()),
            };

            contributor.UpdateHealth(health, sources);

            Assert.Equal(HealthStatus.UP, health.Status);
            Assert.True(health.Details.ContainsKey("propertySources"));
            var names = health.Details["propertySources"] as IList <string>;

            Assert.NotNull(names);
            Assert.Contains("foo", names);
            Assert.Contains("bar", names);
        }
コード例 #2
0
        public void Health_NotEnabled_ReturnsExpected()
        {
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "false" },
                { "spring:cloud:config:health:timeToLive", "1" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();
            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);

            Assert.NotNull(contributor.Provider);
            var health = contributor.Health();

            Assert.NotNull(health);
            Assert.Equal(HealthStatus.UNKNOWN, health.Status);
        }
コード例 #3
0
        public void Health_NoPropertySources_ReturnsExpected()
        {
            // this test does NOT expect to find a running config server
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8887/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "true" },
                { "spring:cloud:config:health:timeToLive", "1" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();
            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);

            Assert.NotNull(contributor.Provider);
            var health = contributor.Health();

            Assert.NotNull(health);
            Assert.Equal(HealthStatus.UNKNOWN, health.Status);
            Assert.True(health.Details.ContainsKey("error"));
        }
コード例 #4
0
        public void GetPropertySources_ReturnsExpected()
        {
            // this test does NOT expect to find a running config server
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8887/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "true" },
                { "spring:cloud:config:health:timeToLive", "1" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();

            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config)
            {
                Cached = new ConfigEnvironment()
            };
            var lastAccess = contributor.LastAccess = DateTimeOffset.Now.ToUnixTimeMilliseconds() - 100;
            var sources    = contributor.GetPropertySources();

            Assert.NotEqual(lastAccess, contributor.LastAccess);
            Assert.Null(sources);
            Assert.Null(contributor.Cached);
        }
コード例 #5
0
        public void IsCacheStale_ReturnsExpected()
        {
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "true" },
                { "spring:cloud:config:health:timeToLive", "1" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();

            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);

            Assert.True(contributor.IsCacheStale(0)); // No cache established yet
            contributor.Cached     = new ConfigEnvironment();
            contributor.LastAccess = 9;
            Assert.True(contributor.IsCacheStale(10));
            Assert.False(contributor.IsCacheStale(8));
        }
コード例 #6
0
        public void FindProvider_FindsProvider()
        {
            var values = new Dictionary<string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();
            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();

            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);
            Assert.NotNull(contributor.FindProvider(config));
        }
コード例 #7
0
        public void IsEnabled_ReturnsExpected()
        {
            var values = new Dictionary<string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:enabled", "true" },
                { "spring:cloud:config:timeout", "10" },
            };
            var builder = new ConfigurationBuilder();
            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();

            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);
            Assert.True(contributor.IsEnabled());
        }
コード例 #8
0
        public void GetTimeToLive_ReturnsExpected()
        {
            var values = new Dictionary <string, string>()
            {
                { "spring:cloud:config:uri", "http://localhost:8888/" },
                { "spring:cloud:config:name", "myName" },
                { "spring:cloud:config:label", "myLabel" },
                { "spring:cloud:config:health:timeToLive", "100000" },
            };
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(values);
            builder.AddConfigServer();

            var config = builder.Build();

            var contributor = new ConfigServerHealthContributor(config);

            Assert.Equal(100000, contributor.GetTimeToLive());
        }