private static void DoAdd(IServiceCollection services, RabbitServiceInfo info, IConfiguration config, ServiceLifetime contextLifetime) { RabbitProviderConnectorOptions rabbitConfig = new RabbitProviderConnectorOptions(config); RabbitProviderConnectorFactory factory = new RabbitProviderConnectorFactory(info, rabbitConfig); services.Add(new ServiceDescriptor(typeof(ConnectionFactory), factory.Create, contextLifetime)); }
public RabbitProviderConnectorFactory(RabbitServiceInfo sinfo, RabbitProviderConnectorOptions config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } _info = sinfo; _config = config; }
public void Constructor_ThrowsIfConfigNull() { // Arrange RabbitProviderConnectorOptions config = null; RabbitServiceInfo si = null; // Act and Assert var ex = Assert.Throws <ArgumentNullException>(() => new RabbitProviderConnectorFactory(si, config)); Assert.Contains(nameof(config), ex.Message); }
internal void UpdateConfiguration(RabbitServiceInfo si, RabbitProviderConnectorOptions configuration) { if (si == null) { return; } if (!string.IsNullOrEmpty(si.Uri)) { configuration.Port = si.Port; configuration.Username = si.UserName; configuration.Password = si.Password; configuration.Server = si.Host; configuration.VirtualHost = si.Path; } }
public void Create_ReturnsRabbitConnection() { RabbitProviderConnectorOptions config = new RabbitProviderConnectorOptions() { Server = "localhost", Port = 5672, Password = "******", Username = "******", VirtualHost = "vhost" }; RabbitServiceInfo si = new RabbitServiceInfo("MyId", "amqp://*****:*****@example.com:5672/si_vhost"); var factory = new RabbitProviderConnectorFactory(si, config); var connection = factory.Create(null); Assert.NotNull(connection); }
public static IServiceCollection AddRabbitConnection(this IServiceCollection services, IConfiguration config, ServiceLifetime contextLifetime = ServiceLifetime.Scoped, ILoggerFactory logFactory = null) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } RabbitServiceInfo info = config.GetSingletonServiceInfo <RabbitServiceInfo>(); DoAdd(services, info, config, contextLifetime); return(services); }
public void UpdateConfiguration_WithRabbitServiceInfo_UpdatesConfigurationFromServiceInfo() { RabbitProviderConfigurer configurer = new RabbitProviderConfigurer(); RabbitProviderConnectorOptions config = new RabbitProviderConnectorOptions() { Server = "localhost", Port = 1234, Username = "******", Password = "******", VirtualHost = "vhost" }; RabbitServiceInfo si = new RabbitServiceInfo("MyId", "amqp://*****:*****@example.com:5672/si_vhost"); configurer.UpdateConfiguration(si, config); Assert.Equal("example.com", config.Server); Assert.Equal(5672, config.Port); Assert.Equal("si_username", config.Username); Assert.Equal("si_password", config.Password); Assert.Equal("si_vhost", config.VirtualHost); }
public void Configure_ServiceInfoOveridesConfig_ReturnsOverriddenConnectionString() { RabbitProviderConnectorOptions config = new RabbitProviderConnectorOptions() { Server = "localhost", Port = 1234, Username = "******", Password = "******", VirtualHost = "vhost" }; RabbitProviderConfigurer configurer = new RabbitProviderConfigurer(); RabbitServiceInfo si = new RabbitServiceInfo("MyId", "amqp://*****:*****@example.com:5672/si_vhost"); var opts = configurer.Configure(si, config); var uri = new UriInfo(opts); Assert.Equal(uri.Host, "example.com"); Assert.Equal(uri.Port, 5672); Assert.Equal(uri.UserName, "si_username"); Assert.Equal(uri.Password, "si_password"); Assert.Equal(uri.Path, "si_vhost"); }
public void Constructor_CreatesExpected() { string uri = "amqp://*****:*****@192.168.0.81:5672/fb03d693-91fe-4dc5-8203-ff7a6390df66"; List <string> uris = new List <string>() { "amqp://*****:*****@192.168.0.81:5672/fb03d693-91fe-4dc5-8203-ff7a6390df66" }; string managementUri = "https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/"; List <string> managementUris = new List <string>() { "https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/" }; RabbitServiceInfo r1 = new RabbitServiceInfo("myId", uri); RabbitServiceInfo r2 = new RabbitServiceInfo("myId", uri, managementUri); RabbitServiceInfo r3 = new RabbitServiceInfo("myId", uri, managementUri, uris, managementUris); RabbitServiceInfo r4 = new RabbitServiceInfo("myId", "192.168.0.81", 5672, "03c7a684-6ff1-4bd0-ad45-d10374ffb2af", "l5oq2q0unl35s6urfsuib0jvpo", "fb03d693-91fe-4dc5-8203-ff7a6390df66"); RabbitServiceInfo r5 = new RabbitServiceInfo("myId", "192.168.0.81", 5672, "03c7a684-6ff1-4bd0-ad45-d10374ffb2af", "l5oq2q0unl35s6urfsuib0jvpo", "fb03d693-91fe-4dc5-8203-ff7a6390df66", "https://*****:*****@pivotal-rabbitmq.system.testcloud.com/api/"); Assert.Equal("myId", r1.Id); Assert.Equal("amqp", r1.Scheme); Assert.Equal("192.168.0.81", r1.Host); Assert.Equal(5672, r1.Port); Assert.Equal("l5oq2q0unl35s6urfsuib0jvpo", r1.Password); Assert.Equal("03c7a684-6ff1-4bd0-ad45-d10374ffb2af", r1.UserName); Assert.Equal("fb03d693-91fe-4dc5-8203-ff7a6390df66", r1.Path); Assert.Equal(null, r1.Query); Assert.Null(r1.Uris); Assert.Equal(uri, r1.Uri); Assert.Null(r1.ManagementUris); Assert.Equal(null, r1.ManagementUri); Assert.Equal("myId", r2.Id); Assert.Equal("amqp", r2.Scheme); Assert.Equal("192.168.0.81", r2.Host); Assert.Equal(5672, r2.Port); Assert.Equal("l5oq2q0unl35s6urfsuib0jvpo", r2.Password); Assert.Equal("03c7a684-6ff1-4bd0-ad45-d10374ffb2af", r2.UserName); Assert.Equal("fb03d693-91fe-4dc5-8203-ff7a6390df66", r2.Path); Assert.Equal(null, r2.Query); Assert.Null(r2.Uris); Assert.Equal(uri, r2.Uri); Assert.Null(r2.ManagementUris); Assert.Equal(managementUri, r2.ManagementUri); Assert.Equal("myId", r3.Id); Assert.Equal("amqp", r3.Scheme); Assert.Equal("192.168.0.81", r3.Host); Assert.Equal(5672, r3.Port); Assert.Equal("l5oq2q0unl35s6urfsuib0jvpo", r3.Password); Assert.Equal("03c7a684-6ff1-4bd0-ad45-d10374ffb2af", r3.UserName); Assert.Equal("fb03d693-91fe-4dc5-8203-ff7a6390df66", r3.Path); Assert.Equal(null, r3.Query); Assert.NotNull(r3.Uris); Assert.Equal(1, r3.Uris.Count); Assert.Equal(uris[0], r3.Uris[0]); Assert.Equal(uri, r3.Uri); Assert.NotNull(r3.ManagementUris); Assert.Equal(1, r3.ManagementUris.Count); Assert.Equal(managementUris[0], r3.ManagementUris[0]); Assert.Equal(managementUri, r3.ManagementUri); Assert.Equal("myId", r4.Id); Assert.Equal("amqp", r4.Scheme); Assert.Equal("192.168.0.81", r4.Host); Assert.Equal(5672, r4.Port); Assert.Equal("l5oq2q0unl35s6urfsuib0jvpo", r4.Password); Assert.Equal("03c7a684-6ff1-4bd0-ad45-d10374ffb2af", r4.UserName); Assert.Equal("fb03d693-91fe-4dc5-8203-ff7a6390df66", r4.Path); Assert.Equal(null, r4.Query); Assert.Null(r4.Uris); Assert.Equal(uri, r4.Uri); Assert.Null(r4.ManagementUris); Assert.Equal(null, r4.ManagementUri); Assert.Equal("myId", r5.Id); Assert.Equal("amqp", r5.Scheme); Assert.Equal("192.168.0.81", r5.Host); Assert.Equal(5672, r5.Port); Assert.Equal("l5oq2q0unl35s6urfsuib0jvpo", r5.Password); Assert.Equal("03c7a684-6ff1-4bd0-ad45-d10374ffb2af", r5.UserName); Assert.Equal("fb03d693-91fe-4dc5-8203-ff7a6390df66", r5.Path); Assert.Equal(null, r5.Query); Assert.Null(r5.Uris); Assert.Equal(uri, r5.Uri); Assert.Null(r5.ManagementUris); Assert.Equal(managementUri, r5.ManagementUri); }
internal string Configure(RabbitServiceInfo si, RabbitProviderConnectorOptions configuration) { UpdateConfiguration(si, configuration); return(configuration.ToString()); }