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); }
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); }
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); }
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); }
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); }