public IServiceBus CreateServiceBus(MassTransitConnectionDescriptor connectionDescriptor, IQueueStrategy queueStrategy, IReadOnlyList <Action <SubscriptionBusServiceConfigurator> > subscriptions) { UriBuilder builder = new UriBuilder(connectionDescriptor.Host) { Scheme = "loopback" }; return(ServiceBusFactory.New(bus => { var receiveUri = new Uri(builder.Uri, queueStrategy.GetQueueName()); bus.ReceiveFrom(receiveUri); bus.UseJsonSerializer(); bus.ConfigureJsonSerializer(ConfigureIsoDateTimeConverters); bus.ConfigureJsonDeserializer(ConfigureIsoDateTimeConverters); foreach (var subscription in subscriptions) { bus.Subscribe(subscription); } bus.Validate(); })); }
public IServiceBus CreateServiceBus(MassTransitConnectionDescriptor connectionDescriptor, IQueueStrategy queueStrategy, IReadOnlyList <Action <SubscriptionBusServiceConfigurator> > subscriptions) { return(ServiceBusFactory.New(bus => { var receiveUri = new Uri(connectionDescriptor.Host, queueStrategy.GetQueueName()); bus.UseRabbitMq(r => { r.ConfigureHost(receiveUri, h => { h.SetUsername(connectionDescriptor.UserName); h.SetPassword(connectionDescriptor.Password); }); }); bus.ReceiveFrom(receiveUri); bus.UseJsonSerializer(); bus.ConfigureJsonSerializer(ConfigureIsoDateTimeConverters); bus.ConfigureJsonDeserializer(ConfigureIsoDateTimeConverters); bus.SetConcurrentConsumerLimit(_concurrencyLimit); foreach (var subscription in subscriptions) { bus.Subscribe(subscription); } bus.Validate(); })); }
public static IServiceCollection AddNybusLegacyWithMassTransit(this IServiceCollection services, NybusLegacyConfiguration configuration) { services.AddNybusLegacy(configuration.NybusConfigurator, configuration.SubscriptionsConfigurator); services.AddSingleton(sp => { var options = new MassTransitOptions(); configuration.MassTransitConfigurator?.Invoke(options); return(options); }); services.AddSingleton(sp => { var cfg = sp.GetRequiredService <IConfiguration>(); var connectionString = cfg.GetConnectionString(configuration.ConnectionStringName); return(MassTransitConnectionDescriptor.Parse(connectionString)); }); services.AddSingleton <IBusEngine>(sp => { var descriptor = sp.GetRequiredService <MassTransitConnectionDescriptor>(); var options = sp.GetRequiredService <MassTransitOptions>(); return(new MassTransitBusEngine(descriptor, options)); }); return(services); }
public void FromConfiguration_returns_null_if_item_cant_be_found() { var nameOfConnectionString = fixture.Create <string>(); var descriptor = MassTransitConnectionDescriptor.FromConfiguration(nameOfConnectionString); Assert.That(descriptor, Is.Null); }
public RabbitMqServiceBusFactory(MassTransitConnectionDescriptor connectionDescriptor, RabbitMqOptions rabbitMqOptions) { if (connectionDescriptor == null) { throw new ArgumentNullException(nameof(connectionDescriptor)); } if (rabbitMqOptions == null) { throw new ArgumentNullException(nameof(rabbitMqOptions)); } _connectionDescriptor = connectionDescriptor; _rabbitMqOptions = rabbitMqOptions; }
public void Initialize() { mockCommandQueuePolicy = new Mock <IQueuePolicy>(); mockEventQueuePolicy = new Mock <IQueuePolicy>(); _options = new RabbitMqOptions { CommandQueuePolicy = mockCommandQueuePolicy.Object, EventQueuePolicy = mockEventQueuePolicy.Object }; _connectionDescriptor = Fixture.Create <MassTransitConnectionDescriptor>(); }
public void MassTransitConnectionDescriptor_can_be_parsed_from_connection_string() { var host = fixture.Create <Uri>(); var username = fixture.Create <string>(); var password = fixture.Create <string>(); var connectionString = $"host={host};username={username};password={password}"; var descriptor = MassTransitConnectionDescriptor.Parse(connectionString); Assert.That(descriptor, Is.Not.Null); Assert.That(descriptor.Host, Is.EqualTo(host)); Assert.That(descriptor.UserName, Is.EqualTo(username)); Assert.That(descriptor.Password, Is.EqualTo(password)); }
public void Initialize() { fixture = new Fixture(); commandQueueName = fixture.Create <string>(); eventQueueName = fixture.Create <string>(); mockLoggerFactory = new Mock <ILoggerFactory>(); mockLogger = new Mock <ILogger>(); mockLoggerFactory.Setup(p => p.CreateLogger(It.IsAny <string>())).Returns(() => mockLogger.Object); mockContextManager = new Mock <IContextManager>(); mockCommandErrorStrategy = new Mock <IErrorStrategy>(); mockCommandQueueStrategy = new Mock <IQueueStrategy>(); mockCommandServiceBus = new Mock <IServiceBus>(); mockEventErrorStrategy = new Mock <IErrorStrategy>(); mockEventQueueStrategy = new Mock <IQueueStrategy>(); mockEventServiceBus = new Mock <IServiceBus>(); mockServiceBusFactory = new Mock <IServiceBusFactory>(); mockServiceBusFactory.Setup(p => p.CreateServiceBus(It.IsAny <MassTransitConnectionDescriptor>(), mockCommandQueueStrategy.Object, It.IsAny <IReadOnlyList <Action <SubscriptionBusServiceConfigurator> > >())).Returns(mockCommandServiceBus.Object); mockServiceBusFactory.Setup(p => p.CreateServiceBus(It.IsAny <MassTransitConnectionDescriptor>(), mockEventQueueStrategy.Object, It.IsAny <IReadOnlyList <Action <SubscriptionBusServiceConfigurator> > >())).Returns(mockEventServiceBus.Object); mockCommandQueueStrategy.Setup(p => p.GetQueueName()).Returns(commandQueueName); mockEventQueueStrategy.Setup(p => p.GetQueueName()).Returns(eventQueueName); options = new MassTransitOptions { LoggerFactory = mockLoggerFactory.Object, CommandErrorStrategy = mockCommandErrorStrategy.Object, CommandQueueStrategy = mockCommandQueueStrategy.Object, EventErrorStrategy = mockEventErrorStrategy.Object, EventQueueStrategy = mockEventQueueStrategy.Object, ServiceBusFactory = mockServiceBusFactory.Object, ContextManager = mockContextManager.Object }; var host = fixture.Create <Uri>(); var userName = fixture.Create <string>(); var password = fixture.Create <string>(); connectionDescriptor = new MassTransitConnectionDescriptor(host, userName, password); }
public void MassTransitConnectionDescriptor_can_be_parsed_from_configuration_file() { var descriptor = MassTransitConnectionDescriptor.FromConfiguration("Test"); Assert.That(descriptor, Is.Not.Null); }
public static string ToConnectionString(this MassTransitConnectionDescriptor connectionDescriptor) { return($"host={connectionDescriptor.Host};username={connectionDescriptor.UserName};password={connectionDescriptor.Password}"); }