public void NServiceBusValidator_ThrowsException_WhenGettingTransportTypeForEmptyConnectionString() { var connectionString = string.Empty; var configValue = NServiceBusValidator.GetTransportType(connectionString); Assert.IsTrue(configValue != NServiceBusTransportType.RabbitMq && configValue != NServiceBusTransportType.Sql); }
private async Task CreateEndPoint(string name, string connectionString) { NServiceBusTransportType transportType = NServiceBusValidator.GetTransportType(connectionString); var instanceId = NServiceBusInstanceId; if (string.IsNullOrEmpty(instanceId)) { instanceId = $"{Dns.GetHostName()}-{ServiceHelper.ServiceName}"; } var endpointConfiguration = new EndpointConfiguration(name); endpointConfiguration.MakeInstanceUniquelyAddressable(instanceId); object transport; if (transportType == NServiceBusTransportType.RabbitMq) { transport = endpointConfiguration.UseTransport <RabbitMQTransport>(); ((TransportExtensions <RabbitMQTransport>)transport).ConnectionString(connectionString); // for RabbitMQ transport only var delayedDelivery = ((TransportExtensions <RabbitMQTransport>)transport).DelayedDelivery(); delayedDelivery.DisableTimeoutManager(); } else if (transportType == NServiceBusTransportType.Sql) { transport = endpointConfiguration.UseTransport <SqlServerTransport>(); ((TransportExtensions <SqlServerTransport>)transport).Transactions(TransportTransactionMode.SendsAtomicWithReceive); ((TransportExtensions <SqlServerTransport>)transport).ConnectionString(connectionString); ((TransportExtensions <SqlServerTransport>)transport).DefaultSchema("queue"); } var assemblyScanner = endpointConfiguration.AssemblyScanner(); HashSet <string> assembliesToExclude = new HashSet <string> { "Common.dll", "NServiceBus.Persistence.Sql.dll" }; if (transportType == NServiceBusTransportType.RabbitMq) { assembliesToExclude.Add("nservicebus.transport.sqlserver.dll"); } else if (transportType == NServiceBusTransportType.Sql) { assembliesToExclude.Add("nservicebus.transports.rabbitmq.dll"); } assemblyScanner.ExcludeAssemblies(assembliesToExclude.ToArray()); endpointConfiguration.UsePersistence <InMemoryPersistence>(); endpointConfiguration.UseSerialization <JsonSerializer>(); endpointConfiguration.EnableInstallers(); endpointConfiguration.EnableCallbacks(false); endpointConfiguration.LimitMessageProcessingConcurrencyTo(ServiceHelper.BrowserPoolMaxSize); endpointConfiguration.SendFailedMessagesTo("errors"); endpointConfiguration.License(_licenseInfo); var conventions = endpointConfiguration.Conventions(); conventions.DefiningTimeToBeReceivedAs( type => { if (type == typeof(GenerateImageMessage)) { return(TimeSpan.FromMinutes(5)); } return(TimeSpan.MaxValue); }); var loggerDefinition = NServiceBus.Logging.LogManager.Use <LoggerDefinition>(); loggerDefinition.Level(NServiceBus.Logging.LogLevel.Warn); _endpointInstance = await Endpoint.Start(endpointConfiguration); }