Esempio n. 1
0
        public void ApplyServicesUsesServerTimeout()
        {
            var appSettings = new Dictionary <string, string>()
            {
                { "Eureka:Client:EurekaServer:ConnectTimeoutSeconds", "1" },
                { "Eureka:Client:EurekaServer:RetryCount", "1" }
            };
            var config            = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build();
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(config);
            serviceCollection.RegisterDefaultApplicationInstanceInfo();
            serviceCollection.AddAllActuators(config);
            var extension = new EurekaDiscoveryClientExtension();

            extension.ApplyServices(serviceCollection);
            var provider = serviceCollection.BuildServiceProvider();

            var timer = new Stopwatch();

            timer.Start();
            var discoveryClient = provider.GetService <IDiscoveryClient>() as EurekaDiscoveryClient;

            timer.Stop();
            Assert.InRange(timer.ElapsedMilliseconds, 0, 3500);
        }
Esempio n. 2
0
        public void ApplyServicesIgnoresCFManagementOptions()
        {
            var vcap_services = @"
                {
                    ""p-service-registry"": [{
                        ""credentials"": {
                            ""uri"": ""https://eureka-6a1b81f5-79e2-4d14-a86b-ddf584635a60.apps.testcloud.com"",
                            ""client_id"": ""p-service-registry-06e28efd-24be-4ce3-9784-854ed8d2acbe"",
                            ""client_secret"": ""dCsdoiuklicS"",
                            ""access_token_uri"": ""https://p-spring-cloud-services.uaa.system.testcloud.com/oauth/token""
                            },
                        ""syslog_drain_url"": null,
                        ""label"": ""p-service-registry"",
                        ""provider"": null,
                        ""plan"": ""standard"",
                        ""name"": ""myDiscoveryService"",
                        ""tags"": [
                            ""eureka"",
                            ""discovery"",
                            ""registry"",
                            ""spring-cloud""
                        ]
                    }]
                }";

            Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION);
            Environment.SetEnvironmentVariable("VCAP_SERVICES", vcap_services);
            var appSettings = new Dictionary <string, string>()
            {
                { "management:endpoints:health:path", "/non-default" }
            };
            var config            = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build();
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(config);
            serviceCollection.RegisterDefaultApplicationInstanceInfo();
            serviceCollection.AddAllActuators(config);
            var extension = new EurekaDiscoveryClientExtension();

            extension.ApplyServices(serviceCollection);
            var provider = serviceCollection.BuildServiceProvider();

            var options = provider.GetRequiredService <IOptions <EurekaInstanceOptions> >();

            Assert.NotNull(options);
            Assert.Equal("/actuator/non-default", options.Value.HealthCheckUrlPath);
            Assert.Equal("/actuator/info", options.Value.StatusPageUrlPath);
        }
        public void ClientEnabledByDefault()
        {
            var services    = new ServiceCollection();
            var ext         = new EurekaDiscoveryClientExtension();
            var appSettings = new Dictionary <string, string> {
                { "eureka:client:serviceurl", "http://testhost/eureka" }
            };

            services.AddSingleton <IConfiguration>(new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build());

            ext.ConfigureEurekaServices(services);
            var provider      = services.BuildServiceProvider();
            var clientOptions = provider.GetRequiredService <IOptions <EurekaClientOptions> >();

            Assert.True(clientOptions.Value.Enabled);
        }
Esempio n. 4
0
        public void ApplyServicesNoExceptionWithoutManagementOptions()
        {
            var config            = new ConfigurationBuilder().Build();
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(config);
            serviceCollection.RegisterDefaultApplicationInstanceInfo();
            var extension = new EurekaDiscoveryClientExtension();

            extension.ApplyServices(serviceCollection);
            var provider = serviceCollection.BuildServiceProvider();

            var options = provider.GetRequiredService <IOptions <EurekaInstanceOptions> >();

            Assert.NotNull(options);
            Assert.Equal("/health", options.Value.HealthCheckUrlPath);
            Assert.Equal("/info", options.Value.StatusPageUrlPath);
        }
Esempio n. 5
0
        public void ApplyServicesUsesManagementOptions()
        {
            var appSettings = new Dictionary <string, string>()
            {
                { "management:endpoints:health:path", "/non-default" }
            };
            var config            = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build();
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(config);
            serviceCollection.RegisterDefaultApplicationInstanceInfo();
            serviceCollection.AddAllActuators(config);
            var extension = new EurekaDiscoveryClientExtension();

            extension.ApplyServices(serviceCollection);
            var provider = serviceCollection.BuildServiceProvider();

            var options = provider.GetRequiredService <IOptions <EurekaInstanceOptions> >();

            Assert.NotNull(options);
            Assert.Equal("/actuator/non-default", options.Value.HealthCheckUrlPath);
            Assert.Equal("/actuator/info", options.Value.StatusPageUrlPath);
        }
Esempio n. 6
0
        public void ApplyServicesDoesntOverrideUserPathSettings()
        {
            var appSettings = new Dictionary <string, string>()
            {
                { "eureka:instance:healthcheckurlpath", "/customHealth" },
                { "eureka:instance:statuspageurlpath", "/customStatus" }
            };
            var config            = new ConfigurationBuilder().AddInMemoryCollection(appSettings).Build();
            var serviceCollection = new ServiceCollection();

            serviceCollection.AddSingleton <IConfiguration>(config);
            serviceCollection.RegisterDefaultApplicationInstanceInfo();
            serviceCollection.AddAllActuators(config);
            var extension = new EurekaDiscoveryClientExtension();

            extension.ApplyServices(serviceCollection);
            var provider = serviceCollection.BuildServiceProvider();

            var options = provider.GetRequiredService <IOptions <EurekaInstanceOptions> >();

            Assert.NotNull(options);
            Assert.Equal("/customHealth", options.Value.HealthCheckUrlPath);
            Assert.Equal("/customStatus", options.Value.StatusPageUrlPath);
        }