public void Should_include_the_prefix_default_with_separator() { var formatter = new DefaultEndpointNameFormatter("Dev-", false); var name = formatter.Consumer <SomeReallyCoolConsumer>(); Assert.That(name, Is.EqualTo("Dev-SomeReallyCool")); }
public void ConfigureEndpoints <T>(T configurator, IEndpointNameFormatter endpointNameFormatter) where T : IBusFactoryConfigurator { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } if (endpointNameFormatter == null) { endpointNameFormatter = new DefaultEndpointNameFormatter(); } var consumersByEndpoint = _consumers.Values .Select(x => x.GetDefinition(_configurationServiceProvider)) .GroupBy(x => x.GetEndpointName(endpointNameFormatter)); var sagasByEndpoint = _sagas.Values .Select(x => x.GetDefinition(_configurationServiceProvider)) .GroupBy(x => x.GetEndpointName(endpointNameFormatter)); var activitiesByExecuteEndpoint = _activities.Values .Select(x => x.GetDefinition(_configurationServiceProvider)) .GroupBy(x => x.GetExecuteEndpointName(endpointNameFormatter)); var executeActivitiesByEndpoint = _executeActivities.Values .Select(x => x.GetDefinition(_configurationServiceProvider)) .GroupBy(x => x.GetExecuteEndpointName(endpointNameFormatter)); var endpointNames = consumersByEndpoint.Select(x => x.Key) .Union(sagasByEndpoint.Select(x => x.Key)) .Union(activitiesByExecuteEndpoint.Select(x => x.Key)) .Union(executeActivitiesByEndpoint.Select(x => x.Key)); var endpoints = from e in endpointNames join c in consumersByEndpoint on e equals c.Key into cs from c in cs.DefaultIfEmpty() join s in sagasByEndpoint on e equals s.Key into ss from s in ss.DefaultIfEmpty() join a in activitiesByExecuteEndpoint on e equals a.Key into aes from a in aes.DefaultIfEmpty() join ea in executeActivitiesByEndpoint on e equals ea.Key into eas from ea in eas.DefaultIfEmpty() select new { Name = e, Consumers = c, Sagas = s, Activities = a, ExecuteActivities = ea }; foreach (var endpoint in endpoints) { if (_log.IsDebugEnabled) { _log.DebugFormat("Configuring receive endpoint: {0}", endpoint.Name); } configurator.ReceiveEndpoint(endpoint.Name, cfg => { if (endpoint.Consumers != null) { foreach (var consumer in endpoint.Consumers) { if (_log.IsDebugEnabled) { _log.DebugFormat("Configuring consumer {0} on {1}", TypeMetadataCache.GetShortName(consumer.ConsumerType), endpoint.Name); } ConfigureConsumer(consumer.ConsumerType, cfg); } } if (endpoint.Sagas != null) { foreach (var saga in endpoint.Sagas) { if (_log.IsDebugEnabled) { _log.DebugFormat("Configuring saga {0} on {1}", TypeMetadataCache.GetShortName(saga.SagaType), endpoint.Name); } ConfigureSaga(saga.SagaType, cfg); } } if (endpoint.Activities != null) { foreach (var activity in endpoint.Activities) { var compensateEndpointName = activity.GetCompensateEndpointName(endpointNameFormatter); configurator.ReceiveEndpoint(compensateEndpointName, compensateEndpointConfigurator => { if (_log.IsDebugEnabled) { _log.DebugFormat("Configuring activity {0} on {1}/{2}", TypeMetadataCache.GetShortName(activity.ActivityType), endpoint.Name, compensateEndpointName); } ConfigureActivity(activity.ActivityType, cfg, compensateEndpointConfigurator); }); } } if (endpoint.ExecuteActivities != null) { foreach (var activity in endpoint.ExecuteActivities) { if (_log.IsDebugEnabled) { _log.DebugFormat("Configuring activity {0} on {1}", TypeMetadataCache.GetShortName(activity.ActivityType), endpoint.Name); } ConfigureExecuteActivity(activity.ActivityType, cfg); } } }); } }