public void AddRabbitMQConnection_MultipleRabbitMQServices_DoesntThrow_IfNameUsed() { // Arrange var env2 = @" { 'p-rabbitmq': [ { 'credentials': { 'uri': 'amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355' }, 'syslog_drain_url': null, 'label': 'p-rabbitmq', 'provider': null, 'plan': 'standard', 'name': 'myRabbitMQService1', 'tags': [ 'rabbitmq', 'amqp' ] }, { 'credentials': { 'uri': 'amqp://*****:*****@192.168.0.91:3306/asdf' }, 'syslog_drain_url': null, 'label': 'p-Rabbit', 'provider': null, 'plan': 'standard', 'name': 'myRabbitMQService2', 'tags': [ 'rabbitmq', 'amqp' ] } ] } "; // 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 RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, "myRabbitMQService2"); var service = services.BuildServiceProvider().GetService <IConnectionFactory>() as ConnectionFactory; Assert.NotNull(service); Assert.Equal("asdf", service.VirtualHost); Assert.Equal(3306, service.Port); Assert.Equal("192.168.0.91", service.HostName); Assert.Equal("a", service.UserName); Assert.Equal("b", service.Password); }
public void AddRabbitMQConnection_MultipleRabbitMQServices_DoesntThrow_IfNameUsed() { // Arrange var env2 = @" { ""p-rabbitmq"": [{ ""credentials"": { ""uri"": ""amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355"" }, ""syslog_drain_url"": null, ""label"": ""p-rabbitmq"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myRabbitMQService1"", ""tags"": [ ""rabbitmq"", ""amqp"" ] }, { ""credentials"": { ""uri"": ""amqp://*****:*****@192.168.0.91:3306/asdf"" }, ""syslog_drain_url"": null, ""label"": ""p-Rabbit"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myRabbitMQService2"", ""tags"": [ ""rabbitmq"", ""amqp"" ] }] }"; // 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 RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, "myRabbitMQService2"); var service = services.BuildServiceProvider().GetService <IConnectionFactory>() as ConnectionFactory; Assert.NotNull(service); Assert.Equal("asdf", service.VirtualHost); Assert.Equal(3306, service.Port); Assert.Equal("192.168.0.91", service.HostName); Assert.Equal("a", service.UserName); Assert.Equal("b", service.Password); }
public void AddRabbitMQConnection_MultipleRabbitMQServices_ThrowsConnectorException() { // Arrange var env2 = @" { 'p-rabbitmq': [ { 'credentials': { 'uri': 'amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355' }, 'syslog_drain_url': null, 'label': 'p-rabbitmq', 'provider': null, 'plan': 'standard', 'name': 'myRabbitMQService1', 'tags': [ 'rabbitmq', 'amqp' ] }, { 'credentials': { 'uri': 'amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355' }, 'syslog_drain_url': null, 'label': 'p-Rabbit', 'provider': null, 'plan': 'standard', 'name': 'myRabbitMQService2', 'tags': [ 'rabbitmq', 'amqp' ] } ] } "; // 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>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config)); Assert.Contains("Multiple", ex.Message); }
public void AddRabbitMQConnection_WithServiceName_NoVCAPs_ThrowsConnectorException() { IServiceCollection services = new ServiceCollection(); var config = new ConfigurationBuilder().Build(); var ex = Assert.Throws <ConnectorException>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, "foobar")); Assert.Contains("foobar", ex.Message); }
public void AddRabbitMQConnection_NoVCAPs_AddsConfiguredConnection() { IServiceCollection services = new ServiceCollection(); var config = new ConfigurationBuilder().Build(); RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config); var service = services.BuildServiceProvider().GetService <IConnectionFactory>(); Assert.NotNull(service); }
public void AddRabbitMQConnection_MultipleRabbitMQServices_ThrowsConnectorException() { // Arrange var env2 = @" { ""p-rabbitmq"": [{ ""credentials"": { ""uri"": ""amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355"" }, ""syslog_drain_url"": null, ""label"": ""p-rabbitmq"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myRabbitMQService1"", ""tags"": [ ""rabbitmq"", ""amqp"" ] }, { ""credentials"": { ""uri"": ""amqp://*****:*****@192.168.0.90:3306/cf_b4f8d2fa_a3ea_4e3a_a0e8_2cd040790355"" }, ""syslog_drain_url"": null, ""label"": ""p-Rabbit"", ""provider"": null, ""plan"": ""standard"", ""name"": ""myRabbitMQService2"", ""tags"": [ ""rabbitmq"", ""amqp"" ] }] }"; // 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>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config)); Assert.Contains("Multiple", ex.Message); }
public void AddRabbitMQConnection_ThrowsIfServiceNameNull() { IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = null; string serviceName = null; var ex = Assert.Throws <ArgumentNullException>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, serviceName)); Assert.Contains(nameof(serviceName), ex.Message); }
public void AddRabbitMQConnection_AddsRabbitMQHealthContributor() { IServiceCollection services = new ServiceCollection(); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config); var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RabbitMQHealthContributor; Assert.NotNull(healthContributor); }
public void AddRabbitMQConnection_ThrowsIfConfigurationNull() { IServiceCollection services = new ServiceCollection(); IConfigurationRoot config = null; var ex = Assert.Throws <ArgumentNullException>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config)); Assert.Contains(nameof(config), ex.Message); var ex2 = Assert.Throws <ArgumentNullException>( () => RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, "foobar")); Assert.Contains(nameof(config), ex2.Message); }
public void AddRabbitMQConnection_AddsRabbitMQHealthContributor_WhenCommunityHealthCheckExistsAndForced() { IServiceCollection services = new ServiceCollection(); var builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); var cm = new ConnectionStringManager(config); var ci = cm.Get <RabbitMQConnectionInfo>(); services.AddHealthChecks().AddRabbitMQ(ci.ConnectionString, name: ci.Name); RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config, addSteeltoeHealthChecks: true); var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RabbitMQHealthContributor; Assert.NotNull(healthContributor); }
public void AddRabbitMQConnection_DoesntAddsRabbitMQHealthContributor_WhenCommunityHealthCheckExists() { // Arrange IServiceCollection services = new ServiceCollection(); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.AddCloudFoundry(); var config = builder.Build(); var cm = new ConnectionStringManager(config); var ci = cm.Get <RabbitMQConnectionInfo>(); services.AddHealthChecks().AddRabbitMQ(ci.ConnectionString, name: ci.Name); // Act RabbitMQProviderServiceCollectionExtensions.AddRabbitMQConnection(services, config); var healthContributor = services.BuildServiceProvider().GetService <IHealthContributor>() as RabbitMQHealthContributor; // Assert Assert.Null(healthContributor); }