public void AddServiceDiscovery_ThrowsIfServiceCollectionNull() { // Arrange IServiceCollection serviceCollection = null; // Act and Assert var ex = Assert.Throws <ArgumentNullException>(() => DiscoveryServiceCollectionExtensions.AddServiceDiscovery(serviceCollection, (builder) => { })); Assert.Contains(nameof(serviceCollection), ex.Message); }
public void AddServiceDiscovery_WithServiceName_NoVCAPs_ThrowsConnectorException() { // Arrange IServiceCollection services = new ServiceCollection(); services.AddSingleton <IConfiguration>(new ConfigurationBuilder().Build()); // Act and Assert var ex = Assert.Throws <ConnectorException>(() => DiscoveryServiceCollectionExtensions.AddServiceDiscovery(services, builder => builder.UseEureka("foobar"))); Assert.Contains("foobar", ex.Message); }
public void AddServiceDiscovery_MultipleRegistryServices_ThrowsConnectorException() { // Arrange var env1 = @" { ""limits"": { ""fds"": 16384, ""mem"": 1024, ""disk"": 1024 }, ""application_name"": ""spring-cloud-broker"", ""application_uris"": [ ""spring-cloud-broker.apps.testcloud.com"" ], ""name"": ""spring-cloud-broker"", ""space_name"": ""p-spring-cloud-services"", ""space_id"": ""65b73473-94cc-4640-b462-7ad52838b4ae"", ""uris"": [ ""spring-cloud-broker.apps.testcloud.com"" ], ""users"": null, ""version"": ""07e112f7-2f71-4f5a-8a34-db51dbed30a3"", ""application_version"": ""07e112f7-2f71-4f5a-8a34-db51dbed30a3"", ""application_id"": ""798c2495-fe75-49b1-88da-b81197f2bf06"" }"; var env2 = @" { ""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"" ] }, { ""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"": ""myDiscoveryService2"", ""tags"": [ ""eureka"", ""discovery"", ""registry"", ""spring-cloud"" ] }] }"; // Arrange IServiceCollection services = new ServiceCollection(); Environment.SetEnvironmentVariable("VCAP_APPLICATION", env1); Environment.SetEnvironmentVariable("VCAP_SERVICES", env2); services.AddSingleton <IConfiguration>(new ConfigurationBuilder().AddCloudFoundry().Build()); // Act and Assert var ex = Assert.Throws <ConnectorException>(() => DiscoveryServiceCollectionExtensions.AddServiceDiscovery(services, (options) => options.UseEureka())); Assert.Contains("Multiple", ex.Message); }