public void AddHystrixConnection_WithServiceName_NoVCAPs_ThrowsConnectorException() { IServiceCollection services = new ServiceCollection(); var config = new ConfigurationBuilder().Build(); var ex = Assert.Throws <ConnectorException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config, "foobar")); Assert.Contains("foobar", ex.Message); }
public void AddHystrixConnection_NoVCAPs_AddsConfiguredConnection() { IServiceCollection services = new ServiceCollection(); var config = new ConfigurationBuilder().Build(); HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config); var service = services.BuildServiceProvider().GetService <HystrixConnectionFactory>(); Assert.NotNull(service); }
public void AddHystrixConnection_ThrowsIfServiceNameNull() { IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = null; string serviceName = null; var ex = Assert.Throws <ArgumentNullException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config, serviceName)); Assert.Contains(nameof(serviceName), ex.Message); }
public void AddHystrixConnection_ThrowsIfServiceCollectionNull() { IServiceCollection services = null; IConfigurationRoot config = null; var ex = Assert.Throws <ArgumentNullException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config)); Assert.Contains(nameof(services), ex.Message); var ex2 = Assert.Throws <ArgumentNullException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config, "foobar")); Assert.Contains(nameof(services), ex2.Message); }
public void AddHystrixConnection_WithVCAPs_AddsHystrixConnectionFactory() { // Arrange var env2 = @" { 'p-circuit-breaker-dashboard': [ { 'credentials': { 'stream': 'https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com', 'amqp': { 'http_api_uris': [ 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/' ], 'ssl': false, 'dashboard_url': 'https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk', 'password': '******', 'protocols': { 'amqp': { 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'username': '******', 'password': '******', 'port': 5672, 'host': '192.168.1.55', 'hosts': [ '192.168.1.55' ], 'ssl': false, 'uri': 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'management': { 'path': '/api/', 'ssl': false, 'hosts': [ '192.168.1.55' ], 'password': '******', 'username': '******', 'port': 15672, 'host': '192.168.1.55', 'uri': 'https://*****:*****@192.168.1.55:15672/api/', 'uris': [ 'https://*****:*****@192.168.1.55:15672/api/' ] } }, 'username': '******', 'hostname': '192.168.1.55', 'hostnames': [ '192.168.1.55' ], 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'http_api_uri': 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/', 'uri': 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'dashboard': 'https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com' }, 'syslog_drain_url': null, 'volume_mounts': [], 'label': 'p-circuit-breaker-dashboard', 'provider': null, 'plan': 'standard', 'name': 'myHystrixService', 'tags': [ 'circuit-breaker', 'hystrix-amqp', 'spring-cloud' ] } ] } "; // Arrange IServiceCollection services = new ServiceCollection(); Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", env2); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); // Act and Assert HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config); var hystrixService = services.BuildServiceProvider().GetService <HystrixConnectionFactory>(); Assert.NotNull(hystrixService); var service = hystrixService.ConnectionFactory as ConnectionFactory; Assert.NotNull(service); Assert.Equal("06f0b204-9f95-4829-a662-844d3c3d6120", service.VirtualHost); Assert.Equal(5672, service.Port); Assert.Equal("192.168.1.55", service.HostName); Assert.Equal("a0f39f25-28a2-438e-a0e7-6c09d6d34dbd", service.UserName); Assert.Equal("1clgf5ipeop36437dmr2em4duk", service.Password); }
public void AddHystrixConnection_MultipleHystrixServices_ThrowsConnectorException() { // Arrange var env2 = @" { 'p-circuit-breaker-dashboard': [ { 'credentials': { 'stream': 'https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com', 'amqp': { 'http_api_uris': [ 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/' ], 'ssl': false, 'dashboard_url': 'https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk', 'password': '******', 'protocols': { 'amqp': { 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'username': '******', 'password': '******', 'port': 5672, 'host': '192.168.1.55', 'hosts': [ '192.168.1.55' ], 'ssl': false, 'uri': 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'management': { 'path': '/api/', 'ssl': false, 'hosts': [ '192.168.1.55' ], 'password': '******', 'username': '******', 'port': 15672, 'host': '192.168.1.55', 'uri': 'https://*****:*****@192.168.1.55:15672/api/', 'uris': [ 'https://*****:*****@192.168.1.55:15672/api/' ] } }, 'username': '******', 'hostname': '192.168.1.55', 'hostnames': [ '192.168.1.55' ], 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'http_api_uri': 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/', 'uri': 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'dashboard': 'https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com' }, 'syslog_drain_url': null, 'volume_mounts': [], 'label': 'p-circuit-breaker-dashboard', 'provider': null, 'plan': 'standard', 'name': 'myHystrixService1', 'tags': [ 'circuit-breaker', 'hystrix-amqp', 'spring-cloud' ] }, { 'credentials': { 'stream': 'https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com', 'amqp': { 'http_api_uris': [ 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/' ], 'ssl': false, 'dashboard_url': 'https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk', 'password': '******', 'protocols': { 'amqp': { 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'username': '******', 'password': '******', 'port': 5672, 'host': '192.168.1.55', 'hosts': [ '192.168.1.55' ], 'ssl': false, 'uri': 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'management': { 'path': '/api/', 'ssl': false, 'hosts': [ '192.168.1.55' ], 'password': '******', 'username': '******', 'port': 15672, 'host': '192.168.1.55', 'uri': 'https://*****:*****@192.168.1.55:15672/api/', 'uris': [ 'https://*****:*****@192.168.1.55:15672/api/' ] } }, 'username': '******', 'hostname': '192.168.1.55', 'hostnames': [ '192.168.1.55' ], 'vhost': '06f0b204-9f95-4829-a662-844d3c3d6120', 'http_api_uri': 'https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/', 'uri': 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120', 'uris': [ 'amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120' ] }, 'dashboard': 'https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com' }, 'syslog_drain_url': null, 'volume_mounts': [], 'label': 'p-circuit-breaker-dashboard', 'provider': null, 'plan': 'standard', 'name': 'myHystrixService2', 'tags': [ 'circuit-breaker', 'hystrix-amqp', 'spring-cloud' ] } ] } "; // Arrange IServiceCollection services = new ServiceCollection(); Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", env2); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); // Act and Assert var ex = Assert.Throws <ConnectorException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config)); Assert.Contains("Multiple", ex.Message); }
public void AddHystrixConnection_WithVCAPs_AddsHystrixConnectionFactory() { // Arrange var env2 = @" { ""p-circuit-breaker-dashboard"": [{ ""credentials"": { ""stream"": ""https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"", ""amqp"": { ""http_api_uris"": [""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/""], ""ssl"": false, ""dashboard_url"": ""https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""protocols"": { ""amqp"": { ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""port"": 5672, ""host"": ""192.168.1.55"", ""hosts"": [""192.168.1.55""], ""ssl"": false, ""uri"": ""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""management"": { ""path"": ""/api/"", ""ssl"": false, ""hosts"": [""192.168.1.55""], ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""port"": 15672, ""host"": ""192.168.1.55"", ""uri"": ""https://*****:*****@192.168.1.55:15672/api/"", ""uris"": [""https://*****:*****@192.168.1.55:15672/api/""] } }, ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""hostname"": ""192.168.1.55"", ""hostnames"": [""192.168.1.55""], ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""http_api_uri"": ""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/"", ""uri"": ""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""dashboard"": ""https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"" }, ""syslog_drain_url"": null, ""volume_mounts"": [], ""label"": ""p-circuit-breaker-dashboard"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myHystrixService"", ""tags"": [ ""circuit-breaker"", ""hystrix-amqp"", ""spring-cloud"" ] }] }"; // Arrange IServiceCollection services = new ServiceCollection(); Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", env2); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); // Act and Assert HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config); var hystrixService = services.BuildServiceProvider().GetService <HystrixConnectionFactory>(); Assert.NotNull(hystrixService); var service = hystrixService.ConnectionFactory as ConnectionFactory; Assert.NotNull(service); Assert.Equal("06f0b204-9f95-4829-a662-844d3c3d6120", service.VirtualHost); Assert.Equal(5672, service.Port); Assert.Equal("192.168.1.55", service.HostName); Assert.Equal("a0f39f25-28a2-438e-a0e7-6c09d6d34dbd", service.UserName); Assert.Equal("1clgf5ipeop36437dmr2em4duk", service.Password); }
public void AddHystrixConnection_MultipleHystrixServices_ThrowsConnectorException() { // Arrange var env2 = @" { ""p-circuit-breaker-dashboard"": [{ ""credentials"": { ""stream"": ""https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"", ""amqp"": { ""http_api_uris"": [""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/""], ""ssl"": false, ""dashboard_url"": ""https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""protocols"": { ""amqp"": { ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""port"": 5672, ""host"": ""192.168.1.55"", ""hosts"": [""192.168.1.55""], ""ssl"": false, ""uri"": ""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""management"": { ""path"": ""/api/"", ""ssl"": false, ""hosts"": [""192.168.1.55""], ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""port"": 15672, ""host"": ""192.168.1.55"", ""uri"": ""https://*****:*****@192.168.1.55:15672/api/"", ""uris"": [""https://*****:*****@192.168.1.55:15672/api/""] } }, ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""hostname"": ""192.168.1.55"", ""hostnames"": [""192.168.1.55""], ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""http_api_uri"": ""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/"", ""uri"": ""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""dashboard"": ""https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"" }, ""syslog_drain_url"": null, ""volume_mounts"": [], ""label"": ""p-circuit-breaker-dashboard"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myHystrixService1"", ""tags"": [ ""circuit-breaker"", ""hystrix-amqp"", ""spring-cloud"" ] }, { ""credentials"": { ""stream"": ""https://turbine-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"", ""amqp"": { ""http_api_uris"": [""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/""], ""ssl"": false, ""dashboard_url"": ""https://pivotal-rabbitmq.system.testcloud.com/#/login/a0f39f25-28a2-438e-a0e7-6c09d6d34dbd/1clgf5ipeop36437dmr2em4duk"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""protocols"": { ""amqp"": { ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""port"": 5672, ""host"": ""192.168.1.55"", ""hosts"": [""192.168.1.55""], ""ssl"": false, ""uri"": ""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55:5672/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""management"": { ""path"": ""/api/"", ""ssl"": false, ""hosts"": [""192.168.1.55""], ""password"": ""1clgf5ipeop36437dmr2em4duk"", ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""port"": 15672, ""host"": ""192.168.1.55"", ""uri"": ""https://*****:*****@192.168.1.55:15672/api/"", ""uris"": [""https://*****:*****@192.168.1.55:15672/api/""] } }, ""username"": ""a0f39f25-28a2-438e-a0e7-6c09d6d34dbd"", ""hostname"": ""192.168.1.55"", ""hostnames"": [""192.168.1.55""], ""vhost"": ""06f0b204-9f95-4829-a662-844d3c3d6120"", ""http_api_uri"": ""https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/"", ""uri"": ""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120"", ""uris"": [""amqp://*****:*****@192.168.1.55/06f0b204-9f95-4829-a662-844d3c3d6120""] }, ""dashboard"": ""https://hystrix-5ac7e504-3ca5-4f02-9302-d5554c059043.apps.testcloud.com"" }, ""syslog_drain_url"": null, ""volume_mounts"": [], ""label"": ""p-circuit-breaker-dashboard"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myHystrixService2"", ""tags"": [ ""circuit-breaker"", ""hystrix-amqp"", ""spring-cloud"" ] }] }"; // Arrange IServiceCollection services = new ServiceCollection(); Environment.SetEnvironmentVariable("VCAP_APPLICATION", TestHelpers.VCAP_APPLICATION); Environment.SetEnvironmentVariable("VCAP_SERVICES", env2); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); // Act and Assert var ex = Assert.Throws <ConnectorException>( () => HystrixProviderServiceCollectionExtensions.AddHystrixConnection(services, config)); Assert.Contains("Multiple", ex.Message); }